Протокол A2A (Agent-to-Agent)
Открытый стандарт для связи AI-агентов разных вендоров
Проблема: Вы создали AI-агента на Claude, коллега — на GPT, а компания-партнёр использует кастомного open-source агента. Они не могут общаться — каждый использует свой формат. Мульти-вендорная оркестрация агентов невозможна без универсального стандарта.
Решение: A2A — Универсальный язык для AI-агентов
A2A (Agent-to-Agent) протокол — открытый стандарт Google для коммуникации между агентами, выпущенный в апреле 2025 с 50+ партнёрами. Каждый агент публикует agent card — JSON-документ с описанием capabilities, навыков и endpoint. Клиенты обнаруживают агентов, создают задачи с определённым lifecycle (submitted → working → input-required → completed → failed) и получают результаты через Server-Sent Events стриминг или webhook push-уведомления. Протокол HTTP-based с enterprise-grade аутентификацией (OAuth2, API keys).
Представьте это как USB-C для AI-агентов — один универсальный стандарт вместо десятков проприетарных кабелей. Agent card — это паспорт (кто я, что умею, как со мной связаться), а task — заявка на работу (отправлена, в процессе, готова):
- 1. Агент публикует agent card: Каждый агент описывает свои capabilities в стандартном JSON: имя, описание, навыки, URL endpoint, требования к аутентификации
- 2. Клиент обнаруживает capabilities: Клиент загружает agent card по известному URL, читает, что агент умеет, и решает, использовать ли его
- 3. Задача создана и согласована: Клиент отправляет задачу. Агент может начать работу сразу или запросить дополнительный ввод (состояние input-required)
- 4. Результаты передаются обратно: Результаты приходят через SSE стриминг (реальное время) или webhook push-уведомления. Поддерживает артефакты (файлы, структурированные данные) наряду с текстом
Где используется A2A Protocol
- Мульти-вендорная оркестрация: Соединяйте агентов от разных провайдеров (Google, Microsoft, open-source) в единые workflow без проприетарной привязки
- Корпоративные workflow: Цепочки специализированных агентов: исследование → анализ → отчёт. Каждый агент делает свою часть, результаты передаются через стандартный A2A протокол
- Маркетплейс агентов: Стандартный интерфейс позволяет создать "магазин приложений" для AI-агентов. Обнаруживайте capabilities через agent cards, интегрируйте через стандартный протокол
- Частая ошибка: Путаница A2A и MCP. MCP соединяет LLM с инструментами (базы данных, API, файловые системы) — как USB для периферии. A2A соединяет агентов с агентами — как HTTP для веб-сервисов. Они дополняют друг друга, а не конкурируют
Интересный факт: A2A был запущен с 50+ партнёрами, включая Salesforce, SAP, MongoDB и LangChain. Протокол задуман как HTTP мира агентов — достаточно простой для реализации за полдня, но достаточно мощный для enterprise-масштабной мульти-агентной оркестрации со стримингом, аутентификацией и обменом артефактами.
Попробуйте сами!
Исследуйте визуализацию ниже, чтобы увидеть, как агенты обнаруживают друг друга, согласовывают задачи и передают результаты через A2A протокол.
Как клиент находит и выбирает агента через Agent Card
GET https://research-agent.example/.well-known/agent.jsonA2A превращает каждого агента в "микросервис с интеллектом". Как HTTP позволил веб-сервисам общаться без знания внутренней реализации друг друга, A2A позволяет агентам сотрудничать, зная только Agent Card партнёра.
Попробуй сам
Интерактивное демо этой техники
Организовать взаимодействие research-агента и analysis-агента для исследования рынка
fetch("https://research-vendor.com/api/v2/search", { body: JSON.stringify({query: "AI market"}) }) .then(res => fetch("https://analysis-co.io/api/analyze", { body: JSON.stringify({data: res}) }))
Проблема: если research-vendor меняет формат ответа (v2→v3), analysis-co ломается. Нужно переписывать парсинг каждый раз.
Шаг 1: Discovery GET https://research-agent.example/.well-known/agent.json → { "name": "ResearchAgent", "skills": ["web-search"], "endpoint": "/tasks" }
Шаг 2: Создание задачи POST https://research-agent.example/tasks { "task": { "message": "Исследуй рынок AI-агентов 2025" } } → { "taskId": "t-123", "state": "working" }
Шаг 3: Получение результата (SSE) GET https://research-agent.example/tasks/t-123/stream → event: state_change, data: { "state": "completed", "artifacts": [...] }
Шаг 4: Передача Analysis Agent GET https://analysis-agent.example/.well-known/agent.json POST https://analysis-agent.example/tasks { "task": { "message": "Проанализируй данные", "artifacts": [...] } }
Преимущество: замена любого агента — это просто смена URL. Формат стандартный.
A2A превращает кастомные API-интеграции в стандартный протокол. Вместо переписывания кода при смене вендора — просто смените URL Agent Card.
Создайте бесплатный аккаунт для решения челленджей
3 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения