Протоколы AI-агентов: MCP, A2A, ACP и AG-UI
Краткий ответ
MCP, A2A, ACP и AG-UI не заменяют друг друга напрямую. Они решают разные задачи коммуникации в agent system.
| Протокол | Основная проблема | Типичная граница |
|---|---|---|
| MCP | Как AI app подключается к tools, data, prompts и context | Agent/host к tool/resource server |
| A2A | Как один agent делегирует работу другому | Agent-to-agent tasks |
| ACP | Как agents раскрывают capabilities как interoperable services | Agent service interoperability |
| AG-UI | Как agent stream state и actions в UI | Agent backend к frontend |
Для production вопрос не "какой протокол победит?", а "какую границу мы стандартизируем?".
Почему протоколы важны
Ранние agent systems часто hard-code tools, UI events и delegation внутри одного приложения. Для прототипа этого хватает, но с несколькими tools, teams, vendors и interfaces система становится хрупкой.
Протоколы разделяют ответственность:
- Tools и data sources можно expose без переписывания агента.
- Agents могут delegating work без раскрытия внутренней реализации.
- Frontends могут одинаково показывать progress, tool calls и intermediate state.
- Security teams получают понятные границы permissions и audit logs.
Ключ — сопоставить protocol с boundary.
MCP: tools и context
MCP, Model Context Protocol, соединяет AI applications с внешними tools и context. Host может discover и call tools, читать resources и использовать prompt templates.
Используйте MCP, когда:
- AI app нужно обратиться к database, filesystem, API, repository или internal tool.
- Tools должны переиспользоваться разными agent clients.
- Resources и prompts нужно expose стандартно.
- Tool schemas и permissions должны быть explicit.
MCP силен на границе "agent calls tool". Это не full multi-agent orchestration protocol и не UI protocol.
AI app / agent host
-> MCP client
-> MCP server
-> database, file system, API, internal tool
Практики:
- Делать tools узкими и хорошо описанными.
- Избегать широкого write access.
- Логировать tool calls и arguments.
- Считать tool output untrusted input.
- Version tool schemas.
A2A: agent-to-agent collaboration
A2A, Agent-to-Agent, фокусируется на collaboration между agents. Agent может advertise capabilities и принимать tasks от другого agent или orchestrator.
Используйте A2A, когда:
- Несколько specialized agents должны сотрудничать.
- Planner agent делегирует specialist agents.
- Agents принадлежат разным teams или services.
- Long-running tasks требуют status, artifacts и progress.
A2A силен на границе "agent delegates to another agent". Он не заменяет MCP; A2A agent может использовать MCP внутри.
Orchestrator agent
-> A2A task request
-> Specialist agent
-> status updates and artifacts
Практики:
- Определять, что каждый agent может делать.
- Валидировать responses.
- Использовать timeouts и budgets.
- Записывать ownership и handoff history.
- Избегать circular delegation loops.
ACP: interoperable agent services
ACP часто обсуждают как Agent Communication Protocol. Цель — сделать agents discoverable и interoperable как services. Реализации могут отличаться, но идея похожа: expose capabilities предсказуемо.
Используйте ACP-style подходы, когда:
- Agents должны вести себя как network services.
- Capability discovery важен.
- Разные runtimes или vendors должны interoperate.
- Нужна service boundary, а не library call.
ACP концептуально пересекается с A2A. Оценивайте конкретную реализацию: message format, authentication, task lifecycle, streaming, SDK maturity и governance.
AG-UI: agent-to-UI events
AG-UI фокусируется на frontend boundary. Он standardizes, как agent backend stream messages, tool calls, state changes, progress и UI events в client app.
Используйте AG-UI, когда:
- Строите copilot или assistant UI.
- Frontend должен показывать tool calls, intermediate steps или live progress.
- Users должны approve actions в UI.
- Agent state должен sync с React, Vue или другим UI framework.
AG-UI силен на границе "agent backend talks to UI". Он не определяет internal workflow или tool hosting.
Agent backend
-> event stream
-> frontend UI
-> user approval / input
-> backend resumes
Практики:
- Держать event types стабильными.
- Разделять user-visible state и internal secrets.
- Обрабатывать reconnects и partial streams.
- Делать approvals explicit и auditable.
- Не позволять frontend events обходить server-side permissions.
Как они сочетаются
Протоколы часто дополняют друг друга:
User interface
<-> AG-UI events
Agent application / orchestrator
<-> A2A or ACP for agent collaboration
Specialist agent
<-> MCP for tools, resources, and prompts
Business systems
Support automation может использовать AG-UI для progress и confirmation, A2A для делегирования finance agent, MCP для order, payment и ticketing tools.
Сравнение
| Измерение | MCP | A2A | ACP | AG-UI |
|---|---|---|---|---|
| Граница | Agent to tools/context | Agent to agent | Agent service | Agent to UI |
| Объект | Tool, resource, prompt | Task, message, artifact | Capability, agent, message | Event, state, action |
| Лучше для | Tool integration | Delegation | Interoperability | Interactive frontends |
| Заменяет app logic? | Нет | Нет | Нет | Нет |
| Комбинируется? | Да | Да | Да | Да |
| Риск | Overpowered tools | Unbounded delegation | Divergent implementations | UI state/security leakage |
Как выбрать
Выбирайте MCP, если главная проблема — подключение tools или data.
Выбирайте A2A, если один agent должен делегировать tasks другому.
Выбирайте ACP, если agents должны быть service endpoints с capability discovery.
Выбирайте AG-UI, если строите interactive agent UI с progress, approvals и intermediate state.
Частые ошибки
Считать protocol framework
Protocols определяют communication boundaries. Они не заменяют orchestration, evaluation, security, deployment или product design.
Использовать multi-agent protocol для простых tool calls
Если agent только querying database или API, MCP-style tool integration может быть достаточно.
Expose слишком много через tools
Tool server должен expose узкие operations. "Run arbitrary SQL" или "execute shell command" допустимы только в контролируемых средах.
Доверять outputs без validation
Agent-to-agent communication все равно требует validation. Returned artifacts — это data, которые надо проверить.
Делать UI events permissions
Frontend approval events — это user interaction signals, но не полный security control. Backend должен enforce permissions.
Production checklist
| Область | Вопросы |
|---|---|
| Authentication | Кто может вызвать endpoint? |
| Authorization | Какие tools, agents, tasks или UI actions разрешены? |
| Auditing | Можно ли восстановить, кто что запросил? |
| Timeouts | Что происходит, если agent или tool завис? |
| Budgets | Ограничены ли model calls, tool calls и task depth? |
| Validation | Inputs и outputs проверяются schema? |
| Observability | Traces связаны через UI, agent, tool и task? |
| Versioning | Можно ли менять schemas без поломки clients? |
Итог
MCP, A2A, ACP и AG-UI лучше понимать как boundary protocols. MCP standardizes tools и context, A2A — agent task collaboration, ACP-style подходы — interoperable agent services, AG-UI — interactive frontend events. Зрелая система может использовать несколько, но каждый нужен только там, где делает границу яснее и безопаснее.
Попробуйте эти локальные браузерные инструменты — регистрация не требуется →