A2A Protocol Guide

Dive deep into the core concepts, components, and workflows of Google's Agent2Agent Protocol

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:

1

Discovery

The client retrieves the Agent Card from the server's known URL to understand the server's capabilities and authentication requirements.

2

Initialization

The client sends a tasks/send or tasks/sendSubscribe request containing the initial user message and a unique task ID.

3

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.

4

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.

5

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.

Example: Task I...JSON
// 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

ADK
Google's Agent Development Kit
CrewAI
Multi-agent framework
LangGraph
Agent orchestration
LlamaIndex
Data framework

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

40%

Reduction in development time for multi-agent systems

60%

Increase in cross-platform agent collaboration efficiency

30%

Reduction in integration costs for enterprise AI systems