A2A (Agent-to-Agent) Protocol — это открытый стандарт, созданный Google в 2025 году и переданный Linux Foundation, который позволяет AI-агентам находить друг друга, обмениваться задачами и результатами — независимо от того, на каких фреймворках они построены. По данным Linux Foundation (апрель 2026), протокол поддерживают уже более 150 организаций, а Google, Microsoft и AWS встроили A2A в свои облачные платформы. В отличие от MCP (Model Context Protocol), который отвечает за связь агента с инструментами, A2A решает другую задачу — коммуникацию между самими агентами. В этом материале — что такое A2A, как он устроен и как начать с ним работать на Python.

24.7K звёзд на GitHub
150+ организаций
1.0.0 стабильный релиз
40% приложений с AI-агентами к 2026

Что такое A2A Protocol

A2A (Agent-to-Agent Protocol) — открытый протокол, который позволяет AI-агентам общаться напрямую, без общего кода, фреймворка или базы данных. Представьте: один агент написан на LangGraph, другой — на CrewAI, третий — кастомный на Python. Без A2A их интеграция требует ручного REST API, общей базы или шины сообщений. С A2A каждый агент публикует Agent Card — JSON-файл, в котором описано, что он умеет, как с ним связаться и какие форматы данных принимает. Другие агенты находят эту карточку, устанавливают соединение по HTTP/SSE и обмениваются задачами.

Протокол родился в 2025 году как инициатива Google, но уже в апреле 2025 года был передан под управление Linux Foundation. К апрелю 2026 года — чуть больше чем за год — A2A поддерживают 150+ организаций, включая Adobe, Microsoft, SAP и ServiceNow. IBM, у которой был собственный конкурирующий стандарт ACP (Agent Communication Protocol), влилась в A2A. Версия 1.0.0 спецификации стабильна, SDK есть для Python, Go и TypeScript.

Gartner прогнозирует, что к концу 2026 года 40% корпоративных приложений будут интегрировать AI-агентов. A2A — один из ключевых протоколов, который делает такую интеграцию возможной между агентами разных вендоров.

Архитектура протокола: Agent Card, Task и Message

A2A оперирует тремя базовыми концепциями, которые вместе образуют модель взаимодействия между агентами:

Agent Card — это визитная карточка агента. JSON-документ, доступный по URL, в котором указаны: название агента, описание умений (skills), поддерживаемые форматы данных (text, file, form), URL для отправки задач, ключ для аутентификации. Агент публикует карточку в реестре (или просто вешает на свой эндпоинт), и клиенты читают её, чтобы понять, как с ним общаться. Agent Card — это аналог robots.txt или OpenAPI-спецификации, но для AI-агентов.

Task — основная единица работы в A2A. Клиентский агент создаёт задачу, отправляет её агенту-исполнителю и отслеживает её жизненный цикл. Задача проходит через строго определённые состояния: submitted (отправлена), working (выполняется), input-required (нужны уточнения), completed (завершена), failed (ошибка). Протокол поддерживает как синхронный режим (задача выполняется мгновенно), так и асинхронный (результат приходит через SSE Streaming).

Message — данные, которыми обмениваются агенты в рамках задачи. Каждое сообщение содержит role (client или agent), контент (текст, файл, JSON) и необязательные метаданные. Сообщения формируют лог взаимодействия — полную историю того, как агенты пришли к результату.

Архитектура A2A спроектирована так, что агенты остаются «непрозрачными» — протокол не требует доступа к внутреннему состоянию, памяти или инструментам агента. Всё, что нужно знать клиенту: Agent Card и API для управления задачами. Ниже — упрощённая схема того, как агент-клиент взаимодействует с удалённым агентом через A2A:

Архитектура A2A Protocol

Компоненты A2A: от клиентского агента через протокольный слой к удалённому агенту

Как выглядит жизненный цикл задачи

