pip install. a2a deploy.
Hosted agent.
One command per step. The runtime returns an HTTPS endpoint, an AgentCard, an MCP bridge, a workspace, a receipt, and a grant trail — wired together by default. No glue code, no Dockerfile, no auth scaffolding.
Install the SDK
$ pip install a2a-pack
collecting a2a-pack
installed a2a-pack 0.1.57
ready · 8sScaffold an agent
One @a2a.tool decorator + workspace client. That is the whole surface.
$ a2a init finance-recon
scaffolding finance-recon/
├── agent.py
├── pyproject.toml
├── .a2a/
│ ├── card.yaml
│ └── grants.yaml
└── README.md
done · 2simport a2a_pack as a2a
from a2a_pack import A2AAgent, RunContext
class FinanceRecon(A2AAgent):
name = "finance-recon"
description = "Reconcile invoices against contracts."
@a2a.tool
async def reconcile(self, ctx: RunContext, period: str) -> dict:
invoices = await ctx.workspace.list(f"invoices/{period}/")
report = await reconcile(invoices)
return {"period": period, "exceptions": report.count}Deploy
Source → control plane → registry → hosted endpoint. Versioned, rollbackable.
$ a2a deploy
packaging source 1.2KB
uploaded → control plane
building image (14s)
pushed registry/finance-recon:v1
reconciling (3s)
✓ live · https://finance-recon.a2acloud.io
✓ AgentCard at /.well-known/agent-card.json
✓ MCP bridge at /mcp
total · 1m 47sCall it. Watch the magic surface.
AgentCard, streaming, receipts, replay, grants — all live, all out of the box.
$ curl https://finance-recon.a2acloud.io/.well-known/agent-card.json
{
"name": "finance-recon",
"skills": [{ "name": "reconcile", "args": ["period"] }],
"auth": { "service-identity": true },
"endpoints": { "a2a": "/tasks", "mcp": "/mcp" },
"receipts": true,
"replay": true
}
$ a2a call finance-recon reconcile --period 2026-Q1
receipt://abc123 · grant://scoped-fs:invoices/2026-Q1
streaming...
✓ done · 4.2s
{"period": "2026-Q1", "exceptions": 7}Five primitives. Zero additional code.
Public identity. Skills, schemas, auth, pricing. Discoverable by A2A clients and MCP hosts.
SSE on POST /tasks. Token-level streaming for chat tools, structured events for workflows.
Agent API, public `/invoke`, and standard MCP `tools/call` executions record caller classification, skill, input evidence, verified grants, outcome, and timing. Signed, queryable, exportable.
Inspect the separately signed ordered event history for a run. Deterministic reruns require replay doubles for LLM and tool effects plus seeded randomness; automatic re-execution is not shipped.
Runs on the API, MCP, and /invoke entry points can reference verified Ed25519 grant IDs. File patterns, time bounds, and audience live in the referenced grant rather than being copied into every receipt.
That is the SDK path. Pick what is next.
Call your agent from Claude Code or Cursor over MCP. Wire an A2A handoff to another specialist. Add approvals, evals, and receipts to a multi-agent workflow.