Multi-agent фреймворки: кто кого оркестрирует
Сравнение шести фреймворков для мультиагентных AI-систем — AG2, CrewAI, LangGraph, CAMEL-AI, Hermes Agent и OpenPlanter. Архитектура, фичи, реальные отличия.
Зачем вообще нужны мультиагентные системы
Представь, что ты поручил одному человеку написать статью, провести ресёрч, нарисовать иллюстрации и отредактировать текст. Он справится. Медленно, с переключением контекста, но справится. А теперь дай каждому из четырёх задачу своему специалисту — и параллельно. Результат будет быстрее и, скорее всего, качественнее.
Мультиагентные AI-системы работают по тому же принципу. Вместо одного LLM-агента, который делает всё подряд, ты запускаешь нескольких агентов с разными ролями. Один ищет информацию, другой пишет код, третий проверяет результат. Фреймворк берёт на себя оркестрацию — кто за что отвечает, как они общаются, что делать при ошибке.
В 2025–2026 эта идея вышла из стадии экспериментов в production. На GitHub десятки фреймворков, и у каждого — своя философия. Я выбрал шесть, которые реально используются, и разобрал их по косточкам.
Что мы сравниваем
| Фреймворк | Автор | Звёзды | Лицензия | Последний релиз |
|---|---|---|---|---|
| Hermes Agent | NousResearch | 164k | Apache 2.0 | 2026-05 |
| CrewAI | crewAI Inc | 52k | MIT | 2026-05-18 |
| LangGraph | LangChain | 33k | MIT | 2026-05-22 |
| CAMEL-AI | camel-ai | 17k | Apache 2.0 | 2026-05 |
| AG2 | ag2ai (ex-AutoGen) | 4.6k | Apache 2.0 | 2026-05 |
| OpenPlanter | ShinMegamiBoson | 1.6k | MIT | 2026-03 |
Все — на Python. Все open source. Но на этом сходства заканчиваются.
Какие фичи важны (и что они значат)
Прежде чем лезть в сравнение, разберёмся с терминологией. В таблицах и доках фреймворков часто фигурируют одни и те же слова, которые значат совершенно разные вещи.
Оркестрация (single / multi / parallel)
Это сердце любого мультиагентного фреймворка — как агенты координируют работу.
Single — один агент, одна задача. По сути, обычный LLM-вызов. OpenPlanter работает именно так: ты запускаешь цепочку, но внутри неё нет реально параллельных агентов.
Multi — несколько агентов, но работают они по очереди или по схеме «ведущий ведомый». AG2, CrewAI и CAMEL-AI используют этот подход. Один агент может делегировать задачу другому, но они не тянут одновременно.
Parallel — агенты реально работают параллельно, с чекпоинтами и условной маршрутизацией. LangGraph тут впереди: его DAG (Directed Acyclic Graph) позволяет ветвить и мержить потоки выполнения. Hermes Agent тоже поддерживает multi через Kanban-доску с зависимостями между задачами.
Разделяемая память
Могут ли агенты видеть контекст друг друга? Это критично для сложных пайплайнов, где результат одного агента — входные данные для другого.
AG2 реализует это через context_variables — общий словарь, который читают и пишут все агенты в Group Chat. CrewAI и LangGraph тоже поддерживают shared state. CAMEL-AI имеет общую память через паттерн Workforce.
У Hermes Agent shared memory частичная — есть issue #377 с предложением scratchpad-паттерна, но оно пока открыто. Kanban-задачи обеспечивают обмен данными через метаданные и комментарии, но это не то же самое, что общий пул памяти в реальном времени.
Коммуникация
Как агенты разговаривают друг с другом? Все шесть фреймворков используют internal-коммуникацию — сообщения передаются внутри фреймворка, не через внешний API. Это нормально для большинства кейсов, но становится проблемой, когда нужно связать агентов из разных систем.
Тут на помощь приходит A2A-протокол (об этом ниже).
Adversarial debate (антагонистический дебат)
Один агент генерирует ответ, другой его критикует. Если критик находит проблемы — первый переделывает. Это мощный паттерн для повышения качества: по сути, code review для LLM-вывода.
AG2 реализует это через Group Chat с LLM-handoffs. CAMEL-AI идёт дальше — у него RolePlaying-паттерн изначально спроектирован для дебатов. Hermes Agent имеет partial-поддержку через PR #20158 (режим Adversarial Debate Mode).
CrewAI, LangGraph и OpenPlanter — без встроенного дебата. Можно эмулировать через дополнительные агенты с промптами, но из коробки не работает.
Inception prompting
Самоулучшающиеся промпты — агент анализирует свой вывод и корректирует системный промпт для следующей попытки. Звучит как sci-fi, но CAMEL-AI реализует это через Inception Prompting из своей исследовательской работы (NeurIPS 2023).
У AG2 partial-поддержка через системные сообщения. У остальных — нет.
Adaptive retry
Что происходит, когда агент ошибается? Простой вариант — повторить тот же запрос. Умный вариант — проанализировать ошибку, сменить модель, скорректировать промпт, и только потом повторить.
Hermes Agent планирует Adaptive Retry с лестницей эскалации модели (issue #30587, PR #30620). CrewAI и LangGraph имеют retry-механизмы. AG2, CAMEL-AI и OpenPlanter — нет.
Managed runtime
Нужно ли тебе управлять инфраструктурой, на которой работают агенты? CrewAI и LangGraph предлагают managed-решения — облако, где агенты уже запущены и настроены. AG2 и Hermes Agent — partial: можно запустить самому, но есть некоторые контракты для управления средой выполнения. CAMEL-AI и OpenPlanter — полностью self-hosted.
Фреймворк за фреймворком
AG2 (ex-AutoGen)
AG2 — это переименованный AutoGen от Microsoft, который теперь живёт в организации ag2ai. Самый зрелый фреймворк в плане оркестрации.
У AG2 пять паттернов координации: AutoPattern (LLM выбирает следующего спикера), RoundRobin (по кругу), Random (случайно), Manual (человек выбирает), Default (явные handoffs с условиями). Это гибко — можно выстроить практически любую топологию.
Главный козырь AG2 — нативная поддержка A2A с версии 0.10. Ты exposing своего агента как A2A-сервер, и к нему могут подключаться агенты из других фреймворков. На сегодня AG2 единственный крупный фреймворк, у которого A2A работает «из коробки» и совместим с v1.0 спецификации.
Слабые стороны: нет quality gates (агент не проверяет качество вывода подчинённых), нет персистентных профилей, нет CLI-интерфейса — только Python-библиотека. Если тебе нужен «агент как сервис» с CLI и плагинами, AG2 не про это.
Вот так выглядит оркестрация в AG2:
from autogen import ConversableAgent, GroupChat, GroupChatManager
coder = ConversableAgent("coder", system_message="Ты пишешь Python-код.")
reviewer = ConversableAgent("reviewer", system_message="Ты проверяешь код и находишь баги.")
writer = ConversableAgent("writer", system_message="Ты пишешь документацию.")
groupchat = GroupChat(
agents=[coder, reviewer, writer],
messages=[],
speaker_selection_method="auto", # LLM выбирает, кто говорит следующим
)
manager = GroupChatManager(groupchat=groupchat)
DefaultPattern даёт ещё больше контроля — явные условия перехода между агентами с OnCondition и LLMCondition. Это как state machine, только вместо состояний — агенты.
Когда выбирать: нужна гибкая оркестрация с A2A-интеропом между разными фреймворками.
CrewAI
CrewAI — самый популярный фреймворк после Hermes. 52k звёзд, MIT-лицения, простой API. Философия — «ролевые команды»: ты определяешь агентов с ролями (researcher, writer, analyst), даёшь им задачи, и CrewAI оркестрирует выполнение.
CrewAI выглядит примерно так:
from crewai import Agent, Task, Crew
researcher = Agent(
role="Research Analyst",
goal="Find relevant data on the topic",
backstory="You are an expert researcher with 10 years of experience.",
)
writer = Agent(
role="Content Writer",
goal="Write a clear, engaging article",
backstory="You are a skilled technical writer.",
)
research_task = Task(description="Research the topic", agent=researcher)
write_task = Task(description="Write the article", agent=writer)
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task])
result = crew.kickoff()
Два режима: sequential (задачи по очереди) и hierarchical (менеджер делегирует работникам). Есть managed runtime — можно запустить в облаке CrewAI. Adaptive retry — да, встроен.
Слабые стороны: нет adversarial debate, слабая поддержка сложных DAG (это не LangGraph), state persistence ограничен. A2A — только community-адаптеры, нативной поддержки нет.
Когда выбирать: нужен быстрый старт с понятной ролевой моделью. Типичный кейс: «researcher ищет информацию, writer пишет отчёт, reviewer проверяет».
LangGraph
LangGraph — это надстройка над LangChain, которая превращает цепочки вызовов в граф. Каждый узел — шаг обработки, рёбра — условия перехода. Можно ветвить, мержить, делать checkpoint, вставлять human-in-the-loop.
Вот схематично, как выглядит граф:
from langgraph.graph import StateGraph
def research(state):
return {"data": call_llm("Research: " + state["topic"])}
def write(state):
return {"draft": call_llm("Write about: " + state["data"])}
def review(state):
approved = call_llm("Is this good? " + state["draft"])
return {"approved": "yes" in approved.lower()}
graph = StateGraph(dict)
graph.add_node("research", research)
graph.add_node("write", write)
graph.add_node("review", review)
graph.add_edge("research", "write")
graph.add_conditional_edges("review", lambda s: "end" if s["approved"] else "write")
Сильная сторона — stateful workflows с чекпоинтами. Если агент упал на шаге 7 из 12, можно откатиться к шагу 6 и продолжить. Это редкость среди мультиагентных фреймворков. Human-in-the-loop тоже хорошо реализован — можно вставить «паузу» в граф, чтобы человек подтвердил переход.
33k звёзд, MIT, managed runtime через LangGraph Cloud. Adaptive retry есть.
Слабые стороны: нет встроенного adversarial debate, нет inception prompting, A2A только через community. LangGraph больше про workflow-оркестрацию, чем про «агенты, которые спорят друг с другом».
Когда выбирать: сложные многошаговые пайплайны с ветвлениями, чекпоинтами и human-in-the-loop. Если тебе нужен «граф обработки с возможностью отката» — это LangGraph.
CAMEL-AI
CAMEL-AI — самый исследовательский фреймворк. Родился как академический проект (NeurIPS 2023, arXiv:2303.17760) и до сих пор сохраняет research-DNA.
У CAMEL-AI два уникальных паттерна: RolePlaying (два агента играют роли и спорят, пока не придут к консенсусу) и Inception Prompting (агент улучшает свои промпты на основе предыдущих попыток). Workforce-паттерн реализует shared memory для команд агентов.
17k звёзд, Apache 2.0. Из минусов — нет managed runtime, нет adaptive retry, нет A2A-поддержки. Фреймворк больше заточен под эксперименты, чем под production.
Когда выбирать: исследовательские задачи, где нужен adversarial debate и inception prompting. Если ты изучаешь, как LLM-агенты могут спорить и самообучаться — CAMEL-AI это место.
Hermes Agent
Hermes Agent от NousResearch — не совсем фреймворк в классическом смысле. Это CLI-first система с Kanban-доской, профилями, навыками и плагинами. 164k звёзд — самый популярный в списке.
Философия другая: Hermes решает application layer (задачи, память, навыки, CLI), а не framework layer (Python SDK для написания агентов). Kanban-доска с зависимостями — это и есть оркестрация: задачи блокируются, разблокируются, передаются между профилями агентов.
Shared memory partial, adversarial debate partial (PR #20158), adaptive retry в разработке (PR #30620). A2A — реализация существует (PR #4135, +2831 строк, 71 тест), но не смержена.
Главная сила Hermes — экосистема. Persistent profiles (изолированная конфигурация, память, навыки для каждого агента), Skills system (процедурная память), Holographic Memory (гибридный поиск с FTS5 + семантика). Никакой другой фреймворк не даёт ничего подобного.
Когда выбирать: нужна CLI-система с persistent агентами, задачами и навыками. Hermes — это не «библиотека для написания агентов», а «платформа для запуска агентов как сервисов».
OpenPlanter
OpenPlanter — самый маленький фреймворк в подборке. 1.6k звёзд, single orchestration, без shared memory, без debate, без retry. По сути, это обёртка для последовательного вызова LLM с минимальной оркестрацией.
Не буду рекомендовать его для production. Но если тебе нужен простой каркас для экспериментов — OpenPlanter может быть отправной точкой. Иногда «less is more» работает.
A2A-протокол: почему это важно
Google представил A2A (Agent-to-Agent) протокол в апреле 2025 года. Идея простая: MCP отвечает на вопрос «какие инструменты доступны?», а A2A — «кто может помочь?»
Ключевые концепции: Agent Card (JSON-описание возможностей агента, аналог MCP tool list), Task (единица работы), Message (коммуникация внутри задачи), Artifact (результат). Есть streaming через SSE.
Сейчас A2A поддерживают нативно: AG2 (с v0.10), Google ADK (с первого дня), Pydantic AI. Community-адаптеры есть у CrewAI и LangChain. Hermes Agent — полная реализация существует, но PR #4135 не смержен.
Почему это важно? Потому что мультиагентные фреймворки — это острова. Твой агент на CrewAI не может легко позвать агента на AG2. A2A решает эту проблему: expose агента как A2A-сервер, и любой фреймворк с A2A-клиентом может к нему обратиться.
# AG2: exposing агента как A2A-сервер
from autogen import ConversableAgent, LLMConfig
from autogen.a2a import A2aAgentServer
agent = ConversableAgent(
name="coder",
system_message="Expert Python developer",
llm_config=LLMConfig({"model": "gpt-4o-mini"}),
)
server = A2aAgentServer(agent).build()
# uvicorn server:server --port 8000
# Подключение из другого процесса
from autogen.a2a import A2aRemoteAgent
remote = A2aRemoteAgent(url="http://localhost:8000", name="coder")
await local_agent.a_initiate_chat(recipient=remote, message="Write a CSV parser")
A2A и MCP — не конкуренты, а комплементарные протоколы. MCP даёт агенту инструменты, A2A даёт агенту коллег. Вместе они формируют полный стек для мультиагентных систем.
Сводная таблица
| Фича | Hermes | AG2 | CrewAI | LangGraph | CAMEL-AI | OpenPlanter |
|---|---|---|---|---|---|---|
| Оркестрация | multi | multi | multi | parallel | multi | single |
| Shared memory | partial | ✅ | ✅ | ✅ | ✅ | ❌ |
| Adversarial debate | partial | ✅ | ❌ | ❌ | ✅ | ❌ |
| Inception prompting | ❌ | partial | ❌ | ❌ | ✅ | ❌ |
| Adaptive retry | partial | ❌ | ✅ | ✅ | ❌ | ❌ |
| Managed runtime | partial | partial | ✅ | ✅ | ❌ | ❌ |
| A2A протокол | partial | ✅ native | partial | partial | ❌ | ❌ |
| CLI | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Persistent profiles | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Skills/память | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Рекомендации
Быстрый старт с ролевыми командами → CrewAI. Простой API, managed runtime, MIT-лицения. Для MVP и прототипов — идеально.
Сложные stateful-пайплайны → LangGraph. DAG с чекпоинтами, conditional routing, human-in-the-loop. Если твой workflow имеет ветвления и нужен откат — это оно.
A2A-интероп и гибкая оркестрация → AG2. Единственный крупный фреймворк с нативной A2A v1.0. Пять паттернов координации. Если строишь систему, где агенты из разных фреймворков должны общаться — AG2.
Исследование и эксперименты → CAMEL-AI. RolePlaying, Inception Prompting, академический подход. Для изучения того, как LLM-агенты спорят и обучаются — лучший выбор.
Платформа для persistent агентов → Hermes Agent. CLI, Kanban, profiles, skills, holographic memory. Не фреймворк для написания агентов, а операционная система для их запуска.
Простые эксперименты → OpenPlanter. Минимальный каркас, ничего лишнего.
Что будет дальше
Мультиагентные фреймворки движутся в сторону интероперабельности. A2A станет стандартом де-факто — слишком много крупных игроков уже его поддерживают. MCP + A2A дадут полный стек: инструменты для агента и агенты для агента.
Hermes Agent выделяется тем, что решает проблему на другом уровне. Пока другие фреймворки спорят о паттернах оркестрации, Hermes создаёт инфраструктуру для persistent агентов с памятью, навыками и задачами. Это как разница между «библиотекой для HTTP-запросов» и «веб-сервером с плагинами».
AG2 тихо стал самым зрелым фреймворком для production-мультиагентных систем. Пять паттернов координации, нативный A2A, context variables. Если Microsoft вернёт себе AutoGen-бренд или ag2ai получит серьёзное финансирование — CrewAI и LangGraph могут оказаться под давлением.
CAMEL-AI остаётся исследовательским проектом, и это нормально. Не всё должно быть production-ready. Inception Prompting и RolePlaying — это будущее, которое пока живёт в лаборатории.
Выбирай фреймворк под задачу, а не под хайп. И помни: мультиагентная система — это не серебряная пуля. Если один агент справляется с задачей, не добавляйте ещё четырёх «для красоты».