AI-инжиниринг

A2A Protocol: как AI-агенты общаются друг с другом

Цели урока

  • Понять разницу между MCP и A2A: разные уровни стека, не конкуренты
  • Изучить A2A примитивы: AgentCard, Task lifecycle, Message streaming
  • Написать минимальный A2A-совместимый сервер на Node.js
  • Освоить production паттерны: топологии сетей, защита от петель, trust модель

Апрель 2025. Google публикует A2A Protocol. До этого Anthropic выпустил MCP. Оба открытые. Оба adopted индустрией. Вместе они формируют полный стек: MCP соединяет агента с инструментами, A2A соединяет агентов между собой. Первый раз в истории AI - стандартный протокол для agent networks.

  • Google A2A Protocol (апрель 2025) - открытый стандарт поддержан Salesforce, SAP, Cohere, LangChain и 50+ компаниями
  • Vertex AI Agent Builder поддерживает A2A нативно - агенты на Google Cloud автоматически совместимы
  • Anthropic Claude совместим с A2A как сервер - Claude-агент может принимать задачи от любого A2A оркестратора
  • LangChain выпустил A2A адаптер в 2025 - существующие LangChain агенты стали A2A-совместимыми

Эволюция agent protocols

**2023**: OpenAI выпускает function calling - первый стандарт для агентов. Но только в рамках одной модели. **2024**: Anthropic публикует MCP (Model Context Protocol) - стандарт для инструментов. Быстро adopted VSCode, Claude Desktop, сотнями инструментов. **Апрель 2025**: Google публикует A2A Protocol - горизонтальный стандарт для агентских сетей. За 3 месяца - поддержка 50+ компаний. Теперь агент может быть написан на Python с Anthropic, получить задачу от Java-оркестратора, использовать MCP-инструмент на Rust - и всё это через открытые стандарты.

Предварительные знания

  • MCP (Model Context Protocol): стандарт подключения AI к внешним системам
  • Multi-Agent системы: оркестрация, коммуникация, специализация агентов

MCP vs A2A: разные уровни стека

2025 год. Anthropic публикует MCP. Google публикует A2A. Многие воспринимают их как конкурентов. Это неверная рамка. MCP и A2A решают разные задачи на разных уровнях стека inter-agent коммуникации.

**MCP (Model Context Protocol)** - Anthropic, 2024. Вертикальный протокол: один агент подключает внешние инструменты. Файловая система, база данных, браузер, код-интерпретатор - всё через стандартный интерфейс. Агент - клиент. Инструменты - серверы.

**A2A (Agent-to-Agent Protocol)** - Google, апрель 2025. Горизонтальный протокол: агент A делегирует задачу агенту B. Не вызывает инструмент - нанимает специалиста. Агент B может быть реализован на другом стеке, другой LLM, в другой компании.

КритерийMCPA2A
Что соединяетАгент и инструментыАгент и агент
ОтношениеКлиент-сервер (инструмент)Peer-to-peer (коллега)
АвторAnthropicGoogle
Год20242025
Транспортstdio / HTTP SSEHTTP / WebSocket
СостояниеStatelessStateful (Tasks)
Открытый стандартДаДа (spec на GitHub)

A2A spec открыт на GitHub (google/A2A). Поддержан не только Google - к разработке подключились Salesforce, SAP, Cohere. Anthropic официально совместим: Claude-агент может быть A2A-сервером.

Главное архитектурное различие MCP и A2A:

A2A механика: Agent Cards, Tasks, Messages

A2A строится на трёх примитивах: **AgentCard** (кто я и что умею), **Task** (единица работы со статусом), **Message** (поток данных внутри задачи). Аналогия с HTTP: AgentCard - это API documentation, Task - request/response, Message - streaming chunks.

AgentCard: capability discovery

AgentCard - JSON-документ, опубликованный на `/.well-known/agent.json`. Любой агент может найти его и понять, что умеет другой агент - без предварительной договорённости.

Task: жизненный цикл

