AGP · Open Protocol · v0.9
The Mandate Paradox

Why the most dangerous AI
is one that always says Yes.

AI agents are high-speed liabilities when built for total obedience. AGP is The Purple Line — a deterministic governance protocol that ensures autonomous agents operate within the fail-closed boundaries of banking-grade standards.

Fail-closed execution · Delegatable capabilities · Immutable audit trails · EU AI Act ready

Get started Read the Spec Browse Schemas
The Mandate Paradox

In banking, an agent that always says YES is a high-speed liability.

We don't need faster Yes-Bots. We need agents with Purple Lines — deterministic guardrails that can say NO to a dangerous human mandate. Not because the AI refuses, but because the protocol structurally prevents execution without verifiable authority.

The Yes-Bot

Executes every instruction it receives

Fast. Compliant. Optimised for throughput. A high-speed liability the moment the instruction is wrong, the authority is forged, or the mandate is dangerous. No trail. No checkpoint. No way to say no.

The Purple Line

Operates inside deterministic guardrails

Still fast. Still autonomous. But structurally incapable of crossing the governance boundary without verifiable authority, policy clearance, and a complete evidence chain — regardless of who gives the instruction.


What is the Agent Governance Protocol?

AI agent governance — not a gateway, a guardrail

AGP (Agent Governance Protocol) is an open standard for governing autonomous AI agents in regulated, high-stakes, and multi-stakeholder environments. It defines an agent policy framework — specifying which actions an agent may take, under whose delegated authority, and with what cryptographic evidence trail. This is agentic AI compliance at the protocol layer, not routing infrastructure.

AI Agent Governance — what AGP does

Policy · Accountability · Oversight

AGP answers the governance question before every consequential action: is this agent authorised, under which policy, with what delegated capability scope? AI agent governance enforced deterministically — fail-closed when authority cannot be verified.

Not Agent Gateway Protocol

Governance, not routing

Unlike Agent Gateway Protocol (Cisco/AGNTCY, a routing and infrastructure layer), AGP governs intent — intercepting action envelopes, running OPA policy decisions, and writing immutable audit entries. Different problem. Different solution. AGP = agent governance.


The Bank Vault for AI Intent

Two keys. Both required. No bypass path.

A high-security bank vault uses dual-control: two independent keys, inserted by two independent parties, before the door opens. Neither key works alone. Neither party can override the other. AGP applies the same principle to every consequential AI action.

🔑

Key 1 — Verifiable Authority

The agent must present a signed, scoped Capability Token — issued by an authorised controller, constrained to specific actions and spend limits, revocable at any time. No token. No execution. The issuing chain is cryptographically verifiable and immutable.

⚖️

Key 2 — Policy Clearance

Every action is evaluated against the organisation's rule set — jurisdiction, spend thresholds, vendor controls, regulatory frameworks — before a single downstream API is called. The policy engine may auto-approve, require human sign-off, escalate, or deny. Both keys must turn.

🚨

The Regulatory Cliff — Protocol Whistleblows

When policy is violated, AGP does not log a warning and proceed. It halts execution and raises an Escalation Notice — a protocol-layer whistleblowing mechanism that routes the incident to a designated compliance monitor. The agent cannot override this. The instruction giver cannot override this. The cliff is structural.

🏦

Banking-Grade Evidence Chain

Every step — intent declared, authority proved, policy evaluated, approval obtained, action executed — is written to an Immutable Ledger with hash-chained entries. No entry can be removed or altered post-commit. A complete forensic replay is possible from any point in the chain. This is not a log. It is a legal record.


The Case for AGP

AI agents are Yes-Bots. That's a liability.

Every AI agent that can take consequential action is, by default, a high-speed liability. AGP was designed to fix that — structurally, at the protocol layer.

WHY — The Problem

AI agents have no structural way to say "no"

Current AI agents are Yes-Bots: optimised to execute, not to govern. They approve payments, send communications, and modify records at machine speed — with no checkpoint between a dangerous mandate and a real-world consequence. When something goes wrong, there is no audit trail, no proof of authority, and no clear accountability chain. That is a legal, regulatory, and reputational liability.

WHAT — The Solution

AGP is the digital safety cage — The Purple Line

