Platform | For AI
Understanding agent identities
There is a lot of confusion right now about how to define an AI agent. Some people start with how the agent is triggered: is a person using it directly or is it running in the background? Others focus on how the work gets done: is the agent executing a defined task or working toward a broader goal and deciding how to get there?
Security teams tend to ask a different set of questions. What can the agent access? What can it change? Whose permissions is it using? Can it call other agents? What happens if the task changes along the way?
These are not competing ways to classify agents. They are different parts of the same profile, and that matters because two agents that look similar on the surface can create completely different access risks.
A coding agent that drafts code in a sandbox is very different from one that can modify multiple repositories, trigger CI/CD workflows and deploy to production. A support agent that summarizes a ticket is different from one that can change customer information, issue a refund or retrieve financial records. The job may be the same, but the risk is not.
That is why broad labels such as “coding agent,” “support agent” or even “autonomous agent” only get us so far. The more useful question is: What is this agent’s complete profile?
That profile tells us what the agent does, how independently it operates, whose authority it uses, what it can reach, what it can change and how far the work can extend once it begins. Those are the things that should determine the permissions, policies and controls around it.
Six dimensions shape an agent’s risk profile
An agent profile is not one field in an inventory. It is the combination of several characteristics, and none of them tells the whole story on its own. The risk becomes clearer when you look at them together.

Function
What kind of work does it perform?
Coding, productivity, business process, data, security operations or customer-facing work

Work model
How is it asked to work?
Is it completing a defined task or pursuing a broader goal?

Trigger type
Who or what starts the work?
A person, an automated event or another agent?

Identity and authority
Whose authority is involved?
Does it use its own identity, act for a person or rely on delegated permissions?

Exposure
What can it read and change?
What information, systems and actions are available to it?

Scope
How far can the work extend?
How long does it operate, where can it go and can it invoke tools or other agents?
The combination of these dimensions is what creates the actual risk profile. Two agents may have the same function but differ completely in how they operate, what they can reach and how much freedom they have once work begins.
Function is only the starting point
The easiest way to classify an agent is by the job it performs. There are coding agents, productivity agents, business process agents, data agents, security operations agents and customer-facing agents. These categories give us basic context about what the agent is there to do.
A coding agent drafts or reviews code. A productivity agent helps someone research, summarize or create content. A business process agent may work inside finance, HR, sales or customer support. But function tells us surprisingly little about the access an agent should have.
Two coding agents may serve the same general purpose and still need very different permissions. One may suggest changes while a developer remains fully in control. Another may receive an objective, decide which repositories need to change, create branches, open pull requests and invoke deployment workflows. They are both coding agents, but from an access perspective they are not remotely the same thing.
The same pattern shows up everywhere else. A productivity agent may only read documents, while another may be able to send messages, update records and schedule meetings. A security agent may recommend remediation, while another may isolate endpoints or change infrastructure.
Function tells us what kind of work is happening. It does not tell us how much freedom the agent should have while doing it.
Coding agents
Draft, review or modify code
Productivity agents
Research, summarize or create content
Business process agents
Handle work in finance, HR, sales or support
Data agents
Find, analyze or transform data
Security operations agents
Monitor, investigate or remediate threats
Customer-facing agents
Assist customers, resolve issues or take action
Autonomy is not one setting
People often describe an agent as either human-assisted or autonomous, but that collapses several different operating models into one label. What we call autonomy is really the result of two things working together: how the agent is asked to work and how the work gets started.
Work model
A task-based agent receives a specific assignment with a reasonably clear result: fix this issue, summarize this contract or update this record. The path may involve several steps, but the boundaries of the job are fairly well understood.
A goal-based agent receives an outcome and decides how to achieve it: reduce cloud costs, resolve the customer problem or improve application performance. Now the agent has more room to determine the path. It may break the goal into smaller steps, select tools, gather more information, call another system and adjust course as it learns.
That flexibility is useful, but it also makes the agent less predictable. The more freedom an agent has to decide how to achieve an outcome, the more important it becomes to define the systems it can reach, the actions it can take and the points where it must stop or ask for approval.
Context matters too. Reading a production log to investigate an active incident may be completely appropriate, while reading the same log for an unrelated task may not be. The action is identical. The purpose and context are different.
Trigger type
The other half of autonomy is how the work begins. A user-initiated agent starts because a person asks it to do something. An automatically triggered agent starts because a schedule fires, a system event occurs or a job kicks off. An agent-initiated process begins because another agent handed off work.
That distinction matters because a human being somewhere in the broader process does not automatically make the agent low risk. An agent can still inspect systems, retrieve data or call tools before the next approval point ever appears.