A2A использует JSON-RPC 2.0 как транспортный формат - это намеренно. JSON-RPC хорошо известен, легко отлаживается, поддерживает streaming через SSE. Не нужно изучать новый бинарный протокол.

Для чего нужен AgentCard в A2A?

Практика: A2A сервер на Node.js

Минимальный A2A-совместимый агент-сервер на Node.js. Три обязательных компонента: AgentCard endpoint, tasks/send handler, streaming через SSE.

Клиентская сторона - оркестратор, который делегирует задачи агентам через A2A:

Какой HTTP endpoint обязателен для A2A-совместимого агента?

Agent networks в production: паттерны и failure modes

Сеть агентов - это распределённая система. Всё что ломается в микросервисах - ломается и здесь, плюс новые проблемы: бесконечные петли, накапливающиеся токены, неясный trust между агентами.

ПроблемаПричинаРешение
Бесконечная петляАгент A вызывает B, B вызывает ADepth limit + цикл-детекция по session graph
Token budget взрывКаждый агент добавляет токены в контекстMax tokens per task + context compression
Trust escalationАгент B получает доступ к данным агента AExplicit capability grants, не наследование
Orphaned tasksОркестратор упал, задачи висятTimeout + dead letter queue для незавершённых tasks
Slow agentАгент занят, клиент ждёт бесконечноTask status polling + timeout + fallback агент

Trust между агентами не наследуется автоматически. Если оркестратор имеет доступ к sensitive данным - это не значит, что делегированный агент тоже должен его иметь. Принцип минимальных привилегий работает и в agent networks.

Почему Hub-and-Spoke топология предпочтительнее Mesh для начала?

A2A и MCP конкурируют - нужно выбрать один

MCP и A2A работают на разных уровнях и дополняют друг друга. Агент использует MCP для инструментов и A2A для делегирования задачам другим агентам

MCP = вертикаль (агент-инструмент). A2A = горизонталь (агент-агент). Типичная производственная система 2026 года: оркестратор получает задачу через A2A, делегирует подзадачи специализированным агентам через A2A, каждый агент использует MCP-инструменты для работы.

Agent network надёжнее одного агента - больше компонентов = больше возможностей

Каждый дополнительный агент добавляет точку отказа. Сложность растёт нелинейно. Начинать нужно с простейшей топологии

Distributed systems failures применимы к agent networks: network partition, timeout, cascading failures. Плюс новые: бесконечные петли между агентами, накопление токенов, trust escalation. Один хорошо настроенный агент часто лучше сети плохо координированных.

Итоги

  • MCP = агент-инструмент (вертикаль), A2A = агент-агент (горизонталь) - вместе полный стек
  • A2A примитивы: AgentCard (discovery на /.well-known/agent.json), Task (submitted/working/completed/failed), Message (streaming)
  • JSON-RPC 2.0 транспорт - стандартный, легко отлаживается, поддерживает SSE streaming
  • Hub-and-Spoke надёжнее Mesh для начала - нет риска циклических зависимостей
  • Обязательные guards: MAX_DEPTH, token budget, cycle detection, explicit trust model

Вопросы для размышления

  • Какие задачи в существующих системах выиграли бы от разделения на специализированных агентов - и где граница, после которой координация стоит дороже выгоды?
  • Если агент A доверяет агенту B, должен ли агент B автоматически получить доступ к тем же данным что и агент A? Почему нет?
  • Чем A2A отличается от обычного микросервисного HTTP API - и зачем нужен отдельный протокол?

Что дальше

Агенты умеют общаться. Но сколько данных реально нужно передавать - контекст или ссылки на него?

  • Long Context vs RAG — Когда весь контекст в одном запросе, а когда нужен поиск
  • MCP Protocol — Фундамент: вертикальный протокол агент-инструмент
  • Multi-Agent Systems — Паттерны координации нескольких агентов

Связанные уроки

  • aie-45-mcp-protocol
  • aie-19-multi-agent
  • aie-47-autonomous-agents
  • aie-16-tool-calling
  • aie-07-structured-output
A2A Protocol: как AI-агенты общаются друг с другом

0

1

Войти