Клиент находит Agent Card агента (по URL или через реестр). Отправляет POST-запрос на эндпоинт assignTask с описанием задачи. Агент принимает задачу в статусе submitted, переводит в working и начинает выполнение. Если агенту не хватает данных — он запрашивает уточнение (status input-required). Клиент может отправить дополнительное сообщение. Когда задача выполнена — статус меняется на completed, а в ответе приходит артефакт (текст, файл, структура).

Для долгих задач A2A использует SSE Streaming — клиент подписывается на эндпоинт задачи и получает обновления по мере генерации ответа. Для коротких — достаточно одного HTTP-запроса. Такой подход делает протокол одинаково удобным для QA-бота (ответ за секунду) и анализатора документов (обработка несколько минут).

Клиент
POST
assignTask
submitted
working
input-required
send
message
working
completed
artifact

A2A vs MCP: не конкуренты, а стек

Одна из самых частых ошибок — противопоставлять A2A и MCP. На деле это разные уровни одного стека. MCP отвечает за agent-to-tool — как агент подключает базу данных, файловую систему или API. A2A отвечает за agent-to-agent — как один агент делегирует задачу другому. MCP — это драйверы и периферия, A2A — сетевой протокол между узлами.

На практике это выглядит так: один A2A-агент может иметь внутри несколько MCP-серверов для доступа к данным. Другой агент — несколько своих MCP-серверов. Агенты общаются через A2A, а внутри каждого агента MCP управляет инструментами. Никакого конфликта — протоколы решают разные задачи.

Характеристика A2A (Agent-to-Agent) MCP (Model Context Protocol)
Задача Коммуникация агент — агент Коммуникация агент — инструмент
Автор Google → Linux Foundation Anthropic
Формат JSON-RPC + SSE / HTTP JSON-RPC + stdio / SSE
Обнаружение Agent Card (JSON по URL) MCP-сервер указывает endpoint
Управление задачами Task lifecycle (6 состояний) Вызов инструмента (1 запрос)
Прозрачность Непрозрачный — без доступа к состоянию Прозрачный — подключается к LLM
Статус v1.0.0 (апрель 2026) v1.0.0 (ноябрь 2025, обновления)
Экосистема 150+ организаций, Python/Go/TS SDK 1000+ серверов, все языки

Выбор между A2A и MCP — ложный. Стек выглядит так: на нижнем уровне MCP подключает инструменты (БД, API, файлы), на верхнем уровне A2A соединяет агентов, каждый из которых использует свои MCP-инструменты. Аналитики Zylos (март 2026) описывают это как трёхуровневый стек: MCP для инструментов — WebMCP для веба — A2A для агентов.

Установка и настройка Python SDK

Для работы с A2A на Python есть два основных SDK. Официальный — a2a-sdk от проекта A2A (версия 1.1.0, Python 3.10+). Альтернатива — python-a2a с открытыми исходниками, который добавляет интеграцию с LangChain и MCP.

Начнём с официального SDK:

pip install a2a-sdk

Установка занимает несколько секунд — библиотека лёгкая, без тяжёлых зависимостей. После установки проверяем:

python -c "from a2a_sdk import A2AClient; print('OK')"

Если ошибок нет — всё готово. SDK предоставляет классы A2AClient (для отправки задач), AgentCard (для описания агента) и A2AServer (для создания агента-исполнителя).

Для установки с расширенными возможностями (SSE streaming, поддержка корутин):

pip install a2a-sdk[streaming]

Альтернативный SDK — python-a2a (документация). Основное преимущество — встроенная интеграция с MCP и LangChain:

pip install python-a2a

Эта библиотека также включает визуальный редактор Agent Flow UI для построения сетей агентов перетаскиванием — полезно для прототипирования, но в production вряд ли пригодится.

Создаём A2A-агента на Python

Рассмотрим минимальный сценарий: один агент (клиент) отправляет задачу другому агенту (исполнителю) через A2A.

