A2A over ZAP
Agent-to-Agent protocol over ZAP — spec, schema, no Go runtime yet.
A2A over ZAP
Status — spec-only, January 2026. The wire schema is published; the Go runtime hasn't shipped. Use the schema with any SDK for codegen of the message types. The transport / dispatch layer is being designed in zap-proto/papers.
zap-proto/a2a is the ZAP-native carrier for Google's Agent-to-Agent (A2A) protocol — agent cards advertise capabilities, tasks are issued and tracked, artifacts flow between agents.
Why on ZAP
Running A2A on ZAP buys you the same authentication / authorization / observability story ZAP gives any higher-level protocol:
- Trustworthy agent cards — the publishing agent signs its own card under its PQ identity. Consumers verify without a separate PKI.
- Provable task lineage — every state transition is signed. Disputes are settled by signature, not by audit-log trust.
- Streaming-native artifacts — large artifacts are zero-copy buffers, not gRPC-serialized blobs.
Schema
Published at zap-proto/a2a/schema/zap_a2a.zap. The schema covers:
AgentCard— name, description, skills, capabilities, identityTask— id, skill, inputs, state machineArtifact— name, content-type, payloadUpdate— task state transitions, signed by the executing agent- Standard error variants
Generate types via the per-language codegen (SDKs), even though the runtime isn't shipped — the encoded bytes are stable.
Roadmap
| Milestone | Target |
|---|---|
| Wire schema published | ✅ |
| Go reference runtime (server + client) | in progress |
| Streaming task updates over ZAP | in progress |
| TS, Python, Rust client packages | once Go reference stabilizes |
| Bridge to Google A2A HTTP transport | proposed |
Track progress on zap-proto/a2a.
Related
- Google A2A specification — upstream spec
- Native ZAP RPC — the underlying RPC layer A2A maps to
- ACP over ZAP — FIPA-style alternative for structured dialog
- RNS — for keying agent discovery to identity rather than DNS