Блог AST-SoftPro
Протокол A2A (Agent2Agent): как агенты учатся разговаривать между собой
В апреле 2025 года Google представила протокол A2A (Agent2Agent) — открытый стандарт для общения между ИИ-агентами. Спустя год, в апреле 2026-го, проекту исполнился год: более 150 организаций, включая Microsoft, AWS, Salesforce, SAP и IBM, уже используют A2A в своих продуктах, а спецификация v1.0 вышла со статусом stable. Разбираем, что такое A2A, зачем он нужен и чем отличается от MCP.
Зачем агентам нужен общий протокол
До появления A2A интеграция двух ИИ-агентов от разных вендоров выглядела как написание моста под конкретную пару: свой формат сообщений, своя авторизация, свой жизненный цикл задачи. Каждый новый агент — новая разработка с нуля.
Протокол решает эту проблему так же, как HTTP сделал для веб-серверов: один стандарт, и любой клиент работает с любым сервером. A2A отвечает на вопрос «как агент А просит агента Б выполнить задачу и получает результат», тогда как MCP (Model Context Protocol) отвечает на другой — «как модель подключает инструменты и источники данных».
💡 A2A и MCP — не конкуренты, а дополняют друг друга. MCP — это клиент-серверный доступ к инструментам внутри одной системы. A2A — равноправное сотрудничество отдельных агентов, каждый со своей моделью, своими инструментами и своим владельцем.
Как устроен A2A: Agent Card и жизненный цикл задачи
Входная точка любого A2A-агента — Agent Card: JSON-файл с описанием агента, который публикуется по стандартному адресу /.well-known/agent.json. Карточка содержит:
| Поле | Назначение |
|---|---|
name, description, version |
Идентификация агента |
provider |
Кто владеет агентом (организация, URL) |
supportedInterfaces[] |
Поддерживаемые интерфейсы: JSON-RPC 2.0 и/или gRPC с URL-эндпоинтами |
capabilities |
Что умеет агент: стриминг (SSE), push-уведомления, состояние задач |
skills[] |
Конкретные навыки с описанием и входными параметрами |
securitySchemes |
Способы авторизации: OAuth2, OIDC, API-ключи, mTLS |
Когда клиентский агент получает карточку, он знает, куда слать запросы, как авторизоваться и какие задачи агент готов выполнять. Дальше начинается работа с задачами (tasks) — основным объектом протокола.
Состояния задачи
Задача в A2A проходит через понятный жизненный цикл:
-
submitted— задача принята -
working— выполняется -
input-required— агенту нужны дополнительные данные от клиента (протокол поддерживает диалог в обе стороны) -
Финальные состояния:
completed,canceled,failed,rejected
Ключевые методы протокола:
-
tasks/send— отправить задачу и дождаться результата -
tasks/get— узнать текущее состояние задачи -
message/send— обменяться сообщениями без создания задачи (например, уточняющие вопросы)
Результаты могут приходить тремя способами: синхронный ответ, стриминг через Server-Sent Events или push-уведомления на callback-URL клиента. Для длинных задач это критично: клиент не обязан держать соединение открытым часами.
Что принесла спецификация v1.0
Стабильная версия v1.0 (апрель 2026) добавила то, чего не хватало для промышленного использования:
-
Мультитенантность — один агент может обслуживать множество клиентов с изолированными задачами
-
Два транспорта: JSON-RPC 2.0 (основной, работает везде) и gRPC (для высоконагруженных систем)
-
Переговор версии через заголовок
A2A-Version— клиент и сервер договариваются о совместимой версии протокола -
Расширенная авторизация: OAuth2 с PKCE и device code flow — агент теперь может безопасно работать в браузере без секрета на клиенте
-
Пагинация в
tasks/list— история задач не раздувает ответ
⚠️ Важно для разработчиков: протокол требует, чтобы карточка агента отражала реальную поверхность безопасности. Если агент поддерживает mTLS, но в карточке указан только API-ключ — клиент может небезопасно настроить интеграцию. Подпись карточки (необязательная) защищает от подмены: без неё злоумышленник может заменить agent.json на свой и перехватить трафик.
Экосистема: кто уже подключился
За год A2A собрал вокруг себя заметную экосистему:
Организации-участники (150+): Google, Microsoft, AWS, Salesforce, SAP, ServiceNow, Workday, IBM и десятки других. Проект передан в Linux Foundation — 23 июня 2025 года на Open Source Summit Europe, что убрало привязку к одному вендору.
Официальные SDK: Python, JavaScript/TypeScript, Java, Go, .NET — все с поддержкой JSON-RPC и gRPC.
Облачные платформы:
-
Google Cloud: A2A встроен в Vertex AI Agent Builder
-
Azure: поддержка в Azure AI Foundry
-
AWS: интеграция с Amazon Bedrock AgentCore
Фреймворки агентной разработки:
| Фреймворк | Статус поддержки |
|---|---|
| Google ADK (Agent Development Kit) | Нативная, референсная реализация |
| LangGraph | SDK-интеграция |
| CrewAI | Поддержка A2A-агентов |
| LlamaIndex Agents | Поддержка |
| Semantic Kernel / Microsoft Agent Framework | 1.0 GA (3 апреля 2026) с A2A из коробки |
| AutoGen | Поддержка через MCP + A2A мосты |
💡 Практический вывод: если вы строите агентную систему на любом из перечисленных фреймворков, A2A-совместимость — это не «когда-нибудь», а уже доступная сегодня функция. Агент на LangGraph в вашей инфраструктуре может общаться с агентом на ADK у партнёра без единой строчки промежуточного кода.
Безопасность: что нужно проверить перед продакшеном
A2A — протокол для обмена задачами между системами, которые принадлежат разным организациям. Это повышает ставки по безопасности:
-
Авторизация на уровне карточки. Проверяйте
securitySchemesи не доверяйте агенту без явной схемы. mTLS — лучший вариант для B2B-интеграций. -
Подпись карточки. Без подписи
agent.jsonможно подменить (атака имперсонации). В v1.0 механизм необязательный, но в чувствительных интеграциях его отсутствие — красный флаг. -
Внедрение промптов между агентами (cross-agent prompt injection). Агент-посредник получает данные от внешнего агента и передаёт их своей модели. Если внешний агент злонамеренный (или скомпрометирован), он может внедрить инструкции в текст задачи. Протокол задаёт формат, но не защищает от семантических атак — фильтрация на вашей стороне обязательна.
-
Минимальные привилегии. Каждый A2A-агент должен получать только те токены доступа, которые нужны для его конкретных навыков, а не общий сервисный аккаунт.
A2A против MCP: таблица различий
| Критерий | A2A | MCP |
|---|---|---|
| Модель взаимодействия | Равноправные агенты (peer-to-peer) | Клиент — сервер (модель + инструменты) |
| Кто «думает» | Оба конца имеют свои LLM | Сервер — пассивный провайдер инструментов |
| Основной объект | Task с жизненным циклом | Tool call / resource |
| Авторизация | OAuth2, OIDC, mTLS, API-ключи (на уровне карточки агента) | Простая, в рамках одной системы |
| Стриминг / длинные задачи | SSE + push-уведомления, input-required | Streamable HTTP, но без диалога состояний |
| Типичный сценарий | Агент отдела продаж → агент логистики другого юрлица | ИИ-ассистент подключает Slack, GitHub, БД |
Оба протокола вышли из экосистемы Anthropic/Google, и оба переданы в Linux Foundation (MCP — в декабре 2024 года). Фактически сложился стандартный стек: MCP вниз (инструменты и данные), A2A вбок (сотрудничество агентов).
Что это значит для бизнеса
Для компаний, которые уже внедряют ИИ-агентов, A2A снимает главный барьер масштабирования: стоимость интеграции. Вместо N×(N-1)/2 мостов между N агентами — один стандарт. Конкретные выгоды:
-
Покупка компетенций вместо разработки. Агент партнёра, который умеет работать с вашей нишевой системой, подключается через карточку за день, а не за квартал
-
Внутренняя декомпозиция. Разные команды строят агентов независимо; A2A — контракт между ними
-
Открытость поставщикам. Протокол открыт и живёт в Linux Foundation: вендорлок при переходе на другую LLM или другой фреймворк минимален
⚠️ Ограничение: A2A стандартизирует обмен, но не качество ответов. Агент-партнёр может формально корректно выполнять задачи и при этом выдавать бесполезные результаты. SLA по качеству — вопрос договорённостей, а не протокола.
Выводы
A2A за год прошёл путь от анонса Google до индустриального стандарта под эгидой Linux Foundation: 150+ организаций, SDK на пять языков, интеграции в трёх облачных платформах и во всех крупных фреймворках. Протокол занимает чёткую нишу — меж-агентное сотрудничество поверх MCP — и v1.0 закрыл ключевые пробелы для продакшена: мультитенантность, gRPC, OAuth2 PKCE, пагинация.
Если вы проектируете агентную архитектуру в 2026 году, вопрос уже не «нужен ли нам A2A», а «какой транспорт выбрать — JSON-RPC или gRPC — и как настроить безопасность карточек». Экосистема созрела — время подключаться.