Architecture

Authority

The Authority is the trust root. It decides who every agent is, what each may do, and mints the short-lived tokens that carry those decisions. It never sits on the request path between an agent and a resource. In Zero-Trust terms it is the Policy Decision Point: every other component defers to it and enforces what it decides.

What it holds

The Authority is the one place the system’s state of record lives. It keeps the agent registry (each registered agent’s id, checksum, granted scopes, and registration id) and the workflow registry (the multi-step plans agents run, with their per-step scopes, dependencies, and approval gates). It also holds the signing keys and publishes their public halves as a JWKS for resource servers to verify against.

What it does on a mint

When a client asks for an intent token, the Authority runs a decision, not a lookup. It confirms the agent is registered, recomputes the agent’s checksum and compares it to the registered one, validates the requested scope falls inside the agent’s grant, and, if the run follows a workflow, checks the step, its prerequisites, and the delegation chain. Only if all of that holds does it mint. The token it returns carries the identity, the single intent, the key binding, and the proof claims.

Note

The Authority re-verifies the checksum itself rather than trusting the one the client submitted. Client and Authority independently arrive at the same fingerprint, or the mint fails. There is no self-declared identity for an impostor to assert.

The surfaces it exposes

Its API is organized by responsibility: an /intent surface for token minting, a /grants surface for the scope envelopes that bound each agent, a /decisions surface reflecting its role as the decision point, an /oauth surface (including the JWKS the verifier reads), and registration surfaces for clients and workload identities. The exact request and response shapes are generated into contracts, so clients never hand-guess them.

Why “adaptive” IDP

A conventional IDP issues a token once a client authenticates and moves on. The Authority adapts its decision to what the agent currently is: because identity is a recomputed checksum rather than a stored secret, an agent whose prompt or tools changed since registration no longer matches, and the same request that succeeded yesterday fails today. The decision tracks the running code, not a credential issued in the past.

It is a reference implementation kept light. The trust and verification logic matters more than scale here, and it is designed to be fronted by, or ported into, existing enterprise IDPs (Okta, Auth0, Azure AD) via plugins rather than replacing them. draft-goswami-agentic-jwt §4