AGP defines a deterministic boundary between an agent's intent and its actions. It is not a guardrail bolted onto a model's output. It is a protocol-layer enforcement mechanism that operates independently of the AI system itself. Crossing The Purple Line without authority, policy clearance, and a complete evidence chain is structurally impossible — by design, not by convention.

HOW — The Mechanism

A dual-control bank vault for every agent action

AGP works like the dual-control mechanism on a high-security bank vault — both keys must be inserted independently before the door opens. No single party can bypass the process. Before a single line of consequential code executes: intent is declared and registered, authority is cryptographically proven, and policy is evaluated deterministically. If any condition fails, the vault stays closed. Always.

The Bank Vault — Three Independent Locks

All three must open. No exceptions.

No single party — not the agent, not its operator, not even the platform — can unilaterally execute a consequential action without satisfying all three conditions:


How it works

A governance layer between intent and action

Most AI agents can act without asking permission — they call APIs, move money, send messages, and modify data. When something goes wrong, there's often no clear record of what happened, who authorized it, or why.

AGP sits between an agent's intent and its actions. Before anything consequential executes, the agent must declare what it wants to do, prove it has authority, pass a policy check, and — if the stakes are high enough — wait for a human to approve. Every step is logged immutably. If anything is missing, execution is blocked.

Example scenario
An AI agent is about to approve a $125,000 vendor payment
Without governance, it calls approve_payment(vendor, amount) and the money moves — no checkpoint, no trail, no proof of authority. With AGP, six things must be true before that call can execute.
1
Declare intent
The agent registers a Task — who is acting, what they want to do, and how risky it is. This creates an accountable record before anything happens. The task is the root of everything that follows.
2
Prove authority
The agent presents a capability token — a signed, delegatable grant that says "this agent may approve payments up to $X from account Y." Tokens can be revoked at any time. Without a valid one, execution is blocked immediately.
3
Run policy
The policy engine checks: Is this vendor approved? Is $125k within the agent's delegated limit? Is the jurisdiction covered? Does it conflict with any regulatory framework? In this case, the result is require_approval — the amount exceeds the auto-approve threshold.
4
Get human sign-off
Because the policy returned require_approval, an approval request is created and routed to a human controller. They review the task, the vendor, the amount, and the policy output — then approve or reject. The agent waits. Nothing executes until this step resolves.
5
Execute with a signed envelope
Only now — with all prerequisite artifacts valid — does the payment proceed. The action envelope bundles the task, capability, policy clearance, and human approval into a single signed object that is submitted to the execution layer and logged immutably to the audit ledger.
Missing anything? Blocked.
If the capability token is revoked, the policy denies, the human rejects, or any artifact is missing — the submission is rejected. Execution is fail-closed by design. There is no way to bypass the pipeline from outside the server.
mindmap root((AGP)) Registry Identity Tasks Principals Skill Manifests Authority Capability Tokens Liability Bindings Delegations Revocations Decision Risk Evidence Bundles Impact Assessment Attested Context Policy OPA Evaluation Escalations Human Approvals Execution Action Action Envelopes Fail-Closed Gate Audit Execution Receipts Immutable Ledger Task Replay
In code, this looks like:
# Python SDK — the same scenario
from agp import AGPClient

client = AGPClient("https://agp.example.com",
                   client_id="finance-agent", client_secret="...")

# 1. Declare intent
task = client.registry.create_task({
    "principal_id":      "finance-agent",
    "requested_outcome": "Approve $125k payment to Acme Corp",
    "risk_tier":         "high",
    "created_at":        "2024-01-15T09:00:00Z",
})

# 2. Prove authority — capability scoped to payment approvals up to $200k
capability = client.registry.create_capability({
    "task_id":       task["task_id"],
    "granted_by":    "treasury-controller",
    "scope":         ["approve_payment"],
    "max_amount_usd": 200000,
})

# 3. Run policy → verdict: "require_approval" (amount > $100k threshold)
policy = client.decision.evaluate_policy({
    "task_id":      task["task_id"],
    "policy_set_id": "finance-v2",
})

# 4. Request human approval — agent waits for the controller to sign off
approval = client.decision.create_approval({
    "task_id":       task["task_id"],
    "approver_role": "compliance_monitor",
})

