Agent2Agent Protocol (A2A)
Type: full-code · Vendor: Google, donated to the Linux Foundation · Language: Python, JavaScript, Java, Go · License: Apache-2.0 · Status: active · Status in practice: emerging
Open protocol for cross-vendor agent-to-agent collaboration in which agents publish a signed Agent Card describing identity, endpoint, and skills, and discover and verify each other before delegating tasks.
Description. A2A is an open protocol, originated by Google and donated to the Linux Foundation, for collaboration between opaque agents across vendors. Each agent publishes an Agent Card — a JSON descriptor of identity, endpoint, capabilities, and auth needs — at a well-known URL. Specification v1.0 adds Agent Card Signing (an AgentCardSignature object, JWS-based, specification section 8.4) so a client can verify a card's authenticity and issuer before binding, alongside multi-tenancy and federation.
Agent loop shape. Agent-to-agent collaboration protocol. Step 1: each agent publishes a signed Agent Card at a well-known URL describing identity, endpoint, skills, and auth. Step 2: a client agent fetches a remote agent's card and verifies its JWS signature against the issuing domain. Step 3: on a verified card, the client binds by capability and opens a task. Step 4: tasks and scoped credentials are delegated to the verified agent; messages and artifacts flow over the A2A transport.
Primary use cases
- cross-vendor agent discovery and task delegation
- verifying a remote agent's identity via a signed Agent Card before binding
- capability-based binding without hardcoded coupling
Key concepts
- Agent Card → agent-capability-manifest (docs) — A JSON descriptor (a digital business card) of an agent's identity, endpoint, capabilities, and auth needs, fetched for discovery.
- Agent Card Signing → signed-agent-card (docs) — Specification section 8.4: an AgentCardSignature (JWS) lets a client verify a card's authenticity and issuer before binding.
- Capability-based binding → agent-capability-manifest (docs) — Clients bind to agents by advertised skill rather than hardcoded coupling.
Patterns this full-code implements —
- ★Signed Agent Card
A2A v1.0's Agent Card Signing is exactly this pattern: a JWS-signed Agent Card whose issuer a client verifies before binding.
- ★Agent Capability Manifest
The A2A Agent Card is the published capability manifest a client fetches to bind by capability at runtime.
- ★Delegated Agent Authorization
Once a card verifies, A2A scopes the credentials and tasks delegated to the now-trusted remote agent.