OTP, CrewAI, A2A, MCP — словарь мультиагентной архитектуры
Разбираем 4 ключевых технологии мультиагентной архитектуры: OTP, CrewAI, A2A и MCP. Что за что отвечает, как они работают вместе и с чего начать.
Каждую неделю кто-то в моём окружении задаёт один и тот же вопрос: «Что лучше — CrewAI или MCP?» Или: «A2A заменит MCP?» Или вообще: «Зачем мне OTP, если есть CrewAI?»
Проблема в том, что вопрос поставлен неправильно. Это всё равно что спрашивать «что лучше — TCP или PostgreSQL?» Технически оба имеют отношение к данным. Но сравнивать их — бессмысленно, потому что они работают на разных уровнях.
OTP, CrewAI, A2A и MCP — это не конкуренты. Это четыре слоя одной архитектуры. Каждый решает свою задачу, и путать их — верный способ построить систему, которая развалится при первом же усложнении. Давайте раз и навсегда разберёмся, что за что отвечает.
OTP — инфраструктура выживания
OTP (Open Telecom Platform) — это фреймворк из мира Erlang, которому больше 30 лет. Изначально он создавался для телеком-систем, где даунтайм — это не «ой, перезагрузим», а миллионы потерянных звонков. Сегодня OTP — это паттерн проектирования, который идеально ложится на мультиагентные системы.
Ключевая идея OTP — акторная модель с деревьями супервизоров. Каждый процесс (читай: агент) — изолированная единица со своим состоянием. Процессы общаются только через сообщения. Если процесс падает — супервизор решает, что делать: перезапустить его, перезапустить группу связанных процессов или эскалировать проблему выше.
Что это даёт для AI-агентов
- Изоляция сбоев. Один агент зависает на галлюцинации или получает таймаут от API — остальные продолжают работать. Без OTP-паттерна падение одного агента каскадом роняет всю систему.
- Стратегии перезапуска. Можно задать one_for_one (перезапускать только упавший процесс), one_for_all (перезапустить всю группу) или rest_for_one (перезапустить упавший и всех, кто от него зависит). Для агентов это критично — если агент-аналитик упал, агент-писатель без его данных всё равно бесполезен.
- Управление нагрузкой. Back-pressure, очереди сообщений, приоритеты — всё из коробки.
Когда нужен OTP
Когда у вас не один агент, а система из десятков. Когда агенты работают непрерывно, а не одноразово. Когда надёжность важнее, чем скорость прототипирования.
Не обязательно писать на Erlang или Elixir. Принципы OTP реализованы в библиотеках для Python, Go, Rust. Важно не название, а паттерн: изолированные процессы, супервизия, деревья отказоустойчивости.
CrewAI — команда с ролями
Если OTP — это инфраструктура, то CrewAI — это уровень команд и ролей. Опенсорсный Python-фреймворк, который позволяет собирать агентов в «экипажи» (crews) с чёткими ролями, задачами и иерархией.
В CrewAI вы описываете: агента — с ролью, целью и предысторией (backstory); задачу — конкретное задание с ожидаемым результатом; процесс — последовательный (sequential) или иерархический (hierarchical), где один агент координирует остальных.
Что это даёт
- Разделение ответственности. Вместо одного агента-на-все-руки вы получаете специализированных агентов. Один ищет информацию, другой анализирует, третий пишет отчёт.
- Передача контекста между агентами. Результат работы одного агента автоматически становится входом для следующего.
- Управление зависимостями. Можно задать, что задача Б не стартует, пока не завершена задача А.
- Flows — механизм оркестрации нескольких экипажей в рамках сложного пайплайна с ветвлениями и условной логикой.
Когда нужен CrewAI
Когда у вас конкретный рабочий процесс, который можно декомпозировать на роли. Исследование → анализ → написание отчёта. Сбор данных → валидация → принятие решения. CrewAI идеален для задач, где вы точно знаете, какие шаги нужны и в каком порядке.
Ограничение CrewAI — он работает внутри одного приложения. Ваши агенты — это Python-объекты в одном процессе. Для взаимодействия между разными системами нужен следующий слой.
A2A — протокол межагентной коммуникации
A2A (Agent-to-Agent) — открытый протокол, представленный Google в апреле 2025 года. Его задача — стандартизировать общение между агентами, которые работают в разных системах, написаны на разных фреймворках и принадлежат разным организациям.
Аналогия: если CrewAI — это координация внутри одного офиса, то A2A — это почтовый протокол между компаниями. Неважно, какая CRM у вашего партнёра — письмо дойдёт.
Как работает A2A
- Agent Card — JSON-документ, в котором агент описывает свои возможности, поддерживаемые форматы и эндпоинты. Аналог визитки: «Я умею анализировать финансовые данные, принимаю запросы в таком-то формате».
- Задачи (Tasks) — стандартизированная единица работы. Клиент-агент отправляет задачу серверу-агенту и получает результат.
- Части (Parts) — результат задачи может содержать текст, файлы, формы, даже iframes. Агенты договариваются о формате.
- Потоковая передача — поддержка Server-Sent Events для долгих задач.
Что это даёт
- Интероперабельность. Агент на CrewAI может общаться с агентом на LangGraph, агентом на AutoGen или любым другим — через единый протокол.
- Обнаружение. Через Agent Cards агенты могут находить друг друга и понимать, кто что умеет.
- Безопасность. Встроенные механизмы аутентификации и авторизации.
Когда нужен A2A
Когда агенты живут в разных системах. Когда вы строите маркетплейс агентов или интегрируете агентов от разных поставщиков. Когда ваш внутренний агент должен общаться с агентом партнёра, и вы не контролируете его стек.
A2A уже поддерживается Google Agent Engine, и экосистема активно растёт — протокол открытый, с чёткими контрибьюшн-гайдлайнами.
MCP — стандарт подключения инструментов
MCP (Model Context Protocol) — открытый протокол от Anthropic, представленный в конце 2024 года. В декабре 2025-го Anthropic передала его в Agentic AI Foundation под управление Linux Foundation, куда вошли OpenAI, Google, Microsoft, AWS, Cloudflare и другие.
Если A2A — это протокол общения между агентами, то MCP — это протокол общения агента с внешним миром: инструментами, базами данных, API, файловыми системами.
Как работает MCP
Архитектура «клиент — сервер» поверх JSON-RPC 2.0 (заимствовано из LSP — Language Server Protocol):
- MCP-сервер — обёртка вокруг инструмента или источника данных. Описывает, какие операции доступны, какие параметры принимает, какие данные отдаёт.
- MCP-клиент — встроен в AI-приложение. Обнаруживает серверы, вызывает инструменты, получает результаты.
- Стандартизированные примитивы: Tools (функции), Resources (данные), Prompts (шаблоны запросов).
Что это даёт
- Один коннектор вместо десятков. Раньше каждый AI-фреймворк писал свои интеграции с каждым инструментом. N фреймворков × M инструментов = N×M коннекторов. С MCP: N + M.
- Контекстная непрерывность. Агент сохраняет контекст при переключении между инструментами.
- Экосистема. Уже тысячи MCP-серверов: для GitHub, Slack, баз данных, файловых систем, браузеров, почти чего угодно.
Когда нужен MCP
Всегда, когда агент должен взаимодействовать с внешними системами. MCP — это USB-C для AI-агентов: единый стандартный порт вместо зоопарка проприетарных разъёёмов.
Как это всё работает вместе
Представьте мультиагентную систему для анализа конкурентов:
Слой 1 — OTP: обеспечивает, что вся система работает стабильно. Если агент-аналитик упал, супервизор перезапустит его. Если внешний API не отвечает — агент уйдёт в retry без паники.
Слой 2 — CrewAI: определяет, кто что делает. Исследователь собирает данные, аналитик ищет паттерны, писатель формирует отчёт. Чёткие роли, чёткий порядок.
Слой 3 — A2A: когда вашему агенту нужны данные от агента партнёра (например, сравнение цен), он обращается через A2A. Разные системы, единый протокол.
Слой 4 — MCP: каждый агент подключается к своим инструментам через MCP. Исследователь — к веб-поиску и базе данных. Писатель — к Google Docs. Стандартный интерфейс для всех.
С чего начать: практические рекомендации
Начинайте снизу вверх. Не нужно сразу строить все четыре слоя. Двигайтесь по мере усложнения задачи.
Шаг 1 — MCP. Подключите инструменты к вашему агенту через MCP. Это даёт немедленную пользу: агент получает доступ к реальным данным и сервисам. MCP-серверы есть для большинства популярных инструментов, а написать свой — дело пары часов.
Шаг 2 — CrewAI. Когда один агент перестаёт справляться, разбейте задачу на роли. Не нужно сразу 10 агентов — начните с двух-трёх. Исследователь + аналитик + писатель — классическая тройка.
Шаг 3 — A2A. Когда ваши агенты должны взаимодействовать с внешними системами или агентами партнёров, подключайте A2A. До этого момента — не усложняйте.
Шаг 4 — OTP-паттерны. Когда система уходит в продакшен и должна работать 24/7, внедряйте супервизию, стратегии перезапуска и управление нагрузкой. На этапе прототипа это избыточно, на этапе продакшена — обязательно.
Главное
Четыре технологии — четыре ответа на четыре разных вопроса:
- Как выжить при сбоях? → OTP: супервизоры, изоляция, перезапуски.
- Кто что делает? → CrewAI: роли, задачи, координация.
- Как общаться с чужими агентами? → A2A: стандартный протокол коммуникации.
- Как подключить инструменты? → MCP: универсальный интерфейс к внешнему миру.
Путать их — как путать фундамент с электропроводкой. И то, и другое нужно в доме, но отвечают они за разное. Постройте правильный стек — и ваши агенты будут не просто работать, а работать надёжно, масштабируемо и с возможностью расти.