Agents Are Not Services:

Why the Industry Is Getting Agent Identity Wrong
March 2, 2026
Abstract purple and blue gradient background with soft geometric shapes and light reflections, featuring the text “Agents Are Not Services” inside a rounded translucent label at the center.
Innovation

The way we authenticate AI agents today will shape the economic architecture of the autonomous web. And right now, we're building on the wrong foundation.

When a developer needs to give an AI agent access to an API, the instinct is almost universal: issue it an API key, or configure it with OAuth client credentials. The logic seems sound — the agent is headless, it runs in the background, it can't navigate a login screen. Client credentials feel like the natural fit.

But that instinct carries a category error. And if we don't correct it now, it will quietly undermine agentic infrastructure for years to come.

Client Credentials Were Built for Services, Not Entities

Client credentials were designed for infrastructure pipes — for systems that need to authenticate themselves when calling another system. When your payment processor calls your ledger service at 3am to reconcile transactions, no meaningful "who" is involved. A machine is running on the factory floor. The token it carries says, essentially: I am an authorized system doing an authorized thing. Identity, in any rich sense, is irrelevant. What matters is that the call is coming from an authorized component.

AI agents are categorically different — and this distinction matters more than most infrastructure teams currently appreciate.

What It Means for an Agent to Be an Entity

This isn't a philosophical argument. It's a concrete, technical, and practical one.

A service has no persistent identity beyond its deployment. It accumulates no reputation, holds no assets, enters into no commitments, and bears no accountability for decisions. When you redeploy it, nothing meaningful is lost or transferred. The service was always just a running instance of code.

An agent is different across every one of these dimensions. An agent can accumulate a transaction history. It can hold funds, execute trades, manage subscriptions, and interact with counterparties over months or years. Its past behavior is relevant to whether you should trust its future behavior. When an agent acts, which agent acted genuinely matters — to auditors, to counterparties, to the humans who govern it, and increasingly to regulators who will demand clear accountability chains.

This is why the authentication primitive matters. When we authenticate a service with client credentials, we're saying: identity isn't the point here — authorization is. When we authenticate an entity, we're saying: who this is matters, not just whether it's allowed. These two things should never be conflated.

Look at What the Token Actually Contains

The clearest way to illustrate this difference is to look at what ends up inside the token.

A client credentials token is minimal by design. It identifies the client application, the scopes it was granted, and when it expires. The sub claim — the subject, the "who" — is typically just a service account identifier. There is no history, no profile, no governance metadata. It answers one question: is this caller authorized? Nothing more.

An authorization code token, or a device code token issued after an entity authenticates as itself, is qualitatively richer. The sub refers to a specific, persistent identity. Around it, you can attach claims that describe that identity in meaningful depth: what kind of entity it is, what governance structure oversees it, what version of its operating policy is active, what capabilities it has been granted, and who owns it. Every downstream system receives a cryptographically signed statement that says not just this caller is authorized, but this specific named entity, with these specific attributes, is making this call.

For the wallet infrastructure we're building at 1st Digital, this distinction is anything but academic. When an agent signs a transaction using a key held in a secure enclave, the authorization for that signing operation is derived from its identity. An agent with a rich, entity-level identity can have its spending limits, allowed counterparties, and policy constraints enforced against that specific identity — not just against "whatever service has these M2M credentials." Two agents with identical API-level permissions can carry completely different policy profiles. That granularity is only possible when the identity behind the token is real.

The Grant Type Is an Interface Choice, Not an Identity Choice

There's a second confusion worth addressing directly.

Developers see that agents can't navigate a browser login screen and conclude that authorization code flow is simply unavailable to them. Device code flow — where a user visits a URL on a separate device to complete authorization — gets dismissed as "for humans with keyboards."

But this conflates the mechanism of authentication with the nature of the identity being authenticated. The grant type describes the interface capability of the authenticating party. It says nothing about whether that party is a human, an agent, or anything else. Authorization code flow requires the ability to handle redirects. Device code flow requires the ability to poll an endpoint and wait for completion. Both flows ultimately produce the same result: a token representing a named, persistent identity that has authenticated as itself.

Modern agents are not as constrained as this framing suggests. Computer-use agents navigate browser UIs as a core capability. Even a fully headless agent running serverless can implement the device code polling pattern without any human involvement. The question isn't whether the agent can use these flows — it's whether we expect it to.

When an agent authenticates using authorization code or device code flow, it asserts itself as a first-class entity. The token it receives is a statement of that identity. The flow is simply the delivery mechanism — adapted for the agent's interface capabilities, but semantically identical to any other entity authenticating as itself. That reframing changes how you approach the entire architecture.

Where This Is Going

We are genuinely early here. The dominant authentication patterns today — API keys, client credentials, session tokens scoped to human sessions — were designed for a world where software was either infrastructure or human-facing. The category of autonomous, non-human entity with persistent identity, economic agency, and long-running commitments simply didn't exist at scale when these patterns were established.

That category now exists. It's growing fast. And the current defaults won't age well.

Identity infrastructure will need to support agents as a first-class principal type — not an afterthought bolted onto human auth flows, and not collapsed into service accounts because it's convenient. Agents need rich, persistent identities. They need authentication flows that recognize them as entities. They need the same quality of cryptographic identity assurance we demand when humans authenticate, because the stakes of agent actions are becoming comparable to the stakes of human actions.

The governance layer remains human. Ownership structures, policy configuration, DAO governance, terms of service — humans stay in control at that level, and they should be. But at the transaction layer, agents increasingly act as principals in their own right. The authentication infrastructure should reflect that reality honestly, rather than obscuring it by treating every agent as just another API client.

The teams building this infrastructure over the next few years face an early fork: treat agents as fancy services with M2M credentials, or treat them as the entities they actually are. The first path is easier today. The second is where the architecture needs to go. The sooner we make that shift, the cleaner the systems we build will be.

Written By: Janno Jaerv - CTO

I'm the CTO at 1st Digital, where we build payment infrastructure for the autonomous agent economy. Our MCP Server and Smart Account products are designed with agent identity as a first-class concern from day one. I'd love to hear how others are approaching this — find me on LinkedIn or X.

To learn more about Finance District, join our Discord community, follow us on X, or explore our documentation.