A2A Profile (Agent-to-Agent Communication)¶
Status: Published — v2.0
Scope: Agent discovery, session establishment, transport bindings, and message exchange
Purpose¶
DCP Core defines how an individual agent proves its identity and accountability to a verifier. The A2A Profile extends this to cover direct agent-to-agent interaction — how two DCP-certified agents discover each other, establish a mutually-authenticated session, and exchange messages with full audit trail integration.
This is explicitly outside the core because:
- Many DCP deployments involve only agent-to-verifier interaction (passive verification)
- A2A requires transport-specific bindings (WebSocket, gRPC, HTTP/2) that the core should not mandate
- Discovery mechanisms depend on deployment context (well-known URLs, registries, direct exchange)
- Session management introduces state that is not part of the stateless core verification model
What Lives Here (Not in Core)¶
Agent Discovery¶
Publication and resolution of agent directories via .well-known/dcp-agent-directory.json, including agent metadata, capabilities, endpoints, and supported algorithms.
See DCP-04 Section 2.
Handshake Protocol¶
The four-message handshake (A2A_HELLO, A2A_WELCOME, A2A_CONFIRM, A2A_ESTABLISHED) that establishes a mutually-authenticated, post-quantum-secured session using hybrid KEM (X25519 + ML-KEM-768).
See DCP-04 Section 3.
Session Management¶
Session state (keys, counters, rekeying), encrypted message format (AES-256-GCM), rekeying protocol, session termination, and session resume.
See DCP-04 Section 4.
Transport Bindings¶
WebSocket, gRPC, and HTTP/2 SSE transport options, with CBOR encoding for session messages.
See DCP-04 Section 7.
Trust Model¶
Per-session trust establishment via mutual bundle verification, organizational trust, and optional transitive trust with configurable depth limits.
See DCP-04 Section 5.
A2A Audit Events¶
Audit entry types specific to A2A interactions: a2a_hello_sent, a2a_session_established, a2a_message_sent, a2a_rekey, a2a_session_closed, etc.
See DCP-04 Section 6.
What Stays in Core¶
- The Signed Bundle that agents present during A2A handshake — its structure and verification are core
- The hash-chained audit entries that A2A events produce — their format is core, but A2A-specific event types are profile-scoped
- The Agent Passport that identifies each agent — its structure is core
Normative References¶
- DCP-04 — Agent-to-Agent Communication (full normative specification)
- DCP-AI v2.0 — Session binding (Section 8), Key Derivation
Implementation notes (informative)¶
Added 25/10/2026. Not normative. These notes add no requirement and change nothing above: they describe how the reference code on
mainrelates to this text. Where they differ, the normative text above stands.
- "Published" refers to the specification. On
main, every SDK buildsA2A_HELLOandA2A_WELCOME, but none implementsA2A_CONFIRM/A2A_ESTABLISHEDor the session-key derivation of DCP-04 §3.4; only the TypeScript SDK has the hybrid X25519 + ML-KEM-768 KEM the messages announce, and the Rust SDK has no session layer (tools/interop-matrix). - The SDK helpers build messages, directories and session objects that the caller supplies keys for. They do not run the handshake, the KEM exchange, bundle verification, admission, networking or audit logging on their own: those are the caller's, and no transport binding is implemented by the reference server.