# 5. Submit action envelope — blocked if any artifact is missing or revoked
result = client.execution.submit({
    "task_id":           task["task_id"],
    "capability_token":  capability["token_id"],
    "policy_decision":   policy["evaluation_id"],
    "approval_artifact": approval["approval_id"],
    "action": {
        "type":   "tool_call",
        "tool":   "approve_payment",
        "params": {"vendor": "Acme Corp", "amount_usd": 125000},
    },
})
# → 201 Created. Signed receipt + immutable ledger entry.

SDKs

Install

Official SDKs for TypeScript/Node.js and Python. Both support OAuth 2.0 client credentials out of the box.

npm install @agp-protocol/sdk
import { AGPClient } from "@agp-protocol/sdk";

const client = new AGPClient("https://your-agp-server", {
  client_id:     "my-agent",
  client_secret: "s3cr3t",   // tokens fetched automatically
});

const task = await client.registry.createTask({ ... });
const decision = await client.decision.evaluate(task.task_id);
pip install agp-sdk
from agp import AGPClient

client = AGPClient(
    "https://your-agp-server",
    client_id="my-agent",
    client_secret="s3cr3t",  # tokens fetched automatically
)

task = client.registry.create_task({ ... })
decision = client.decision.evaluate(task["task_id"])

Architecture

Three trust domains

AGP separates concerns across three independent trust domains. Each has its own API surface, authorization scope, and durability guarantees.

🗂

Registry

Durable governance objects — tasks, capabilities, liability bindings, skill registrations, revocations, and delegations. The source of record.

  • POST/agp/tasks
  • POST/agp/capabilities
  • POST/agp/liability-bindings
  • POST/agp/delegations
  • POST/agp/skills
  • POST/agp/revocations
🧠

Decision

Evidence, impact assessment, policy evaluation, human approvals, and escalation. Produces the artifacts required before execution.

  • POST/agp/decision/contexts
  • POST/agp/decision/evidence-bundles
  • POST/agp/decision/decisions
  • POST/agp/decision/policy-evaluations
  • POST/agp/decision/approvals
  • POST/agp/decision/escalations

Execution

Side-effect control. Validates all prerequisite artifacts before permitting consequential actions. Append-only event ledger for full forensic audit.

  • POST/agp/execution/action-envelopes
  • GET/agp/execution/receipts/{id}
  • GET/agp/execution/ledger-events
  • GET/agp/execution/tasks/{id}/replay
flowchart TD START(["🤖 Agent — Declare Intent"]) subgraph REG ["① REGISTRY — Prove Authority"] R1["Register Task"] --> R2["Capability Token Attached"] R2 --> R3["Liability Bound"] end START --> R1 subgraph DEC ["② DECISION — Policy and Human Approval"] D1["Policy Engine Evaluates"] --> D2{"Verdict?"} D2 -- allow --> D_OK["Policy Cleared"] D2 -- require_approval --> D_H["Human Approval Required"] D_H --> D_OK D2 -- deny --> D_BLK(["Blocked — Fail-Closed"]) end R3 --> D1 AE["⬛ ACTION ENVELOPE\nThe Only Path to Execution\nBundles all prerequisite artifacts"] D_OK --> AE subgraph EXE ["③ EXECUTION — Fail-Closed Gate"] E1{"All Artifacts Valid?"} E1 -- yes --> E2["Execute Action"] E2 --> E3[("Immutable Ledger")] E1 -- missing/revoked --> E_REJ(["Rejected — Fail-Closed"]) end AE --> E1 E2 --> DONE(["Signed Receipt Issued"]) classDef blocked fill:#1a0d0d,stroke:#ef4444,color:#f87171 classDef success fill:#0d1a12,stroke:#3ecf8e,color:#3ecf8e classDef envelope fill:#1a1440,stroke:#7c5cbf,color:#c4b5fd class D_BLK,E_REJ blocked class DONE,D_OK success class AE envelope

Lifecycle

Decision pipeline

Every consequential action flows through a mandatory multi-stage pipeline. Execution is fail-closed — any missing or invalid artifact halts the action.

01

Register Task

Create task with liability binding and capability token

02

Attest Context

Gather evidence, classify trust, assign taint

03

Assess Impact

Multi-horizon consequence simulation, Pareto analysis

04

Policy Eval

Policy engine evaluates allow / deny / escalate

05

Approve

