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.

Coding image

Function

What kind of work does it perform?

Coding, productivity, business process, data, security operations or customer-facing work

Work model image

Work model

How is it asked to work?

Is it completing a defined task or pursuing a broader goal?

Trigger Type image

Trigger type

Who or what starts the work?

A person, an automated event or another agent?

Identity image

Identity and authority

Whose authority is involved?

Does it use its own identity, act for a person or rely on delegated permissions?

Exposure image

Exposure

What can it read and change?

What information, systems and actions are available to it?

Scope image

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. That gives you useful context, but it does not tell you what access the agent should have.

coding agent

Coding agents

Draft, review or modify code

Productivity agent

Productivity agents

Research, summarize or create content

business process

Business process agents

Handle work in finance, HR, sales or support

data-agent-

Data agents

Find, analyze or transform data

security-operations

Security operations agents

Monitor, investigate or remediate threats

customer facing agent

Customer-facing agents

Assist customers, resolve issues or take action

Two agents can have the same function and still need very different permissions. One coding agent may only suggest changes. Another may modify repositories, trigger CI/CD workflows and deploy to production. Same category. Very different access risk. The same is true everywhere else. A productivity agent may only read documents, while another can send messages or update records. A security agent may recommend remediation, while another can isolate endpoints or change infrastructure.

Function tells you what kind of work the agent does. It does not tell you how much freedom it should have while doing it.

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 fairly clear result, such as fixing an issue, summarizing a contract or updating a record. A goal-based agent receives an outcome and decides how to get there, giving it more freedom to choose steps, tools and systems along the way.

The more freedom the agent has, the more important it is to control what it can reach, what actions it can take and when it must stop or ask for approval. Context matters too: the same action may be appropriate for one task and not for another.

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.

copilot icon

Co-pilot agents

Users are actively involved

A person initiates the task and stays relatively close to the work, so the originator and purpose are easier to identify.

headless

Headless agents

Work starts without a user initiating it

A schedule, system event or automated process starts the work, so actions may occur before a person reviews or approves them.

agent-to-agent

Agent-to-agent systems

Delegation extends the action chain

Another agent delegates work, extending the task across different tools, permissions and contexts and increasing the distance from the original request.

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. 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 identity delegation chain.

The final credential presented to the target should carry that delegation context with it, including the originator and the agents involved in the chain. That gives the target a blended identity to evaluate: who initiated the task, which agent is acting now and how the request got there.

The final credential still matters. The difference is that it represents the chain...not just the last actor in it.

What can the agent read, 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:

agent-read

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

agent-change

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

agent-extend

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 ASupport agent B
Human initiatedAutomated or agent initiated
Task-basedGoal-based
Reads customer recordsReads and modifies customer records
Acts on behalf of a support representativeMay operate without a person actively involved in every step
Limited to one ticket or workflowCan span multiple systems
No delegationCan delegate technical investigation to another agent
Time-limited read accessCan 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 requireAgent B may require
Verified support representativeVerified originator and agent identity
Active support ticketActive ticket and valid business purpose
Read-only accessTransaction and action thresholds
Time-limited permissionsApproval 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. 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.

Discover

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

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

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

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 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.