A2A против MCP: действительно ли AI-агентам нужны оба протокола?
MCP предоставляет агентам инструменты. A2A обеспечивает взаимодействие между агентами-равными.
Архитектура AI-агентов начинает разделяться на два слоя.
Один слой посвящен предоставлению AI-ассистенту доступа к инструментам, данным, API, файлам, базам данных, системам поиска, календарям, системам тикетов и другим внешним возможностям — именно здесь вписывается MCP.
Другой слой посвящен тому, чтобы один AI-агент мог обнаруживать, общаться, делегировать задачи и сотрудничать с другим AI-агентом, возможно, созданным другой командой, фреймворком, вендором или организацией — именно здесь вписывается A2A.
Раздраительная часть заключается в том, что оба протокола часто обсуждаются так, будто они решают одну и ту же проблему, хотя это не так. На периферии есть наложение, и именно из этого наложения проистекает большая часть путаницы. Но чистая ментальная модель проста:
MCP — это в основном взаимодействие «агент-инструмент», а A2A — в основном взаимодействие «агент-агент».

Это не означает, что каждой AI-системе нужны оба протокола. На самом деле, большинство небольших проектов с агентами, вероятно, должны начинать с MCP и игнорировать A2A до тех пор, пока у них не появится реальная граница между мультиагентными системами. Но если вы создаете более крупные системы агентов, особенно системы с отдельно развернутыми агентами, специализированными агентами, агентами от вендоров или долгосрочными делегированными задачами, A2A начинает иметь смысл.
В этой статье объясняется разница, наложение, архитектурные компромиссы и когда вам действительно нужны оба протокола.
Что такое MCP?
MCP расшифровывается как Model Context Protocol (Протокол контекста модели).
Это открытый протокол для подключения AI-приложений и агентов к внешним инструментам, ресурсам и промптам. В практическом смысле MCP позволяет AI-хосту, такому как настольный ассистент, IDE, кодовый агент или приложение для чата, подключаться к одному или нескольким серверам MCP.
Сервер MCP может предоставлять следующие возможности:
- Инструменты: вызываемые функции, которые может использовать модель
- Ресурсы: читаемый контекст, такой как файлы, данные API, документы или записи базы данных
- Промпты: многоразовые шаблоны промптов или рабочие процессы
Официальная архитектура MCP основана на модели хоста, клиента и сервера.
Хост MCP — это приложение, с которым взаимодействует пользователь. Клиент MCP — это компонент протокола, который поддерживает соединение с конкретным сервером MCP. Сервер MCP предоставляет возможности клиенту.
Например, кодовый ассистент может подключаться к:
- Серверу MCP файловой системы
- Серверу MCP GitHub
- Серверу MCP базы данных
- Серверу MCP Sentry
- Серверу MCP Slack
С точки зрения пользователя, ассистент становится более полезным. С точки зрения архитектуры системы, ассистент получил контролируемый доступ к внешнему контексту и действиям.
В этом заключается основная ценность MCP: он стандартизирует то, как AI-приложение достигает инструментов и контекста.
MCP лучше всего понимать как интеграцию инструментов
MCP — это не только об инструментах, но инструменты — это самый простой способ понять его.
Без MCP каждому AI-приложению нужен собственный код интеграции для каждой внешней системы. Один фреймворк агентов имеет свой собственный формат плагинов. Другой имеет свою собственную схему инструментов. У третьего — другой паттерн обертки API. Каждая интеграция создается заново снова и снова.
MCP пытается уменьшить эти потери.
Если поставщик инструмента предоставляет сервер MCP, многие совместимые с MCP клиенты могут им пользоваться. Если разработчик создает сервер MCP для внутренней системы, к ней могут подключаться несколько AI-приложений. Практические руководства по реализации серверов MCP на Go и серверов MCP на Python показывают, насколько простым может быть слой интеграции, когда протокол берет на себя основную работу.
Вот почему MCP стал важным так быстро. Он решает скучную, но болезненную проблему интеграции.
А скучные проблемы интеграции — это обычно то, откуда появляются устойчивые стандарты, — те, которые выживают именно потому, что они сокращают повторяющуюся работу, которую всем приходится делать в любом случае.
Что такое A2A?
A2A расшифровывается как Agent2Agent Protocol (Протокол Агент-Агент).
Это открытый стандарт для коммуникации и взаимодействия между независимыми системами AI-агентов. Для более глубокого взгляда на отдельные строительные блоки — Карточки агентов (Agent Cards), жизненный цикл задач, сообщения, части и артефакты — статья [Что такое протокол A2A? Объяснение Карточек агентов и задач](https://www.glukhov.org/ru/ai-systems/architecture/a2a-protocol-explained/ “Практическое руководство по протоколу A2A для AI-агентов, объясняющее Карточки агентов, задачи, сообщения, части, артефакты, обнаружение и архитектурные компромиссы.”}) подробно раскрывает каждую концепцию. Официальная спецификация A2A описывает протокол как способ для агентов, созданных с использованием различных фреймворков, языков или вендоров, общаться через общую модель взаимодействия.
Ключевая фраза — независимые системы агентов.
A2A не является в первую очередь средством предоставления одному ассистенту доступа к калькулятору, базе данных или файловой системе. Речь идет о том, чтобы один агент общался с другим агентом, который имеет свои собственные возможности, состояние, политику, модель задач и, возможно, свои собственные инструменты в фоновом режиме.
Агент A2A может рекламировать свои возможности через Карточку агента. Другой агент или клиент может обнаружить эту способность, отправить задачу, обменяться сообщениями, получить артефакты и отследить жизненный цикл задачи.
A2A вводит такие концепции, как:
- Карточки агентов
- Агенты и клиенты
- Задачи
- Сообщения
- Части
- Артефакты
- Состояния задач
- Потоковая передача и асинхронная работа
В совокупности эти концепции заставляют A2A казаться больше протоколом сотрудничества агентов, чем простым протоколом вызова инструментов — он спроектирован вокруг идеи, что агенты имеют идентичность, состояние и ongoing-отношения с другими агентами.
A2A лучше всего понимать как сотрудничество агентов
Представьте, что пользователь спрашивает корпоративного ассистента:
«Подготовьте краткую справку о выходе на рынок Японии, включая юридические аспекты, риски ценообразования и план проекта запуска».
Простой ассистент мог бы попытаться сделать все сам. Но более крупная система агентов могла бы делегировать части работы:
- Агент исследований собирает рыночную информацию
- Юридический агент проверяет регуляторные аспекты
- Финансовый агент оценивает риски ценообразования
- Агент планирования проектов создает план доставки
- Агент написания собирает окончательную справку
Если эти агенты являются внутренними функциями внутри одной кодовой базы, вам, возможно, не нужен A2A. Вы можете просто вызывать функции или сервисы напрямую.
Но если эти агенты являются независимыми системами, возможно, принадлежащими разным командам или вендорам, тогда стандартный протокол взаимодействия «агент-агент» становится полезным.
В этом и заключается использование A2A.
A2A против MCP: Простое различие
Самое простое сравнение таково:
| Вопрос | MCP | A2A |
|---|---|---|
| Основное отношение | Агент к инструменту | Агент к агенту |
| Основная цель | Подключение AI-приложений к инструментам, данным и промптам | Позволить независимым агентам общаться и сотрудничать |
| Типичная единица работы | Вызов инструмента или чтение ресурса | Задача, сообщение, артефакт, делегирование |
| Лучшее применение | Интеграция инструментов | Взаимодействие мультиагентных систем |
| Пример | Агент вызывает инструмент базы данных | Агент исследований делегирует агенту юриспруденции |
| Область | Доступ к контексту и возможностям | Координация агентов и обмен задачами |
Эта таблица не идеальна, но она полезна для построения первоначальной ментальной модели. Кратко говоря, MCP отвечает на вопрос «Как это AI-приложение получает доступ к внешним возможностям?», в то время как A2A отвечает на вопрос «Как этот агент работает с другим агентом?».
Это различие важно, потому что интеграция инструментов и сотрудничество агентов имеют разные режимы отказа. Плохой вызов инструмента может вернуть неверные данные или изменить неверный файл, но плохое делегирование агенту может создать нечеткую цепочку ответственности, утечку конфиденциального контекста, зацикливание между агентами, дублирование работы или создание артефакта, который никто не может проверить. A2A находится на один уровень выше в архитектуре, и его режимы отказа несут соответствующие более высокие последствия.
Почему разработчики путают A2A и MCP
Путаница понятна.
Многие серверы MCP — не просто глупые инструменты. Некоторые серверы MCP могут выполнять многоступенчатую работу. Некоторые предоставляют высокоуровневые возможности, которые выглядят как агентные. Сервер MCP мог бы обернуть сервис планирования, систему поиска или даже другой рабочий процесс, управляемый LLM.
В этот момент граница становится размытой.
Если инструмент MCP с названием research_topic выполняет сложный исследовательский рабочий процесс, это инструмент или агент?
Честный ответ: архитектурно, это зависит от обстоятельств.
Если хост рассматривает его как вызываемую возможность со схемой инструмента, он функционирует как инструмент.
Если у него есть своя собственная идентичность, возможности, жизненный цикл задач, сообщения, артефакты и поведение делегирования, он начинает выглядеть как агент.
Вот почему «A2A против MCP» — это неправильная постановка вопроса, когда он превращается в религиозную дискуссию. Лучшая постановка вопроса:
- Лучше ли моделировать эту внешнюю возможность как инструмент?
- Или лучше ли моделировать ее как независимого агента?
Это решение должно определять выбор протокола.
Аргумент в пользу только MCP
Большинство AI-проектов должны начинать только с MCP — это немного субъективная позиция, но практичная.
Если вы создаете кодового ассистента, внутренний чат-бот, локальный AI-рабочий процесс, персонального агента автоматизации или простого корпоративного ассистента, первая проблема обычно не в сотрудничестве «агент-агент». Первая проблема — доступ к инструментам.
Вам нужно, чтобы ассистент читал файлы, запрашивал базы данных, искал документы, вызывал API, открывал тикеты, сводил логи, проверял метрики или обновлял записи.
MCP подходит для этого очень хорошо.
Используйте только MCP, когда:
- Вашему агенту в основном нужен доступ к инструментам и данным
- Вы контролируете приложение-хост
- Вы контролируете большинство интеграций
- Внешние системы не являются действительно автономными агентами
- Рабочий процесс в основном синхронный или кратковременный
- Обычного вызова инструмента достаточно
- Вам не нужно обнаружение агентов
- Вам не нужно состояние задач между агентами
- Вам не нужны артефакты от независимых агентов
Для многих систем MCP плюс хорошая архитектура приложения достаточно. Многие команды будут переусложнять A2A в системах, которые на самом деле являются просто ассистентами, использующими инструменты, и это не проблема протокола — это проблема архитектурной дисциплины, которую ни один протокол не может исправить за вас.
Аргумент в пользу только A2A
Системы только с A2A встречаются реже, но они могут существовать.
Вы можете использовать A2A без MCP, когда система в основном о коммуникации между агентами, и каждый агент уже управляет своими собственными инструментами внутренне.
Например:
- Маркетплейс специализированных агентов
- Интеграция агентов от вендора к вендору
- Межорганизационный рабочий процесс
- Мультиагентная система, где у каждого агента есть своя собственная частная цепочка инструментов
- Сеть делегирования, где клиенты не должны знать деталей внутренних инструментов
В этой модели A2A является публичной границей между независимо управляемыми агентами. Агенту A не нужно знать, использует ли Агент B PostgreSQL, Elasticsearch, MCP, LangChain, пользовательские API или скрипты оболочки в фоновом режиме. Агенту A нужно только знать, что может делать Агент B, как отправить ему задачу и как получить результаты.
Это чистая абстракция.
Используйте только A2A, когда:
- Вы предоставляете агенты как независимые сервисы
- Вызывающая сторона не должна знать внутренние инструменты агента
- Имеет значение обнаружение возможностей агента
- Делегирование важнее прямого доступа к инструментам
- Задачи могут быть долгосрочными
- Результаты могут включать артефакты
- Агенты могут быть созданы разными вендорами или командами
A2A наиболее силен на границах системы, где независимо принадлежащие агенты должны обмениваться задачами и артефактами, не раскрывая свои внутренние цепочки инструментов. Это не протокол, который нужно внедрять в каждый слой каждого рантайма агента.
Аргумент в пользу использования обоих A2A и MCP
Самая интересная архитектура — это не A2A против MCP. Это A2A плюс MCP.
В этом паттерне агент предоставляет интерфейс A2A другим агентам, но внутренне использует MCP для доступа к инструментам.
Это дает вам два чистых слоя:
- A2A снаружи: как агенты общаются друг с другом
- MCP внутри: как каждый агент получает доступ к инструментам, данным и сервисам
Это, вероятно, самая устойчивая ментальная модель.
Агент поддержки клиентов может предоставить интерфейс A2A. Другие агенты могут делегировать ему задачи, связанные с поддержкой. Внутренне агент поддержки использует серверы MCP для Zendesk, Slack, поиска по документации, поиска в CRM и извлечения внутренней политики.
Агент DevOps может предоставить интерфейс A2A. Другие агенты могут попросить его расследовать инцидент. Внутренне он использует серверы MCP для Prometheus, Grafana, GitHub, Kubernetes, логов и облачных API.
Финансовый агент может предоставить интерфейс A2A. Другие агенты могут запросить анализ бюджета. Внутренне он использует серверы MCP для электронных таблиц, бухгалтерских систем, баз данных счетов-фактур и моделей прогнозирования.
Этот паттерн сохраняет чистые границы между агентами. Другим агентам не нужен прямой доступ к каждому инструменту — они общаются со специализированным агентом, который внутренне решает, какие инструменты необходимы для выполнения задачи.
Так же работают и реальные организации. Вы не даете каждому прямой доступ к производственной базе данных. Вы обращаетесь к команде или сервису, ответственному за эту область.
Референсная архитектура: A2A снаружи, MCP внутри
Практическая мультиагентная архитектура может выглядеть так:
Пользователь
|
v
Первичный ассистент или оркестратор
|
|-- A2A --> Агент исследований
| |
| |-- MCP --> Веб-поиск
| |-- MCP --> Хранилище документов
|
|-- A2A --> Агент кодирования
| |
| |-- MCP --> GitHub
| |-- MCP --> Файловая система
| |-- MCP --> Система CI
|
|-- A2A --> Агент DevOps
|
|-- MCP --> Метрики
|-- MCP --> Логи
|-- MCP --> Kubernetes
В этом дизайне A2A обрабатывает делегирование между агентами, в то время как MCP обрабатывает интеграцию между каждым агентом и его инструментами. Оркестратору не нужно знать каждый инструмент, доступный каждому специалисту — ему нужно только знать, какой агент отвечает за какой тип работы, что снижает перегрузку инструментами и сохраняет общую архитектуру более модульной. Внутренняя топология этого слоя оркестратора — использует ли он звезду, иерархическое дерево, веер или месс — является отдельным решением дизайна, которое подробно рассматривается в Паттернах оркестрации мультиагентных систем. Для более глубокого рассмотрения того, как вывод, память, маршрутизация и инструменты сочетаются внутри продакшн-ассистента, статья [Архитектура AI-ассистента: LLM, Память, Инструменты, Маршрутизация, Наблюдаемость](https://www.glukhov.org/ru/ai-systems/architecture/ai-assistant-architecture/ “Глубокое техническое руководство по архитектуре AI-ассистентов: LLM, память, инструменты, маршрутизация и наблюдаемость, с реальными компромиссами, режимами отказа и паттернами дизайна.”}) подробно рассматривает эти слои.
Когда A2A — это излишество
A2A — это излишество, когда «другой агент» на самом деле является просто функцией.
Если ваше приложение имеет один рабочий процесс LLM, который вызывает несколько инструментов, не добавляйте A2A только потому, что это звучит современно. Функции Python, конечной точки HTTP, очереди или инструмента MCP может быть достаточно.
A2A может быть слишком много, когда:
- Есть только один агент
- Все компоненты находятся в одной кодовой базе
- Рабочий процесс короткий и синхронный
- Вам не нужно обнаружение
- Вам не нужно независимое состояние задач
- Вам не нужна отдельная идентичность агента
- Вы не ожидаете сторонних агентов
- Вам не нужна интероперабельность между вендорами или фреймворками
Протоколы не бесплатны — они добавляют концепции, инфраструктуру, поверхность для отладки, проблемы безопасности и операционные затраты. Скучный API или простой вызов функции иногда является лучшим инженерным выбором, и обращение к A2A по привычке, а не по необходимости, — это своего рода переусложнение. Выбор более простого варианта не является анти-A2A; это про-архитектура.
Когда MCP недостаточно
MCP начинает казаться недостаточным, когда вы используете его для представления вещей, которые явно являются агентами.
Например, предположим, что сервер MCP предоставляет инструмент с названием:
complete_enterprise_procurement_review
Этот инструмент делает следующее:
- Читает данные поставщиков
- Проверяет правила политики
- Задающие уточняющие вопросы
- Делегирует юридический обзор
- Создает отчет об рисках
- Возвращает несколько артефактов
- Работает 20 минут
- Поддерживает состояние задачи
- Требует истории аудита
В какой-то момент называть это «инструментом» становится неловко, потому что возможность больше не является простой вызываемой функцией — это специалист, владеющий рабочим процессом, со своим собственным состоянием, делегированием и требованиями к аудиту. Именно здесь A2A становится более подходящим, чем растягивание абстракции инструмента за его естественную границу.
MCP может предоставлять мощные инструменты, но он не magically решает проблемы идентичности агента, сотрудничества между равными, владения задачами, семантики делегирования или многоагентных следов аудита.
Если это ваши реальные проблемы, вы находитесь в территории A2A.
Безопасность: Часть, которую все недооценивают
Модель безопасности — это то место, где A2A и MCP становятся серьезными.
MCP дает агентам доступ к инструментам и данным. Это означает, что AI-система может читать файлы, запрашивать базы данных, вызывать API, отправлять сообщения, обновлять тикеты или запускать инфраструктурные действия.
A2A позволяет агентам делегировать работу другим агентам. Это означает, что один агент может передавать контекст, запрашивать действия и получать артефакты от другого агента.
Оба мощны. Оба могут быть опасны.
Основные вопросы безопасности различны:
Для MCP:
- Какие инструменты может использовать этот агент?
- Какие данные он может читать?
- Какие действия он может выполнять?
- Пользователь одобряет действие?
- Может ли метаданные инструмента манипулировать моделью?
- Локальные и удаленные серверы доверяются?
Для A2A:
- Какие агентам разрешено общаться друг с другом?
- Какая идентичность у каждого агента?
- Может ли Агент A делегировать полномочия Агенту B?
- Сколько контекста может быть общим?
- Кто несет ответственность за конечный результат?
- Можно ли аудировать цепочку задач?
Вот почему стратегия «просто подключите все» плохая. Чем больше протоколов вы добавляете, тем больше вам нужно политики, идентичности, логов, потоков одобрения и разрешений наименьших привилегий, чтобы система была безопасной и подконтрольной.
Хорошая продакшн-архитектура должна включать:
- Идентичность агента
- Идентичность инструмента
- Идентичность пользователя
- Ограниченные разрешения
- Шлюзы одобрения для рискованных действий
- Логи аудита на уровне задач
- Логи вызовов инструментов
- Логи делегирования
- Происхождение артефактов
- Лимиты скорости
- Политики тайм-аутов
- Контроли выхода
Если вы создаете с обоими A2A и MCP, безопасность не является надстройкой. Это часть архитектуры. Статья [Безопасность агентов A2A и MCP: Идентичность, Делегирование и Следы Аудита](https://www.glukhov.org/ru/llm-architecture/guardrails/a2a-mcp-agent-security/ “Обеспечьте безопасность систем агентов A2A и MCP с помощью идентичности, аутентификации, контроля делегирования, шлюзов, реестров, следов аудита и контрольного списка для продакшн-развертываний мультиагентов.” подробно разбирает полную модель угроз, слои идентичности, паттерн шлюза и контроли делегирования.
Наблюдаемость: Вам нужны трассы, а не просто логи
Мультиагентные системы трудно отлаживать.
Пользователь задает один вопрос. Оркестратор вызывает два агента. Один агент вызывает три инструмента. Другой агент потоково передает частичный прогресс. Третий агент терпит неудачу и повторяет попытку. Конечный ответ выглядит разумно, но никто не знает, какой источник данных на него повлиял.
Это неприемлемо в продакшене.
Для систем с упором на MCP вам нужно наблюдать:
- Выбор инструмента
- Аргументы инструмента
- Результаты инструмента
- Латентность инструмента
- Ошибки инструмента
- Одобрения пользователя
- Контекст, внедренный в модель
Для систем с упором на A2A вам нужно наблюдать:
- Обнаружение агентов
- Создание задач
- Изменения состояния задач
- Сообщения от агента к агенту
- Созданные артефакты
- Цепочки делегирования
- Неудачи и повторные попытки
- Происхождение конечного ответа
Чем более агентной становится система, тем важнее становится отслеживаемость — обычных логов приложения недостаточно, когда работа охватывает несколько агентов, вызовов инструментов и передачи артефактов. Вам нужна трасса задачи, которая следует за полным путем выполнения, чтобы любой ответ можно было проследить до его источника. Статья [Наблюдаемость для LLM-систем: Метрики, Трассы, Логи и Тестирование в Продакшене](https://www.glukhov.org/ru/observability/observability-for-llm-systems/ “Глубокое, ориентированное на продакшн руководство по наблюдаемости для LLM-систем, охватывающее метрики LLM, распределенное трассирование, логи, профилирование, синтетическое тестирование, SLO и сравнение инструментов наблюдаемости LLM.” подробно рассматривает инструментарий и инструментацию. Когда агенты потоково передают прогресс или приостанавливаются в input_required в долгосрочных задачах A2A, статья [Потоковая передача и Асинхронные Задачи A2A для Долгосрочных Рабочих Процессов Агентов](https://www.glukhov.org/ru/ai-systems/architecture/a2a-streaming-async-task-lifecycle/ “Как проектировать потоковую передачу протокола A2A, асинхронные задачи, push-уведомления и долгосрочные рабочие процессы агентов с SSE, опросом, состояниями HITL и продакшн-наблюдаемостью.” описывает, что нужно логировать на каждом переходе состояния и шаге делегирования.
Фреймворк Решений: Нужны ли вам A2A, MCP, Оба или Ни одного?
Используйте этот фреймворк решений.
Используйте ни одного, когда простого кода достаточно
Выбирайте обычные функции, API или очереди, когда:
- Вы контролируете все компоненты
- Нет необходимости в нативном для LLM обнаружении инструментов
- Нет необходимости в интероперабельности агентов
- Система детерминирована
- Интеграция стабильна и проста
Не каждой интеграции нужен AI-протокол.
Используйте MCP, когда агенту нужны инструменты
Выбирайте MCP, когда:
- AI-приложению нужны внешние данные
- Агенту нужно вызывать инструменты
- Вы хотите многоразовые интеграции
- Вы хотите обнаружение инструментов
- Вы хотите стандартную интеграцию клиент-сервер
- Вы создаете кодовых агентов, ассистентов, IDE или внутренние инструменты
Это точка старта по умолчанию для большинства создателей.
Используйте A2A, когда агентам нужны равные
Выбирайте A2A, когда:
- Агенты развернуты независимо
- Агентам нужно обнаруживать друг друга
- Агенты созданы разными командами или вендорами
- Задачи долгосрочные
- Делегирование имеет значение
- Артефакты имеют значение
- Вам нужна граница агента, а не просто граница инструмента
Это правильный выбор, когда единицей архитектуры является агент.
Используйте оба, когда специализированным агентам нужны инструменты
Выбирайте оба, когда:
- Агенты сотрудничают друг с другом
- Каждому агенту также нужен доступ к инструментам
- Вы хотите чистые границы между делегированием и выполнением
- Вы хотите специализированных агентов с частными внутренними цепочками инструментов
- Вы хотите масштабируемую мультиагентную архитектуру
Это самый реалистичный корпоративный паттерн.
Общие Анти-Паттерны
Анти-Паттерн 1: Превращение Каждого Инструмента в Агента
Не каждая функция заслуживает обертки агента.
API конвертации валюты, вероятно, является инструментом. Запрос базы данных, вероятно, является инструментом. Читатель файлов, вероятно, является инструментом.
Обертывание каждой маленькой возможности как агента A2A создает ненужную сложность.
Анти-Паттерн 2: Скрытие Целого Агента За Одним Инструментом MCP
Противоположная ошибка также распространена.
Если инструмент MCP тайно запускает долгосрочный, состоятельный, мультиагентный рабочий процесс, абстракция MCP может стать слишком тонкой. Вы теряете видимость состояния задачи, делегирования, артефактов и ответственности.
В этот момент это может заслуживать границы A2A.
Анти-Паттерн 3: Разрешение Каждому Агенту Вызывать Каждый Инструмент
Это создает хаос разрешений.
Специализированные агенты должны иметь ограниченные инструменты. Агент написания, вероятно, не нуждается в доступе к производственной базе данных. Агент исследований, вероятно, не нуждается в разрешении на развертывание инфраструктуры.
Используйте наименьшие привилегии.
Анти-Паттерн 4: Нет Человеческого Одобрения для Рискованных Действий
Агентные системы не должны молча выполнять действия с высоким воздействием.
Человеческое одобрение должно требоваться для действий, таких как:
- Отправка внешних электронных писем
- Модификация производственных данных
- Развертывание инфраструктуры
- Удаление файлов
- Изменение разрешений
- Покупка услуг
- Общий доступ к конфиденциальным данным
Протоколы облегчают интеграцию. Они не снимают ответственность.
Практические Примеры
Пример 1: Локальный Кодовый Ассистент
Локальный кодовый ассистент использует MCP для доступа к:
- Файловой системе
- Репозиторию Git
- Запускателю тестов
- Менеджеру пакетов
- Поиску документации
Ему, вероятно, не нужен A2A.
MCP достаточно.
Пример 2: Корпоративный Ассистент Поддержки
Ассистент поддержки использует MCP для доступа к:
- CRM
- Системе тикетов
- Документации
- Slack
- Базе данных клиентов
Сначала MCP достаточно.
Позже компания добавляет специализированных агентов:
- Агент биллинга
- Агент юридической политики
- Агент устранения неполадок продукта
- Агент эскалации
Теперь A2A начинает иметь смысл, потому что ассистенту поддержки нужно делегировать работу другим агентам.
Используйте оба.
Пример 3: Маркетплейс Агентов
Платформа позволяет сторонним агентам рекламировать возможности и получать задачи от других агентов.
Платформа не знает внутреннюю реализацию каждого агента.
A2A — сильное соответствие.
Отдельные агенты могут по-прежнему использовать MCP внутренне, но публичная граница — A2A.
Пример 4: Агент Анализа Данных
Агент анализа данных запрашивает хранилище, читает дашборды, создает графики и пишет отчет.
Если это один агент, использующий инструменты, MCP достаточно.
Если он делегирует статистический обзор одному агенту, бизнес-объяснение другому и комплаенс-обзор третьему, A2A становится полезным.
Моя Субъективная Оценка
MCP — это практичный выбор по умолчанию для большинства создателей, в то время как A2A — это архитектурная граница, в которую более крупные системы превращаются, как только у них появляются реальные потребности в координации «агент-агент».
Если вы создаете своего первого полезного AI-агента, начните с MCP. Кластер [AI-системы](https://www.glukhov.org/ru/ai-systems/ “Создавайте самохостинговые AI-системы с OpenClaw, Hermes, RAG и локальной LLM-инфраструктурой. Научитесь оркестрировать ассистентов с памятью, поиском, маршрутизацией и наблюдаемостью.” охватывает самохостинговых ассистентов, серверы MCP и память агентов как связанное множество, что дает более широкую картину того, как эти части сочетаются на практике. Дайте агенту безопасный, хорошо ограниченный доступ к инструментам и данным. Узнайте, где описания инструментов ломаются. Узнайте, где разрешения становятся запутанными. Узнайте, где наблюдаемость слаба.
Не начинайте с фантастической мультиагентной архитектуры.
Но как только ваша система имеет несколько независимо принадлежащих агентов, A2A становится гораздо более интересным. Он дает вам более чистый способ представления возможностей агента, делегирования задач и сотрудничества между агентами.
Ошибка заключается в том, чтобы рассматривать A2A и MCP как конкурентов.
Их лучше понимать как разные слои:
- MCP соединяет агентов с возможностями.
- A2A соединяет агентов с другими агентами.
Вы можете создавать полезные системы только с MCP.
Вы можете создавать сети агентов только с A2A.
Но наиболее масштабируемый паттерн, вероятно, — это оба: A2A для сотрудничества агентов, MCP для интеграции инструментов.
Итоговый Вердикт: Действительно ли AI-Агентам Нужны Оба?
Иногда — но не всегда, и ответ зависит почти исключительно от того, есть ли у вашей системы реальную границу «агент-агент» или просто коллекцию функций, использующих инструменты.
Если вашему AI-агенту нужны только инструменты, используйте MCP.
Если вашей AI-системе нужно, чтобы независимо развернутые агенты сотрудничали, используйте A2A.
Если вашим специализированным агентам нужны инструменты и им также нужно сотрудничать с другими агентами, используйте оба.
Самая чистая архитектура — это не «A2A против MCP» — это A2A на границе агента и MCP на границе инструмента, где каждый протокол обрабатывает ровно ту проблему, для которой он был разработан. Это разделение забот — то, что сохраняет мультиагентные системы понятными, безопасными и более легкими для эволюции с течением времени.
Для более широкого взгляда на то, где A2A находится в 2026 году — уровни принятия, требования безопасности, корпоративные кейсы использования и фреймворк решений для того, когда вводить его — см. [Протокол A2A Google в 2026: Принятие, Гипс и Реальность](https://www.glukhov.org/ru/ai-systems/comparisons/a2a-protocol-2026-adoption/ “Действительно ли протокол A2A от Google полезен в 2026 году? Практический обзор принятия A2A, наложения MCP, проблем безопасности и когда использовать протоколы агент-агент в продакшене.”
Источники
- Спецификация Протокола A2A: https://a2a-protocol.org/latest/specification/
- Сравнение A2A и MCP: https://a2a-protocol.org/latest/topics/a2a-and-mcp/
- Введение в MCP: https://modelcontextprotocol.io/docs/getting-started/intro
- Обзор архитектуры MCP: https://modelcontextprotocol.io/docs/learn/architecture
- Концепции сервера MCP: https://modelcontextprotocol.io/docs/learn/server-concepts
- Обновление Linux Foundation о принятии A2A: https://www.linuxfoundation.org/press/a2a-protocol-surpasses-150-organizations-lands-in-major-cloud-platforms-and-sees-enterprise-production-use-in-first-year