Agent2Agent (A2A) Protocol
Type: full-code · Vendor: Google / Linux Foundation · Language: N/A · License: Apache-2.0 · Status: active · Status in practice: emerging · First released: 2025-04-09
A2A is an open protocol that lets independent AI agents built by different vendors or frameworks discover each other and exchange tasks, messages, and results over a standard wire format.
Description. Agent2Agent (A2A) is an open protocol specification originally developed by Google Cloud and donated to the Linux Foundation in 2025. Each A2A server publishes an Agent Card describing its identity, skills, and endpoint, and clients send messages to it that the server either answers directly or turns into an asynchronous Task with a defined lifecycle. The protocol defines transport bindings over JSON-RPC, gRPC, and HTTP/REST so agents can communicate across process and vendor boundaries without sharing an internal framework.
Agent loop shape. A2A is not an agent loop itself but a request/response and task-lifecycle protocol between agents: a client agent discovers a remote agent through its Agent Card, sends a message, and the remote agent returns a direct response or creates a long-running Task whose state the client polls or streams until completion.
Primary use cases
- cross-vendor agent interoperability
- runtime agent discovery via Agent Cards
- delegating tasks between enterprise agents
- multi-agent coordination across frameworks
Key concepts
- Agent Card → agent-capability-manifest (docs) — A JSON metadata document published by an A2A server at a well-known URI describing its identity, capabilities, skills, service endpoint, and authentication requirements so clients can discover and bind to it.
- Task → async-tool-handle (docs) — The fundamental unit of work, identified by a unique id and stateful through a defined lifecycle (submitted, working, input-required, completed, failed, canceled, rejected), with results stored as artifacts.
- Message and Part → inter-agent-communication (docs) — A communication turn between client and agent, composed of typed Parts (text, file, structured data), exchanged via message/send or the streaming message/stream method.
- Transport bindings → streaming-typed-events (docs) — A2A is async-first and reuses HTTP, JSON-RPC 2.0, gRPC, and Server-Sent Events so streaming updates and long-running tasks ride on standard infrastructure.
Patterns this full-code implements —
- ★Agent Capability Manifest
Each A2A server publishes an Agent Card JSON (identity, skills, service endpoint, auth) at the well-known URI /.well-known/agent-card.json so clients discover and bind to it by capability at runtime.
- ★Cross-Domain Enterprise Agent Network
A2A lets vendor- and framework-independent agents, each grounded in its own enterprise system, securely exchange information and coordinate actions across enterprise platforms via a standard inter-ag…
- ★Inter-Agent Communication
A2A is itself the inter-agent communication protocol: it defines a common message and task exchange model so agents built on different frameworks, languages, or vendors can interoperate.
- ★Async Tool Handle
A message that cannot be answered immediately becomes a stateful Task with a unique id; the client retrieves its current state (status, artifacts, history) later via a separate Get Task call rather t…
- ★★Streaming Typed Events
Over a streaming connection built on Server-Sent Events, the remote agent pushes typed TaskStatusUpdateEvent and TaskArtifactUpdateEvent objects as work progresses, and the stream closes when the tas…
Neighbourhood
Click any neighbour to follow the lineage. Scroll to zoom, drag to pan.