Шаг 1: создаём агента-исполнителя

Агент-исполнитель — это просто веб-сервер, который реализует эндпоинты A2A-спецификации. На официальном SDK:

from a2a_sdk import A2AServer, AgentCard

# Конфигурация агента
card = AgentCard(
    name="ResearchAgent",
    description="Ищет информацию по заданной теме",
    url="http://localhost:8000",
    skills=["web_search", "data_summarize"]
)

server = A2AServer(agent_card=card, port=8000)

# Обработчик задач
@server.on_task
async def handle_task(task):
    topic = task.input["topic"]
    result = f"Найденные данные по теме: {topic}"
    return {"status": "completed", "artifact": {"text": result}}

server.run()

Этот код запускает HTTP-сервер на порту 8000 с A2A-эндпоинтами (Agent Card по /.well-known/agent.json, assignTask, getTask, sendMessage). Другие A2A-агенты могут находить его и отправлять задачи.

Шаг 2: создаём агента-клиента

Клиент читает Agent Card удалённого агента и отправляет задачу:

from a2a_sdk import A2AClient

client = A2AClient()

# Читаем Agent Card удалённого агента
agent_card = client.fetch_agent_card(
    "http://localhost:8000/.well-known/agent.json"
)
print(f"Агент: {agent_card.name}")
print(f"Умения: {agent_card.skills}")

# Создаём задачу
task = client.create_task(
    agent_url="http://localhost:8000",
    input={"topic": "AI-агенты в enterprise 2026"}
)

print(f"Статус: {task.status}")
print(f"Результат: {task.artifact['text']}")

Всё взаимодействие — через HTTP. Клиент не знает, на каком фреймворке написан агент, какие LLM он использует и какие у него инструменты. Только Agent Card и API.

Шаг 3: обработка уточнений

Если агенту не хватает данных, он переводит задачу в статус input-required. Клиент может отправить уточнение:

if task.status == "input-required":
    task = client.send_message(
        task_id=task.id,
        content={"clarification": "искать источники только за 2026 год"}
    )
    print(f"Новый статус: {task.status}")

Этот паттерн — ключевое отличие A2A от простого API: взаимодействие может быть многошаговым, как диалог между двумя разработчиками. И при этом каждый агент остаётся «чёрным ящиком» — ни один не видит код или данные другого.

Enterprise-внедрение: кейсы и цифры

Год с момента запуска — достаточный срок, чтобы оценить, как A2A работает в production. Данные из апрельского отчёта Linux Foundation и обзоров AgentMarketCap (апрель 2026):

Показатель Значение
Организации в A2A 150+ (от стартапов до Adobe, SAP, ServiceNow)
Облачные платформы Google Cloud, Microsoft Azure, AWS
Поглощённые стандарты IBM ACP влился в A2A
Версия спецификации v1.0.0 стабильная
SDK Python, Go, TypeScript
Production-кейсы Автоматизация support, обработка документов, оркестрация RAG

Что интересно — распределение кейсов. В enterprise A2A используют не для замены людей, а для соединения уже существующих AI-агентов в единую цепочку, где один агент может делегировать задачу другому, не дожидаясь, пока разработчик напишет интеграцию. Adobe внедрила A2A для связки AI-агентов в Creative Cloud, Microsoft — в Azure AI Foundry, SAP — для SAP BTP агентов.

Ailoitte (июнь 2026) выделяет три типовых сценария: RAG-пайплайн, где один агент ищет информацию, а второй генерирует ответ на основе найденного; multi-agent экспертная система, где несколько узкопрофильных агентов собирают решение из своих фрагментов; и голосовые ассистенты, требующие распознавания, поиска и синтеза речи в одном потоке.

Безопасность и A2A: Agent Card и верификация

A2A изначально проектировался как протокол для открытого интернета — агенты могут быть развёрнуты у разных вендоров, на разных серверах и в разных юрисдикциях. Поэтому безопасность — не дополнительный слой, а часть спецификации.

