What an agent actually is
An agent is a process that calls APIs on behalf of a user, making decisions autonomously. It reads data, takes actions, and chains tool calls together without a human approving each step. Every API call the agent makes requires authentication. When it opens a PR on GitHub, posts to a Slack channel, or updates a Linear ticket, it needs a credential for each service — and that credential must encode who is acting, on whose behalf, with what permissions, and for how long. A typical agent loop looks like this:- They are not users. There is no human at the keyboard approving each action.
- They are not service accounts. They do not run fixed system logic; they interpret user intent dynamically.
- GitHub API access to list issues (scoped to that user and repo)
- Slack API access to post the summary (scoped to that workspace and channel policy)
Why credentials matter
Agents do not just generate text. The moment an agent opens a PR, comments on a review, posts in Slack, updates Linear, or queries a database, it must authenticate to those APIs. A single task can require multiple credentials:The delegation chain
Every agent action is a chain of trust:The identity gap
Most identity systems model humans and service accounts. Agents fit neither model.| Principal | Authentication | Decision model | Typical scope |
|---|---|---|---|
| Human user | Interactive login (SSO, MFA) | Human makes decisions | Broad user permissions |
| Service account | Static secret or key | Fixed programmatic logic | Pre-provisioned system scope |
| Agent | Needs delegated credentials | Autonomous, LLM-driven | Per-user, per-task, time-limited |
There is no standard identity type for “an AI acting on behalf of Alice, read-only GitHub access, valid for 10 minutes.” That is the gap where most security issues begin.