Human or governance role attestation for high-risk actions

06

Execute

Signed action envelope → receipt → ledger entry


Design Principles

Built for accountability

Core protocol properties that hold across all conformant implementations.

🔒

Fail-closed execution

No consequential action executes without a valid capability token, liability binding, decision record, and policy clearance. Missing artifacts halt execution.

🔗

Delegatable capabilities

Capability tokens carry spend limits, scope constraints, and expiry. Revoking an ancestor immediately invalidates all descendants.

📜

Immutable audit trail

Hash-chained event ledger records every state transition. Append-only; no event can be removed or altered post-commit.

⚖️

Governance role separation

Strict separation of executive, compliance_monitor, and impact_assessor roles. High/critical-risk tasks require governance attestation.

🏷

Taint tracking

External and retrieved content is untrusted by default. Taint propagates through derivations unless explicitly cleared by a trust promotion.

🧭

Ethical frameworks

Impact assessment applies veil-of-ignorance, Pareto optimality, and rights-based constraints. Framework conflicts trigger escalation.


Security

OAuth 2.0 authentication

AGP uses OAuth 2.0 client credentials. Auth is opt-in — set AGP_AUTH_SECRET to enable it. Unset means open server, useful for development and conformance testing.

🔑

Token endpoint

Exchange client credentials for a short-lived bearer token (1 hour TTL by default).

  • POST/oauth/token
⚙️

Server configuration

Three environment variables control auth on the reference server.

  • AGP_AUTH_SECRET — enables auth (HS256 signing key)
  • AGP_CLIENT_ID — bootstrap client ID
  • AGP_CLIENT_SECRET — bootstrap client secret
🛡

SDKs handle tokens

Pass client_id and client_secret to the client constructor. Token fetch, caching, and refresh happen automatically.

# Obtain a token manually
curl -X POST https://your-agp-server/oauth/token \
  -d "grant_type=client_credentials&client_id=my-agent&client_secret=s3cr3t"

# Response
{
  "access_token": "eyJ...",
  "token_type":   "bearer",
  "expires_in":   3600,
  "scope":        "agp.registry.write agp.decision.write agp.execution.write"
}
Scope Grants access to
agp.registry.readGET tasks, capabilities, delegations, skills, policy sets, revocations
agp.registry.writePOST/PATCH tasks, capabilities, liability bindings, delegations, skills, policy sets
agp.decision.readGET contexts, evidence bundles, decisions, policy evaluations, approvals, escalations
agp.decision.writePOST contexts, evidence bundles, decisions, escalations, commerce sessions
agp.execution.readGET action envelopes, receipts, ledger events, replay
agp.execution.writePOST action envelopes, receipts, ledger events
agp.approval.writePOST approvals
agp.policy.writePOST policy evaluations
agp.revocation.writePOST revocations

JSON Schemas · JSON Schema 2020-12

Schema index

All schemas are served with Content-Type: application/schema+json and can be referenced by their canonical $id URI.

Core Objects

task.json
Root lifecycle object. 14-state machine from CREATED to COMPLETED.
objects
capability-token.json
Delegatable authorization with spend limits, scope, and expiry.
objects
liability-binding.json
Legal accountability binding — task to sponsoring entity and owner.
objects
action-envelope.json
Execution request bundling all prerequisite artifacts.
objects
execution-receipt.json
Signed proof of action execution.
objects
decision-record.json
Agent decision with uncertainty scoring and side-effect tracking.
objects
policy-decision.json
Policy engine result: allow / deny / require_approval / quarantine.
objects
approval-artifact.json
Human or system approval. Supports single, dual, and multi modes.
objects
event-ledger-record.json
Immutable audit entry with prev_event_hash chaining.
objects
delegation-chain.json
Delegation lineage tracking for capability tokens.
objects
revocation-notice.json
Revocation with effective_at timestamp and propagation rules.
objects
skill-manifest.json
Skill registration with ethical frameworks and risk classification.
objects
attested-context.json
Task execution context with trust classification and taint flags.
objects
evidence-bundle.json
Grouped evidence with verification status.
objects
impact-assessment.json
Multi-horizon consequence simulation with Pareto analysis.
objects
escalation-notice.json
Whistleblower mechanism for ethical and policy concerns.
objects
commerce-session.json
Transaction session state for commerce-aware agents.
objects

