paint-brush
Google A2A — первый взгляд на еще один протокол «агент-агент»к@zbruceli
Новая история

Google A2A — первый взгляд на еще один протокол «агент-агент»

к Bruce Li5m2025/04/10
Read on Terminal Reader

Слишком долго; Читать

Google A2A — первый взгляд на другой протокол агент-агент и сравнение с MCP от Anthropic. Ну, они очень похожи.
featured image - Google A2A — первый взгляд на еще один протокол «агент-агент»
Bruce Li HackerNoon profile picture
0-item
1-item

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


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

Тест-драйв A2A

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

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

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


  1. Google ADK агент которые могут предоставить отчеты о расходах за вас
  2. Агент CrewAI который может узнать, сгенерировать изображение
  3. Агент LangGraph который может узнать последний курс обмена валют


Способ, которым сервер A2A дает миру знать о своих возможностях, — это «Agent Card» в формате JSON. Например, агентская карта для Google ADK выглядит так:


 { "name": "Reimbursement Agent", "description": "This agent handles the reimbursement process for the employees given the amount and purpose of the reimbursement.", "url": "http://localhost:10002/", "version": "1.0.0", "capabilities": { "streaming": true, "pushNotifications": false, "stateTransitionHistory": false }, "defaultInputModes": [ "text", "text/plain" ], "defaultOutputModes": [ "text", "text/plain" ], "skills": [ { "id": "process_reimbursement", "name": "Process Reimbursement Tool", "description": "Helps with the reimbursement process for users given the amount and purpose of the reimbursement.", "tags": [ "reimbursement" ], "examples": [ "Can you reimburse me $20 for my lunch with the clients?" ] } ] }


Запустить демо-приложение A2A Client

Давайте продолжим с клиентом. Инструкции по запуску демо-приложения можно найти здесь. https://github.com/google/A2A/tree/main/demo


После запуска веб-приложения вы можете получить к нему доступ из браузера. Клиент немного похож на Gemini AI Studio с фирменным дизайном Google Material.


URL: localhost:12000


Первым делом нам нужно добавить всех агентов в клиент, указав их базовый URL. Поскольку в моем случае я запустил всех агентов локально, их базовый URL был:


  • Google ADK
    • локальный хост:10002
  • crewAI
    • локальный хост:10001
  • ЛангГраф
    • Локальный хост:10000


Примечание: в рамках протокола окончательный URL выглядит примерно так:

https://localhost:10002/.well-known/agent.json


Теперь вы можете видеть всех трех подключенных агентов :

Агенты A2A


Историю чата можно посмотреть здесь

Чаты A2A


Весь список событий

Список событий A2A


И весь список задач

Список задач A2A


Настройки довольно простые.

Настройки А2А

Тестовый агент Google ADK для претензии о расходах

Google ADK Agent - заявка на возмещение расходов

Тест LangGraph для курса форекс

LangGraph Agent - курс форекс


Тестовый агент CrewAI для генерации изображений

CrewAI Agent — генерация изображений

Комбинированный тест для нескольких агентов

Я хочу посмотреть, может ли клиент A2A использовать несколько агентов для достижения одной цели . Поэтому я проверил, может ли он объединить агента по претензии на расходы с агентом по валютным ставкам. И это сработало.


Моей задачей было « заявить о расходах на пиво в Германии во время командировки, 5 евро, 4 апреля 2025 года ». Разговор прошел через несколько раундов, и в конечном итоге была получена нужная сумма в долларах США в форме заявления о расходах.



Первоначальные наблюдения A2A

Мне нравится, что A2A — это чистая модель Клиент-Сервер, которая может быть запущена и размещена удаленно. Клиент не обременен указанием и запуском агентов/серверов.


Конфигурация агента довольно проста, достаточно указать базовый URL, а «Agent Card» позаботится об обмене контекстом. И вы можете добавлять и удалять агентов после того, как клиент уже запущен.


В текущем формате демонстрации немного сложно понять, как агенты общаются друг с другом и выполняют сложные задачи. Клиент вызывает каждого агента отдельно для разных задач, что очень похоже на вызов нескольких инструментов.

Сравните A2A с MCP

Теперь, когда я опробовал A2A, пришло время сравнить его с MCP, о котором я писал ранее в Эта статья .


Хотя и A2A, и MCP нацелены на улучшение разработки систем агентов ИИ, в теории они решают разные задачи. A2A работает на уровне агент-агент, уделяя особое внимание взаимодействию между независимыми сущностями, тогда как MCP работает на уровне LLM, уделяя особое внимание обогащению контекста и возможностей отдельных языковых моделей.


И вот краткое описание их основных сходств и различий согласно их протокольной документации:

Особенность

А2А

МКП

Основной вариант использования

Коммуникация и сотрудничество между агентами

Предоставление контекста и инструментов (внешний 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, мой первый тест показал, что они в подавляющем большинстве совпадают по назначению и функциям . Они оба удовлетворяют потребности разработчиков приложений ИИ в использовании нескольких агентов и инструментов для достижения сложных целей. На данный момент им обоим не хватает хорошего механизма для регистрации и обнаружения других агентов и инструментов без ручной настройки.


MCP стартовал рано и уже получил огромную поддержку как со стороны сообщества разработчиков, так и со стороны крупных предприятий. A2A очень молод, но уже может похвастаться сильной первоначальной поддержкой со стороны многих корпоративных клиентов Google Cloud.


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