Multi-agent фреймворки: кто кого оркестрирует

Сравнение шести фреймворков для мультиагентных AI-систем — AG2, CrewAI, LangGraph, CAMEL-AI, Hermes Agent и OpenPlanter. Архитектура, фичи, реальные отличия.

Зачем вообще нужны мультиагентные системы

Представь, что ты поручил одному человеку написать статью, провести ресёрч, нарисовать иллюстрации и отредактировать текст. Он справится. Медленно, с переключением контекста, но справится. А теперь дай каждому из четырёх задачу своему специалисту — и параллельно. Результат будет быстрее и, скорее всего, качественнее.

Мультиагентные AI-системы работают по тому же принципу. Вместо одного LLM-агента, который делает всё подряд, ты запускаешь нескольких агентов с разными ролями. Один ищет информацию, другой пишет код, третий проверяет результат. Фреймворк берёт на себя оркестрацию — кто за что отвечает, как они общаются, что делать при ошибке.

В 2025–2026 эта идея вышла из стадии экспериментов в production. На GitHub десятки фреймворков, и у каждого — своя философия. Я выбрал шесть, которые реально используются, и разобрал их по косточкам.

Что мы сравниваем

ФреймворкАвторЗвёздыЛицензияПоследний релиз
Hermes AgentNousResearch164kApache 2.02026-05
CrewAIcrewAI Inc52kMIT2026-05-18
LangGraphLangChain33kMIT2026-05-22
CAMEL-AIcamel-ai17kApache 2.02026-05
AG2ag2ai (ex-AutoGen)4.6kApache 2.02026-05
OpenPlanterShinMegamiBoson1.6kMIT2026-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 даёт агенту коллег. Вместе они формируют полный стек для мультиагентных систем.

Сводная таблица

ФичаHermesAG2CrewAILangGraphCAMEL-AIOpenPlanter
Оркестрацияmultimultimultiparallelmultisingle
Shared memorypartial
Adversarial debatepartial
Inception promptingpartial
Adaptive retrypartial
Managed runtimepartialpartial
A2A протоколpartial✅ nativepartialpartial
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 — это будущее, которое пока живёт в лаборатории.

Выбирай фреймворк под задачу, а не под хайп. И помни: мультиагентная система — это не серебряная пуля. Если один агент справляется с задачей, не добавляйте ещё четырёх «для красоты».