← Back to all projects

A2A

The open protocol for one independent agent to discover and delegate work to another

OfficialApache-2.0
Stars
25.5k
Forks
2.6k
Open issues
238
Last commit
28 Aug 2026

What is A2A?

A2A defines how separately built agents advertise their capabilities, exchange messages and track work that may outlive one connection. Version 1.0 separates a shared data model and operations from JSON-RPC, gRPC and HTTP/REST bindings, while official SDKs live in other repositories. Use it between autonomous services that need task state, streaming or asynchronous updates; a database query or other bounded tool call still belongs behind MCP, and adopting the specification does not supply an agent, a registry or authorization policy.

What can you do with A2A?

  • Publish capabilities in an Agent Card — An A2A server exposes a JSON document describing its identity, service URL, supported input and output media, optional protocol extensions, security schemes and named skills. A client can decide whether the remote agent is suitable before sending it work, without learning its prompts, memory or internal tools.
  • Keep long-running work in a Task — A request can return a stateful Task rather than a final message. The client can retrieve, list or cancel it, group related work with a context identifier, and receive the resulting documents or structured data as Artifacts while the remote agent keeps its implementation private.
  • Choose immediate, streamed or disconnected updates — Simple interactions return a Message directly. Longer work can stream status and Artifact chunks over the selected protocol binding, or notify a webhook after the original client has disconnected, so human approval and external processing do not have to fit inside one HTTP response.
  • Share semantics across three protocol bindings — Version 1.0 defines the canonical data model in Protocol Buffers, describes operations independently, then maps them to JSON-RPC, gRPC and HTTP/REST. Implementations can choose a transport without giving Task, Message, Agent Card and Artifact different meanings.
  • Reuse web authentication instead of carrying credentials in messages — The Agent Card declares OAuth, OpenID Connect, API-key or mutual-TLS requirements, while credentials travel through the binding's normal headers and channels rather than inside A2A Messages. The protocol describes the scheme; each server still has to enforce who may discover an agent, read a Task or receive an Artifact.
  • Put A2A above MCP, not in place of it — A remote agent may plan, keep state and use several tools while accepting delegated work through A2A. That agent can use MCP internally to reach databases, APIs and other bounded capabilities, so the two protocols occupy different links in the same system.

Before you choose A2A

  • Agent Cards make discovery possible but do not provide a universal registry; well-known URLs, curated catalogues and private registries remain deployment choices.
  • The specification names security schemes but does not implement access control, tenant isolation or credential storage; every server and client must supply those controls.
  • The specification and official SDKs ship from separate repositories, so support for a new protocol version must be checked in the language SDK you plan to deploy.

Star history

17 Aug to 28 Aug · +153

25.4k25.5k

Frequently asked questions

Is A2A free for commercial use?

A2A is released under the Apache-2.0 licence — OSI-approved open source, which permits commercial use.

Documentation

Reproduced from the a2aproject/A2A README, published under Apache-2.0. Read the original ↗

Agent2Agent (A2A) Protocol

An open protocol enabling communication and interoperability between opaque agentic applications.

The Agent2Agent (A2A) protocol addresses a critical challenge in the AI landscape: enabling gen AI agents, built on diverse frameworks by different companies running on separate servers, to communicate and collaborate effectively - as agents, not just as tools. A2A aims to provide a common language for agents, fostering a more interconnected, powerful, and innovative AI ecosystem.

With A2A, agents can:

  • Discover each other’s capabilities.
  • Negotiate interaction modalities (text, forms, media).
  • Securely collaborate on long-running tasks.
  • Operate without exposing their internal state, memory, or tools.

DeepLearning.AI Course

A2A DeepLearning.AI

Join this short course on A2A: The Agent2Agent Protocol, built in partnership with Google Cloud and IBM Research, and taught by Holt Skinner, Ivan Nardini, and Sandi Besen.

What you’ll learn:

  • Make agents A2A-compliant: Expose agents built with frameworks like Google ADK, LangGraph, or BeeAI as A2A servers.
  • Connect agents: Create A2A clients from scratch or using integrations to connect to A2A-compliant agents.
  • Orchestrate workflows: Build sequential and hierarchical workflows of A2A-compliant agents.
  • Multi-agent systems: Build a healthcare multi-agent system using different frameworks and see how A2A enables collaboration.
  • A2A and MCP: Learn how A2A complements MCP by enabling agents to collaborate with each other.

Why A2A?

As AI agents become more prevalent, their ability to interoperate is crucial for building complex, multi-functional applications. A2A aims to:

  • Break Down Silos: Connect agents across different ecosystems.
  • Enable Complex Collaboration: Allow specialized agents to work together on tasks that a single agent cannot handle alone.
  • Promote Open Standards: Foster a community-driven approach to agent communication, encouraging innovation and broad adoption.
  • Preserve Opacity: Allow agents to collaborate without needing to share internal memory, proprietary logic, or specific tool implementations, enhancing security and protecting intellectual property.

Key Features

  • Standardized Communication: JSON-RPC 2.0 over HTTP(S).
  • Agent Discovery: Via “Agent Cards” detailing capabilities and connection info.
  • Flexible Interaction: Supports synchronous request/response, streaming (SSE), and asynchronous push notifications.
  • Rich Data Exchange: Handles text, files, and structured JSON data.
  • Enterprise-Ready: Designed with security, authentication, and observability in mind.

Getting Started

What’s next

Protocol Enhancements

  • Agent Discovery:
    • Formalize inclusion of authorization schemes and optional credentials directly within the AgentCard.
  • Agent Collaboration:
    • Investigate a QuerySkill() method for dynamically checking unsupported or unanticipated skills.
  • Task Lifecycle & UX:
    • Support for dynamic UX negotiation within a task (e.g., agent adding audio/video mid-conversation).
  • Client Methods & Transport:
    • Explore extending support to client-initiated methods (beyond task management).
    • Improvements to streaming reliability and push notification mechanisms.

About

The A2A Protocol is an open source project under the Linux Foundation, contributed by Google. It is licensed under the Apache License 2.0 and is open to contributions from the community.