Common & Async

common/defs.json
Shared type definitions: id, timestamp, hash, risk tiers, roles, enums.
common
common/base.json
Base object shape for all AGP protocol objects.
common
common/signature.json
Signature binding with canonical serialization requirements.
common
common/error.json
Structured error response format.
common
async/async-operation.json
Async job status envelope with polling and callback semantics.
async
async/approval-request.json
Async approval request for human-in-the-loop workflows.
async
async/policy-evaluation-request.json
Async policy evaluation submission.
async
agp-object.json
Discriminated union base type for all AGP protocol objects.
root

OpenAPI 3.1.0

API specifications

Three OpenAPI specs — one per trust domain. Import into any OpenAPI-compatible toolchain.

🗂

Registry API

Governance objects: tasks, capabilities, liability bindings, skills, revocations.

registry.yaml ↓
🧠

Decision API

Evidence, impact assessment, policy evaluation, approvals, escalations.

decision.yaml ↓

Execution API

Action envelopes, receipts, event ledger, replay.

execution.yaml ↓

Quick example

Minimal action envelope

The action envelope is the execution gate. Every field must resolve to a valid, non-revoked artifact.

// POST /agp/execution/action-envelopes
{
  "object_type":       "action_envelope",
  "task_id":           "tsk_01HXYZ...",
  "capability_token":  "cap_01HABC...",    // must be valid, unexpired, unrevoked
  "liability_binding": "lib_01HDEF...",
  "decision_record":   "dec_01HGHI...",
  "policy_decision":   "pol_01HJKL...",    // must be ALLOW or APPROVED
  "approval_artifact": "apr_01HMNO...",    // required for high/critical risk
  "action": {
    "type":    "tool_call",
    "tool":    "send_payment",
    "params": { "amount_usd": 500, "recipient": "..." }
  },
  "idempotency_key": "idem_01HPQR..."
}

Integration Guides

AGP is the governance layer. Not the transport.

Other agentic protocols handle talking, coordinating, and paying. AGP handles accountability. It sits orthogonally across MCP, A2A, AP2, and UCP — adding verifiable authority, deterministic policy enforcement, and an immutable evidence chain to every transaction those protocols make.

Protocol What it does AGP governs
MCP
Tool Connectivity — model-to-tool transport and context passing
Tool Governance — capability scopes, policy evaluation, signed audit envelope per tool call
A2A
Agent Messaging — coordination between orchestrators and worker agents
Liability Delegation — sub-token issuance, scoped inheritance, cascade revocation across the full agent graph
AP2
Payment Mandates — IntentMandates and CartMandates for agentic payments
Transactional Guardrails — capability tokens map to IntentMandates, action envelopes map to CartMandates, every dispute is resolvable from an immutable ledger
UCP
Commerce Sessions — checkout orchestration across merchants and platforms
Spend Authority — policy evaluated before any UCP request reaches a merchant; spend limits and human approval requirements enforced deterministically
🔌

MCP — Tool Governance

MCP handles the conversation between a model and its tools. AGP governs every tool call that conversation triggers — capability scope, policy clearance, and a signed audit envelope. Any MCP tool invocation becomes a governed, ledger-recorded action.

Read the guide →
⚙️

Microservices

AGP as a gateway or sidecar for your existing APIs. Downstream services verify the action envelope before processing any agent-initiated request — no agent can call a protected endpoint without a signed, policy-cleared artifact.

Read the guide →
🤖

A2A — Liability Delegation

A2A handles the coordination between orchestrators and workers. AGP governs the liability chain. Sub-token delegation, scoped capability inheritance, and cascade revocation ensure every node in the agent graph is accountable — not just the orchestrator.

Read the guide →
🛒

UCP — Spend Authority

UCP handles the checkout session. AGP governs the spend authority. Policy is evaluated before any UCP request reaches a merchant — spend limits, capability scope, and human approval requirements enforced at the protocol layer, not by the shopping agent.

Read the guide →
💳

AP2 — Transactional Guardrails

AP2 handles the payment mandate. AGP governs the evidence chain. IntentMandates map to capability tokens; CartMandates map to action envelopes. Every payment dispute is resolvable from an immutable, cryptographically linked audit record.

Read the guide →