
Сегодня Google выпустил свой протокол с открытым исходным кодом для агентов, изобретательно названный
Я не уверен, поэтому я решил взглянуть глубже и проверить, каково будет положение A2A в агентской вселенной. Поэтому мы рассмотрим, как A2A работает в реальной жизни, и сравним с MCP.
Использование A2A удивительно похоже на MCP. Вы можете запустить несколько агентов/серверов A2A, а затем клиент A2A может подключиться ко всем из них. Хорошей новостью является то, что обычно вам не нужно запускать агентов A2A вместе с клиентом A2A.
Я запустил все три примера агентов локально
Способ, которым сервер 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?" ] } ] }
Давайте продолжим с клиентом. Инструкции по запуску демо-приложения можно найти здесь.
После запуска веб-приложения вы можете получить к нему доступ из браузера. Клиент немного похож на Gemini AI Studio с фирменным дизайном Google Material.
URL: localhost:12000
Первым делом нам нужно добавить всех агентов в клиент, указав их базовый URL. Поскольку в моем случае я запустил всех агентов локально, их базовый URL был:
Примечание: в рамках протокола окончательный URL выглядит примерно так:
https://localhost:10002/.well-known/agent.json
Теперь вы можете видеть всех трех подключенных агентов :
Историю чата можно посмотреть здесь
Весь список событий
И весь список задач
Настройки довольно простые.
Я хочу посмотреть, может ли клиент A2A использовать несколько агентов для достижения одной цели . Поэтому я проверил, может ли он объединить агента по претензии на расходы с агентом по валютным ставкам. И это сработало.
Моей задачей было « заявить о расходах на пиво в Германии во время командировки, 5 евро, 4 апреля 2025 года ». Разговор прошел через несколько раундов, и в конечном итоге была получена нужная сумма в долларах США в форме заявления о расходах.
Мне нравится, что A2A — это чистая модель Клиент-Сервер, которая может быть запущена и размещена удаленно. Клиент не обременен указанием и запуском агентов/серверов.
Конфигурация агента довольно проста, достаточно указать базовый URL, а «Agent Card» позаботится об обмене контекстом. И вы можете добавлять и удалять агентов после того, как клиент уже запущен.
В текущем формате демонстрации немного сложно понять, как агенты общаются друг с другом и выполняют сложные задачи. Клиент вызывает каждого агента отдельно для разных задач, что очень похоже на вызов нескольких инструментов.
Теперь, когда я опробовал 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.
Я считаю, что это отличная новость для разработчиков, поскольку у них будет больше выбора в открытых и стандартных протоколах агент-агент . Только время покажет, какой из них возьмет верх, или они даже могут объединиться в единый стандарт.