Core Concepts
Reasoning Techniques
Memory Systems
Retrieval
Agent Types
Design Patterns
Training & Alignment
Frameworks
Tools & Products
Code & Software
Safety & Security
Evaluation
Research
Development
Meta
Core Concepts
Reasoning Techniques
Memory Systems
Retrieval
Agent Types
Design Patterns
Training & Alignment
Frameworks
Tools & Products
Code & Software
Safety & Security
Evaluation
Research
Development
Meta
Agent-to-Agent (A2A) is an open-source communication protocol developed by Google, launched at Google Cloud Next '25 in April 2025. A2A enables secure, interoperable communication between AI agents from different vendors, frameworks, and cloud environments. It complements Anthropic's Model Context Protocol (MCP) by addressing inter-agent networking rather than tool/data integration.
Over 50 companies have adopted A2A, including PayPal, Salesforce, and Atlassian.
A2A uses a client-server model built on HTTP, Server-Sent Events (SSE), and JSON-RPC — standard web protocols that integrate with existing IT infrastructure. Key architectural layers include:
Agents act as both A2A Clients (initiating tasks) and A2A Servers (processing incoming tasks), enabling bidirectional communication.
A2A follows a four-step communication flow:
1. Agent Discovery: Clients fetch an Agent Card — a metadata JSON file hosted at /.well-known/agent.json — that describes the agent's capabilities, endpoints, and preferences. This enables automatic discovery and matching of suitable agents.
2. Task Initiation: The client submits a Task Object (structured JSON with objectives, inputs, and parameters) to the remote agent's server endpoint.
3. Messaging and Status Updates: Agents exchange messages containing “parts” (text, images, or UI negotiations). The protocol supports push notifications, streaming for real-time progress, and status tracking (pending, working, completed).
4. Result Delivery: The server returns artifacts in multi-format outputs. Long-running tasks are supported with human-in-the-loop feedback capabilities.
A2A and MCP are complementary protocols that serve different purposes in the agent ecosystem:
| Aspect | A2A (Google) | MCP (Anthropic) |
|---|---|---|
| Primary Focus | Inter-agent communication | Single-agent tool/context integration |
| Scope | Multi-agent networking across vendors | Plugins for data/tools within one agent |
| Analogy | Networking layer | Plugin system |
| Use Case | Large-scale collaborative workflows | Enhancing individual agent capabilities |
| Launched | April 2025 | November 2024 |
| Adoption | 50+ companies | Widespread across LLM providers |
In practice, they are used together: A2A handles inter-agent communication while MCP handles each agent's connection to enterprise tools and data sources.
# Fetching an Agent Card for discovery import httpx async def discover_agent(base_url: str) -> dict: async with httpx.AsyncClient() as client: response = await client.get(f'{base_url}/.well-known/agent.json') card = response.json() # Card contains: name, description, capabilities, endpoints print(f'Agent: {card["name"]}') print(f'Capabilities: {card["capabilities"]}') return card # Sending a task to a discovered agent async def send_task(agent_url: str, task: dict) -> dict: payload = { "jsonrpc": "2.0", "method": "tasks/send", "params": task, "id": "1" } async with httpx.AsyncClient() as client: response = await client.post(agent_url, json=payload) return response.json()