[ABP] Agent Blueprint Protocol

Your agent ships as a prompt.
Ship it as a contract.

“What IS this agent, and what may it do?” deserves better than a README and your trust. ABP is a portable, non-authorizing contract for describing an agent capability and binding one immutable release to an execution environment: a signed Blueprint Core (identity, ports, bounds, evidence commitments), a Deployment Manifest pinned to one release digest, and typed verification that returns facts or denials — never an authorization decision. A blueprint rides in A2A task metadata and MCP _meta, beside the transport you already run.

Blueprintwhat the agent is
release digest
Deploymentone environment
reconcile
Hostdecides — always

The two artifacts

Language-neutral, byte-canonical, independently verifiable — bytes you can hand to anyone.

ArtifactCarries
Blueprint Corestable identity, typed ports, logical capability requirements, bounds that can only narrow, evidence commitments, registered extensions
Deployment Manifestenvironment-local tool, principal, data, authority, effect, evaluation, and exact-build bindings — pinned to one Blueprint release digest

What it proves — and refuses to

The refusal is the product: protocol validity never grants authority.

Use ABP when

  • you need a portable, verifiable contract for what an agent is and what it may do
  • bounds must only narrow — pointwise intersections of blueprint, deployment, and host policy, with evidence
  • evidence commitments must survive independent verification
  • a conformance corpus must prove the whole surface, not just the happy path

It never grants

  • identity, tenancy, or live policy
  • effect ownership or execution
  • billing, or evaluation truth
  • any authorization decision at all — if you need permissions granted, you need a policy engine; a blueprint carries its requirements to one

The discipline

Facts or denials. Never decisions.

“Verified” tooling that whispers “authorized — go” has quietly made your call for you.

Every result is a typed fact or a typed denial. The consuming host decides — identity, policy, effects — always.

Bounds only narrow.

Capability contracts that widen on compose are marketing, not bounds.

The bounds algebra intersects blueprint, deployment, and host policy to the pointwise narrowest — protected narrowings deny or clamp-with-evidence, never silently.

Reject or annotate. Never repair.

Import pipelines that “fix up” artifacts on the way in forge evidence.

One eight-stage reconcile — canonical bytes, digest, negotiation, structure, portability, signatures, bind, bounds — under host-supplied inputs, with a 96-case corpus and a mutation gate proving it catches named breaks.

Try it

The verifier ships as an npm kit with the conformance corpus embedded byte-identically to the release-certified copy — zero runtime dependencies.

npx @agent-blueprint-protocol/verifier
# verify the embedded 96-case corpus
npx @agent-blueprint-protocol/verifier \
    --artifact blueprint.json
# verify one artifact
mix deps.get   # {:agent_blueprint_protocol, "~> 0.7.1"} — zero production deps, no app callback

The family lifecycle

Three protocols, one chain of evidence: what the agent is, what was agreed, what this call may do.

The family stack

Three protocols, one story: what the agent is (ABP), what was agreed (CAP), what a single request may do (BAP) — CAP charter revisions bind ABP blueprint releases by digest.

Agent Blueprint · this repository

The portable agent contract: Blueprint Core + Deployment Manifest, the bounds algebra, the federation envelope, and the corpus.

Charter Agreement · CAP

Agreements as byte-exact evidence — and every CAP revision carries abp_bindings: the blueprint release digests the terms govern.

Bounded Authority · BAP

Per-request capability: issuer-signed grants, holder proofs, independent verification — the “what may this call do” layer over OAuth.

The docs library

Getting started, the examples gallery, host integration, federation, evidence commitments, portability, operations, FAQ — and the normative spec ships in the Hex archive.