Three common autonomy profiles
These are useful shorthand for describing common patterns, but they should be understood as profiles rather than rigid product categories.
Co-pilot agents
Human actively involved
Usually user-initiated and task-based. The person remains close to the decisions being made
The originator and current task are generally easier to identify
Headless agents
Work starts without a person actively initiating it
A schedule, system event or automated process begins the work. Human checkpoints may still exist later
Some activity occurs before a human approval or review point
Agent-to-agent systems
Another agent starts or delegates the work
Work can move between agents with different permissions, tools and context
The distance between the original request and the final action can grow quickly
The important question is not simply whether a human is involved. It is where that human is involved, what the agent can do outside of those checkpoints and whether the controls match the risk of the action being taken.
Autonomy can also change over time. An agent may begin as a co-pilot and become more independent as the organization gets more comfortable with it. The same agent may even operate differently for different jobs. That is why access cannot be based solely on how the agent was originally classified. The control model has to reflect what is happening now.
Identity gets complicated very quickly
One of the hardest questions in agent security is also one of the most basic: when an agent takes an action, whose authority is it using?
Sometimes the agent has its own identity, similar to a service account. Sometimes it acts on behalf of a person. Sometimes it inherits the user’s permissions. In more complex systems, one agent may delegate work to another agent, which then invokes a tool or accesses a target system.
At that point, you no longer have one identity. You have an action chain.

