A2A Protocol Guide
Dive deep into the core concepts, components, and workflows of Google's Agent2Agent Protocol
Contents
Protocol Overview
A2A (Agent2Agent) is an open protocol developed by Google, designed to solve interoperability challenges between different AI agents. As described in the official GitHub repository, it's "an open protocol enabling communication and interoperability between opaque agentic applications." The protocol was officially announced on April 9, 2025.
In enterprise environments, one of the biggest challenges for AI applications is getting agents built on different frameworks and from different vendors to work together. The A2A protocol addresses this challenge by providing a standardized communication mechanism, breaking down "information silos" between different systems. See our use cases page for examples of how this works in practice.
The A2A protocol is an open-source project under the Apache license, designed to be a collaborative effort with contributions from the broader AI community. It aims to establish a common language for AI agents, regardless of the framework or vendor they are built on. For a comparison with other protocols like MCP, see our A2A vs MCP comparison.
Core Components
Agent Card
A public metadata file (typically located at /.well-known/agent.json
) that describes the agent's capabilities, skills, endpoint URLs, and authentication requirements. Clients use this file for agent discovery.
A2A Server
An HTTP endpoint that implements A2A protocol methods, receives requests, and manages task execution. The server processes requests from clients and performs operations according to its capabilities.
A2A Client
An application or another agent that consumes A2A services by sending requests to an A2A server. The client can be another AI agent or a user application.
Task
The central unit of work with a unique ID. Task states include submitted
, working
, input-required
, completed
, failed
, and canceled
.
Message
Represents a communication turn between the client (role: "user"
) and the agent (role: "agent"
). Messages contain one or more Parts.
Part
The basic content unit in messages or artifacts. Parts can be TextPart
(text content), FilePart
(file content with inline bytes or URI), or DataPart
(structured JSON data, such as forms).
Artifact
Output generated by the agent during task execution, such as generated files or final structured data. Artifacts also contain Parts.
Communication Flow
The A2A protocol defines a standardized communication flow that enables seamless collaboration between different agents. A typical communication flow is as follows:
Discovery
The client retrieves the Agent Card from the server's known URL to understand the server's capabilities and authentication requirements.
Initialization
The client sends a tasks/send
or tasks/sendSubscribe
request containing the initial user message and a unique task ID.
Processing
Streaming:
Servers with streaming
capability send SSE events (status updates, artifacts) as the task progresses.
Non-streaming:
The server processes the task synchronously and returns the final Task
object in the response.
Interaction (Optional)
If the task enters an input-required
state, the client sends subsequent messages using the same task ID via tasks/send
or tasks/sendSubscribe
.
Completion
The task eventually reaches a terminal state (completed
, failed
, or canceled
).
Communication Mechanisms
Streaming
For long-running tasks, servers with streaming
capability can use tasks/sendSubscribe
, and clients receive Server-Sent Events (SSE) containing TaskStatusUpdateEvent
or TaskArtifactUpdateEvent
messages.
Push Notifications
Servers supporting pushNotifications
can proactively send task updates to a webhook URL provided by the client, configured via tasks/pushNotification/set
.
// Client sends a task to the server
POST /tasks/sendSubscribe
{
"taskId": "task-123",
"messages": [
{
"role": "user",
"parts": [
{
"text": "Can you help me analyze this data?"
}
]
}
]
}
Technical Features
Embracing Agent Capabilities
Allows AI agents to collaborate in a natural, unstructured way, even when they don't share memories, tools, or context. The A2A protocol is designed with different agents' unique capabilities in mind, enabling them to collaborate effectively while maintaining their individual characteristics.
Long-Running Task Support
Designed to support everything from quick tasks to deep research that may take hours or even days to complete, with real-time feedback and status updates throughout the process. This makes the A2A protocol suitable for tasks of varying complexity.
Rich Content Support
A2A is not limited to text exchanges. The protocol supports rich content types through its flexible Part system, including TextPart for text content, FilePart for file content (with inline bytes or URI references), and DataPart for structured JSON data such as forms. This enables more sophisticated interactions between agents.
Open Ecosystem Approach
A2A is designed as an open protocol with contributions from the broader AI community. The protocol is already integrated with multiple agent frameworks including Google's Agent Development Kit (ADK), CrewAI, LangGraph, Genkit, LlamaIndex, Marvin, and Semantic Kernel, demonstrating its versatility and broad applicability.
Framework Integrations
Enterprise Benefits
Cross-Platform Interoperability
The A2A protocol's greatest advantage is its ability to enable seamless communication and collaboration between AI agents from different vendors and based on different frameworks. This breaks down the information silos of traditional AI systems, allowing enterprises to build more flexible and powerful AI solutions.
Enterprise-Grade Security
The A2A protocol includes built-in support for enterprise authentication and authorization mechanisms, compatible with existing OpenAPI authentication schemes, ensuring secure communication between agents. This allows enterprises to fully leverage the advantages of multi-agent collaboration while maintaining data security.
Standardized Architecture
Based on widely adopted standards such as HTTP, SSE, and JSON-RPC, the A2A protocol integrates easily with existing IT infrastructure. This lowers the adoption barrier, making it easier for enterprises to incorporate the A2A protocol into their existing systems.
Open Standard
As an open-source project, the A2A protocol operates under the Apache license and is open for contributions from the entire community. This ensures the protocol's transparency, reliability, and continuous development, avoiding the risk of vendor lock-in.
Business Impact
Reduction in development time for multi-agent systems
Increase in cross-platform agent collaboration efficiency
Reduction in integration costs for enterprise AI systems
Related Resources
A2A vs MCP Comparison
Compare A2A with Anthropic's MCP protocol and understand how they complement each other in the AI ecosystem.
A2A Use Cases
Explore real-world applications of A2A across different industries and understand its business value.
Developer Resources
Access code examples, implementation guides, and developer tools to start building with A2A.
About A2A Protocol
Learn about the origins, vision, and future roadmap of the A2A protocol and its community.