Каждый Agent Card может содержать ключ аутентификации: API-ключ, JWT-токен или ссылку на OAuth-провайдера. Агент-клиент перед отправкой задачи проверяет, аутентифицирован ли удалённый агент и можно ли ему доверять. HTTPS — mandatory. SSE-стримы шифруются.

Но главная особенность A2A в том, что он не раскрывает внутреннее устройство агента. Протокол обменивается только задачами и артефактами — никаких промптов, никаких данных о модели, никаких ключей к MCP-инструментам. Если агент A просит агента B найти информацию — B не видит, какие ещё инструменты есть у A, какие у него промпты и какие данные он хранит.

На практике это означает, что enterprise может подключить к A2A-сети внешнего агента (SaaS, партнёрский сервис) без риска, что тот прочитает внутренние данные. Всё, что получает внешний агент — описание задачи, которую ему отправляют. Ответ приходит структурированным артефактом, и только.

Когда внедрять A2A, а когда достаточно MCP

A2A нужен не всегда. Для многих задач одного агента достаточно — он получает запрос от пользователя, обращается к MCP-серверам за данными и возвращает ответ. Добавление A2A в такой сценарий — лишняя сложность.

Но есть признаки, что пора внедрять A2A: у вас больше одного агента, каждый специализирован на своей задаче (например, поиск в БД + генерация отчётов + проверка качества); агенты написаны на разных фреймворках и их кодовая база не пересекается; вы хотите подключать внешние агенты (SaaS, партнёрские решения) без написания кастомных интеграций; требуется оркестрация с возможностью делегировать часть работы и получать промежуточные результаты.

По данным WebNuz (март 2026), оптимальная архитектура для enterprise — трёхуровневый стек: MCP для инструментов, A2A для агентов, единый Agent Registry для обнаружения. Эта схема покрывает 90% production-кейсов, от простого чат-бота до multi-agent пайплайна с десятком узлов.

Коротко

A2A Protocol — открытый стандарт для прямого общения AI-агентов, поддерживаемый Linux Foundation, 150+ организациями и всеми тремя крупными облачными платформами. A2A решает задачу agent-to-agent, тогда как MCP — agent-to-tool. На Python SDK можно поднять A2A-агента за 20 строк кода, а сценарии внедрения варьируются от простой связки двух агентов до enterprise-оркестрации с Agent Registry. Если у вас больше одного агента — A2A стоит рассматривать уже сейчас.

Что ещё важно знать

A2A Protocol бесплатен для коммерческого использования?

Да, спецификация выпущена под Apache 2.0, SDK — под MIT. Linux Foundation управляет развитием протокола без лицензионных отчислений. Коммерческие ограничения отсутствуют.

Можно ли использовать A2A без облачных платформ Google/Microsoft/AWS?

Да, A2A — это чистый HTTP/SSE протокол. Агент может быть развёрнут на любом сервере, под любым доменом, на любой инфраструктуре. Никакой зависимости от конкретного облака нет. Интеграция с Google Cloud, Azure и AWS — опциональна.

Как A2A справляется с долгими задачами?

Для долгих задач A2A использует SSE (Server-Sent Events). Клиент получает stream-обновлений с прогрессом и частичными результатами. Для коротких задач — стандартный HTTP response.

Подходит ли A2A для голосовых AI-агентов?

Да, через A2A можно организовать пайплайн: голосовой распознаватель → NLP-агент → RAG-агент → синтезатор речи. Каждый узел — отдельный A2A-агент, переиспользуемый в разных сценариях.

Чем A2A отличается от ACP (Agent Communication Protocol) от IBM?

IBM объединила свой протокол ACP с A2A в первой половине 2026 года. Теперь A2A — единственный общепризнанный стандарт agent-to-agent. Детали можно найти в отчёте HPCwire за апрель 2026.