Сегодня Google выпустил свой открытый протокол агент к агенту, креативно названный A2A или Агент к Агенту. Поскольку мы уже видим много активности вокруг MCP (Протокол Контекста Модели) от Anthropic, Google утверждает, что A2A дополняет MCP. Они даже использовали эмодзи сердца, чтобы подчеркнуть это.
Я не так уж уверен, поэтому решил углубиться в тему и проверить, какое место будет занимать A2A в агентной вселенной. Мы рассмотрим, как A2A работает в реальной жизни, а также сравним его с MCP.
Тест-драйв A2A
Использование A2A удивительно похоже на MCP. Вы можете запустить несколько агентов/серверов A2A, а затем клиент A2A может подключиться ко всем ним. Хорошая новость в том, что обычно вам не нужно запускать агентов A2A вместе с клиентом A2A.
Запуск агентов A2A (серверов)
Я запустил все три примера агентов локально:
- Агент Google ADK, который может подавать отчеты о расходах за вас.
- Агент CrewAI, который может создавать изображение.
- Агент LangGraph, который может находить последний курс обмена валют.
Способ, которым сервер A2A сообщает миру о своих возможностях, – это «Карта Агента» в формате JSON. Например, карта агента для Google ADK выглядит так:
Запуск демонстрационного приложения клиента A2A
Давайте продолжим с клиентом. Инструкции по запуску демонстрационного веб-приложения можно найти здесь.
После запуска веб-приложения вы можете получить к нему доступ через ваш браузер. Клиент выглядит немного как AI Studio Gemini с характерным дизайном Google Material.
URL: localhost:12000
Прежде всего, нам нужно добавить всех агентов в клиент, указав их базовый URL. Поскольку в моем случае я запустил всех агентов локально, их базовые URL были следующими:
- Google ADK
- localhost:10002
- CrewAI
- localhost:10001
- LangGraph
- localhost:10000
Замечание: в рамках протокола конечный URL выглядит немного так:
https://localhost:10002/.well-known/agent.json
Теперь вы можете видеть всех трех агентов, которые подключены:
Вы можете увидеть историю чата здесь
И все события
И весь список задач
Настройки довольно базовые
Тест агент LangGraph на курсе обмена валют
Тест агента CrewAI на создание изображений
Комбинированный тест для нескольких агентов
Я хочу проверить, может ли клиент A2A использовать несколько агентов для достижения одной цели. Поэтому я протестировал, может ли он объединить агента по подаче заявки на возмещение расходов с агентом по курсу обмена. И это сработало.
Моя задача заключалась в том, чтобы «подать заявку на возмещение расходов за пиво в Германии во время командировки, 5 евро, 4 апреля 2025 года». Разговор прошел через несколько раундов, и в итоге была получена правильная сумма в долларах США в форме заявки на возмещение.
Первоначальные наблюдения A2A
Мне нравится, что A2A – это чистая модель клиент-сервер, которую можно запускать и размещать удаленно. Клиент не обременен необходимостью задавать и запускать агентов/серверы.
Конфигурация агента довольно проста, необходимо только указать базовый URL, а «Карта Агента» отвечает за обмен контекстом. Вы можете добавлять и удалять агентов, уже после запуска клиента.
В текущем формате демонстрации немного сложно понять, как агенты общаются друг с другом и выполняют сложные задачи. Клиент вызывает каждого агента отдельно для разных задач, что очень похоже на вызов нескольких инструментов.
Сравнение A2A с MCP
Теперь, когда я опробовал A2A, пришло время сравнить его с MCP, о котором я писал ранее в этой статье.
Хотя и A2A, и MCP стремятся улучшить разработку систем AI-агентов, в теории они решают различные задачи. A2A работает на уровне агент-агент, сосредоточив внимание на взаимодействии между независимыми сущностями, тогда как MCP работает на уровне LLM, сосредоточив внимание на обогащении контекста и возможностей отдельных языковых моделей.
Чтобы дать представление о их основных сходствах и различиях в соответствии с документацией протокола:
Особенности |
A2A |
MCP |
---|---|---|
Основной случай использования |
Коммуникация и сотрудничество между агентами |
Обеспечение контекста и инструментов (внешний API/SDK) для LLM |
Основная архитектура |
Клиент-сервер (агент-агент) |
Клиент-хост-сервер (приложение-LLM-внешний ресурс) |
Стандартный интерфейс |
Спецификация JSON, Карта Агента, Задачи, Сообщения, Артефакты |
JSON-RPC 2.0, Ресурсы, Инструменты, Память, Запросы |
Ключевые особенности |
Мультимодальный, динамический, безопасный, управление задачами, обнаружение возможностей |
Модульность, границы безопасности, повторное использование соединителей, SDK, обнаружение инструментов |
Протокол коммуникации |
HTTP, JSON-RPC, SSE |
JSON-RPC 2.0 по stdio, HTTP с SSE (или потоковый HTTP) |
Фокус на производительности |
Асинхронная коммуникация для обработки нагрузки |
Эффективное управление контекстом, параллельная обработка, кэширование для высокой пропускной способности |
Адаптация и сообщество |
Хорошая первоначальная поддержка отрасли, зарождающаяся экосистема |
Существенная адаптация в целой отрасли, быстро растущее сообщество |
Заключение
Несмотря на то, что Google сделал заявление о том, что A2A является дополняющим протоколом к MCP, мой первый тест показывает, что они в значительной степени совпадают по целям и функциям. Оба протокола удовлетворяют потребности разработчиков AI-приложений в использовании нескольких агентов и инструментов для достижения сложных целей. В настоящее время им обоим не хватает хорошего механизма для регистрации и обнаружения других агентов и инструментов без ручной настройки.
MCP имеет ранний старт и уже получил огромную поддержку как от сообщества разработчиков, так и от крупных предприятий. A2A еще очень молод, но уже находит сильную первоначальную поддержку у многих клиентов Google Cloud.
Я считаю, что это отличная новость для разработчиков, так как теперь у них будет больше выбора в открытых и стандартных протоколах агент-агент. Время покажет, какой из них окажется доминирующим, или же они могут объединиться в один стандарт.