If security evaluates only the credential presented at the end of that chain, it loses the context that explains how the action started. Who initiated the work? Which agent made the decision? Was the action still part of the original task? Did the work pass through another agent? Which permissions were used and which policies were evaluated?
That context matters for authorization and for accountability afterward. This is why treating the user and agent as completely separate identities is not enough. The more useful model is a blended view that considers the originator, the agent, the purpose of the request, the permissions available to each and the environment in which the action is taking place.
The final credential is still important. It just is not the whole story.
What can the agent reach, change and extend?
A lot of agent security discussion starts with sensitive data, and understandably so. Agents may reach customer records, source code, financial information, employee data or intellectual property.
But data sensitivity is only one side of the risk. An agent may access information that is not especially sensitive and still be able to take a very consequential action. It could change an IAM policy, delete infrastructure, deploy software, approve a transaction or communicate externally.
The better way to think about exposure is across three areas:
Read
What information can the agent access?
What information can the agent access? Customer data, production logs, source code, financial information or internal records
Controls may include purpose, masking, region and retention
Change
What actions can the agent take?
Update records, change infrastructure, issue payments, modify permissions or deploy software
Controls may include approvals, transaction limits, maintenance windows and separation of duties
Extend
How far can the work travel?
Can it call tools, reach multiple systems, invoke another agent or create a downstream chain of actions?
Controls may include delegation restrictions, allow lists, time limits and policy carried across the chain
Scope has a multiplying effect on risk. A narrowly bounded agent with temporary access to one system is easier to understand and govern than a persistent agent that can reach many systems, call tools and delegate work.
Delegation deserves special attention because once an agent hands work to another agent, that second agent may have different permissions, different tools and a different understanding of the job. If the chain continues, the original task can become increasingly distant from the final action.
That does not make multi-agent systems inherently unsafe. It means the security model has to follow the work. Policy should not disappear simply because one agent handed the task to another.
Same category. Completely different risk.
The clearest way to see why profiles matter is to compare two agents that share the same functional label:
| Support agent A | Support agent B |
|---|---|
| Human initiated | Automated or agent initiated |
| Task-based | Goal-based |
| Reads customer records | Reads and modifies customer records |
| Acts on behalf of a support representative | May operate without a person actively involved in every step |
| Limited to one ticket or workflow | Can span multiple systems |
| No delegation | Can delegate technical investigation to another agent |
| Time-limited read access | Can issue credits or take other consequential actions |
Both are support agents. But that label tells a security team almost nothing about the controls each one needs.
| Agent A may require | Agent B may require |
|---|---|
| Verified support representative | Verified originator and agent identity |
| Active support ticket | Active ticket and valid business purpose |
| Read-only access | Transaction and action thresholds |
| Time-limited permissions | Approval requirements |
| System allow lists | |
| Restrictions on downstream agents | |
| Runtime policy checks | |
| Detailed logging across the action chain |
The same applies to coding agents. One may work on a single developer-created branch with no production access, while another may work across repositories, invoke build systems and deploy changes during an approved window.
Calling both of them coding agents hides the part that matters. Their profiles reveal it.
Rightsize governance to the agent profile
Creating an inventory of agents is a good place to start, but an inventory that simply lists names and owners will not tell you much about access risk. For each agent, organizations need enough information to understand how the agent actually behaves and what controls should apply.
Function
What function does it serve?
Work model
Is it completing a task or pursuing a goal?
Trigger
Who or what starts the work?
Authority
Whose authority does it use?
Reach
What data and systems can it reach?
Actions
What actions can it take?
Delegation
Can it invoke tools or other agents?
Duration
How long does its access last?
Context
What conditions should change, restrict or stop that access?
Once those questions are answered, the control requirements become much more concrete. Organizations can decide whether the agent needs standing access at all, where just-in-time access makes more sense, which actions require approval and which systems or resources should remain out of bounds.
They can also change permissions based on the current task or context rather than assuming the same access is appropriate every time the agent runs. And they can preserve enough evidence to explain what happened afterward.
This approach is not tied to one agent platform, model provider or protocol. Those technologies will keep changing. The underlying questions about identity, authority, purpose, scope and accountability will not.
From agent inventory to runtime control
Understanding the profile is the first step. The next step is using that profile to determine what should happen while the agent is actually working.

Discover
Understand what agents exist and how they operate
Identify the originator, agent, function, trigger, systems, available actions and delegation paths
Build the profile needed to understand access risk

Control
Decide and enforce what each agent is allowed to do
Evaluate the originator, agent, purpose, action, target and context against policy at runtime
Apply JIT access, approvals, runtime policy and target-level enforcement as the work happens

Prove
Preserve the evidence needed to explain what happened
Capture the originator, agent, tool, resource, policy decision, action and outcome across the full chain
Maintain a clear audit trail for investigation, governance and compliance
An agent may be authorized to perform one action and not the next. It may be allowed to read a resource but not modify it. A user may be permitted to request a task without every downstream action automatically inheriting that permission.
That is why runtime control matters. Access decisions have to follow what the agent is actually doing, not just what was assigned earlier.
The goal is not a perfect label
The industry is still early. Terminology is inconsistent, standards are developing and new agent architectures are appearing faster than most security models can adapt. That makes broad labels tempting, but those labels become less useful as soon as you have to make an access decision.
“Autonomous agent” sounds specific until you have to decide exactly what the agent should be allowed to do. “Coding agent” sounds useful until two coding agents need entirely different permissions.
The better question is not simply, “What type of agent is this?”
It is: “What is this agent’s complete profile, and what should it be allowed to do right now?”
That forces us to look at the full system: the identity, the task, the agent, the permissions, the systems, the actions, the delegation chain and the context around them.
There is complexity there. The answer is not to simplify it away with broader labels. The answer is to make enough of that complexity visible that we can govern it.