A2A Overview
Overview of the A2A protocol and its main actors
A2A Protocol Overview
The A2A protocol enables communication between different agentic applications, allowing them to collaborate on tasks without sharing internal memories, tools, or resources.
Main Actors
The A2A protocol defines several key actors:
Client
The Client initiates the interaction with an Agent. A Client can be:
- A user interface (web, mobile, CLI)
- Another Agent using the A2A protocol
- An application utilizing Agent services
Clients communicate with Agents by creating Tasks and updating them with new Messages.
Agent
The Agent is an agentic application that processes Tasks. An Agent can:
- Expose an Agent Card describing its capabilities
- Process Tasks asynchronously
- Produce Artifacts (results of processing)
- Request additional input when needed
- Support both one-off and multi-turn interactions
Task
A Task represents a unit of work for an Agent. A Task contains:
- Messages exchanged between Client and Agent
- The current state of the Task (Created, Processing, InputRequired, Completed, Failed)
- Artifacts produced by the Agent
- Metadata about the Task
Message
Messages are exchanged between Clients and Agents within a Task. Messages can contain:
- Text (plain or formatted)
- Images
- Audio
- Video
- Structured data (JSON)
- Other binary data
Artifact
Artifacts are the outputs produced by an Agent after processing a Task. Artifacts can be:
- Text responses
- Generated images
- Audio clips
- Structured data
- Any other content the Agent can produce
Protocol Flow
- Capability Discovery: Clients can discover an Agent's capabilities via its Agent Card
- Task Creation: Client creates a Task with an initial Message
- Processing: Agent processes the Task asynchronously
- Communication: If needed, Agent can request additional input from the Client
- Completion: Agent completes the Task and produces Artifacts
Key Benefits
- Standardized Communication: Common interface for agent interactions
- Asynchronous Processing: Long-running tasks don't block the client
- Multimodal Support: Exchange of various content types
- Stateful Interactions: Support for multi-turn conversations
- Interoperability: Agents built on different frameworks can communicate
Overview
The A2A protocol has three main actors:
- User
The end-user (human or service) that is using an agentic system to accomplish tasks. - Client
The entity (service, agent, application) that is requesting an action from an opaque agent on behalf of the user. - Remote Agent (Server)
The opaque ("blackbox") agent which is the A2A server.
Transport
The protocol leverages HTTP for transport between the client and the remote agent. Depending on the capabilities of the client and the remote agent, they may leverage SSE for supporting streaming for receiving updates from the server.
A2A leverages JSON-RPC 2.0 as the data exchange format for communication between a Client and a Remote Agent.
Async Communication
A2A clients and servers can use standard request/response patterns and poll for updates. However, A2A also supports streaming updates through SSE (while connected) and receiving push notifications while disconnected.
Authentication and Authorization
A2A models agents as enterprise applications (and can do so because A2A agents are opaque and do not share tools and resources). This quickly brings enterprise-readiness to agentic interop.
A2A follows OpenAPI's Authentication specification for authentication. Importantly, A2A agents do not exchange identity information within the A2A protocol. Instead, they obtain materials (such as tokens) out of band and transmit materials in HTTP headers and not in A2A payloads.
While A2A does not transmit identity in-band, servers do send authentication requirements in A2A payloads. At minimum, servers are expected to publish their requirements in their Agent Card.
Core Components
Agent Card
Remote Agents that support A2A are required to publish an Agent Card in JSON format describing the agent's capabilities/skills and authentication mechanism. Clients use the Agent Card information to identify the best agent that can perform a task and leverage A2A to communicate with that remote agent.
Task Management
The communication between a Client and a Remote Agent is oriented towards task completion where agents collaboratively fulfill an end-user's request. A Task object allows a Client and a Remote Agent to collaborate for completing the submitted task.
Tasks can be:
- Completed immediately
- Long-running with status updates
- Requiring additional input
- Supporting multi-turn conversations
- Streaming results in real-time
Artifacts and Messages
- Artifacts: Results generated by agents in response to tasks
- Messages: Content exchanged between clients and agents that is not a result
- Parts: Individual pieces of content within messages or artifacts
Technical Specification
The A2A protocol includes detailed specifications for:
- Agent discovery and capability advertisement
- Task creation, monitoring, and cancellation
- Handling multi-turn conversations
- Supporting non-textual media
- Generating structured output
- Error handling
For complete technical details, please see the JSON Specification.