Google A2A – Первый взгляд на протокол агент-агент

Сегодня Google выпустил свой открытый протокол агент к агенту, креативно названный A2A или Агент к Агенту. Поскольку мы уже видим много активности вокруг MCP (Протокол Контекста Модели) от Anthropic, Google утверждает, что A2A дополняет MCP. Они даже использовали эмодзи сердца, чтобы подчеркнуть это.

Я не так уж уверен, поэтому решил углубиться в тему и проверить, какое место будет занимать A2A в агентной вселенной. Мы рассмотрим, как A2A работает в реальной жизни, а также сравним его с MCP.

Тест-драйв A2A

Использование A2A удивительно похоже на MCP. Вы можете запустить несколько агентов/серверов A2A, а затем клиент A2A может подключиться ко всем ним. Хорошая новость в том, что обычно вам не нужно запускать агентов A2A вместе с клиентом A2A.

Запуск агентов A2A (серверов)

Я запустил все три примера агентов локально:

  1. Агент Google ADK, который может подавать отчеты о расходах за вас.
  2. Агент CrewAI, который может создавать изображение.
  3. Агент 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.

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

Перейти к источнику
AI Daily

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *