LangGraph или CrewAI: граф состояний против команды ролей
Оба фреймворка открыты под MIT, оба собирают агентов из модели, инструментов и памяти, и оба доживают до production. Разница в модели мышления: LangGraph просит описать процесс как граф с явным состоянием, CrewAI - как команду агентов с ролями и задачами. От этого зависит, что будет легко в первую неделю и что станет больно через полгода. Разбираем на 29 октября 2026 и добавляем третий вариант, о котором спрашивают реже: обычный код без фреймворка.
8 мин чтения
Две модели мышления
LangGraph описывает агента как направленный граф: узлы делают работу, рёбра задают переходы, состояние передаётся между узлами и сохраняется в контрольных точках. Вы пишете процесс явно, включая циклы, ветвления и места, где нужно остановиться и спросить человека. Это низкоуровневый инструмент: он не прячет промпты и не решает за вас, что делать при ошибке.
CrewAI описывает агента как команду. У каждого агента роль, цель и предыстория, задачи назначаются агентам, а команда выполняет их последовательно или иерархически, когда агент-менеджер планирует и делегирует. Для сценариев, где процесс ещё не формализован, это даёт рабочий прототип за часы. Для точного управления порядком шагов в CrewAI есть Flows: событийные сценарии с состоянием и ветвлением.
Оба подхода могут собрать одну и ту же систему. Вопрос в том, сколько кода и какого вы напишете и где окажутся скрытые решения: в вашем графе или внутри фреймворка.
Что проверено на 29 октября 2026
Чтобы сравнение не превратилось в пересказ чужих обзоров, вот факты с первичных страниц.
- LangGraph: лицензия MIT, стабильный релиз 1.0 вышел в октябре 2025 без ломающих изменений. В анонсе 1.0 заявлены долговечное выполнение, встроенное сохранение состояния и паттерны human-in-the-loop как API первого класса. Python и JavaScript. Хостинг и наблюдаемость через LangSmith - отдельный коммерческий продукт.
- CrewAI: лицензия MIT, Python от 3.10 до 3.13. На странице репозитория заявлены Crews и Flows, последовательный и иерархический процессы, поддержка MCP и A2A для подключения инструментов и делегирования удалённым агентам. Есть коммерческая платформа для развёртывания.
- Чего мы не нашли на первичных страницах: сравнимых цифр производительности. Все проценты вида «на 40 % быстрее прототипировать» в обзорах взяты из материалов вендоров и в этой статье не используются.
Сравнение по критериям, которые решают в production
Критерии ниже взяты из того, что ломается у агентов после запуска: состояние, повторы, права, стоимость, воспроизводимость. Они важнее, чем удобство первой недели.
| Критерий | LangGraph | CrewAI |
|---|---|---|
| Порядок шагов | Явный граф: каждый переход виден в коде | Процесс команды или Flow; внутри Crew порядок частично решает модель |
| Состояние и возобновление | Контрольные точки встроены: пауза, возобновление после перезапуска, многодневные согласования | Состояние есть во Flows; долгие паузы и возобновление требуют собственной обвязки |
| Проверка человеком | API первого класса: остановить, показать, изменить, продолжить | Через настройку задач и Flows; менее гранулярно |
| Несколько агентов | Подграфы и роутинг; код пишете сами | Основной сценарий фреймворка: роли, делегирование, A2A |
| Порог входа | Выше: нужно спроектировать граф и состояние | Ниже: роли и задачи читаются без подготовки |
| Наблюдаемость | Самая подробная в LangSmith; OpenTelemetry через сторонние инструменты | Встроенная телеметрия плюс интеграции с Langfuse и подобными |
Где у CrewAI заканчивается удобство
Команда из ролей хорошо описывает исследовательские задачи: собрать информацию, написать черновик, проверить, оформить. Там допустимо, что модель сама решает, кому передать работу. Проблемы начинаются, когда у процесса есть цена ошибки.
- Детерминированные шаги. «Сначала проверить права, потом списать деньги, потом уведомить» - это не делегирование, а порядок, который нельзя нарушить. В Crew его приходится выносить во Flow, и на этом месте вы уже пишете граф, только с другим синтаксисом.
- Идемпотентность и повторы. Агент-менеджер повторил задачу после тайм-аута, и заявка ушла дважды. Защита от повтора должна жить в состоянии процесса, а в командной модели состояние размазано между агентами.
- Стоимость. Каждый агент в команде рассуждает отдельно, и делегирование добавляет вызовы модели. Для прототипа это неважно, для десяти тысяч задач в день - главный пункт счёта. Лимит шагов на задачу в командной модели задаётся хуже, чем в графе.
Сколько стоит контроль в LangGraph
Контроль не бесплатен. Граф нужно спроектировать до того, как написан первый узел: какое состояние, какие переходы, где контрольные точки. Для команды без опыта это неделя на первый рабочий агент вместо дня, и первую версию графа обычно переписывают.
Хранилище контрольных точек - это база данных с состоянием пользователей, включая содержимое их запросов. Её нужно защищать и обновлять как любую базу: права доступа, шифрование, срок хранения, обновления библиотеки. Это часть эксплуатации, которую в демо не показывают.
Наблюдаемость из коробки подразумевает LangSmith. Если трассы нельзя отправлять в чужое облако, подключайте self-hosted инструмент через OpenTelemetry и закладывайте это в оценку.
Третий вариант: без фреймворка
Один агент с тремя-пятью инструментами и без длинных пауз - это цикл «вызвать модель, выполнить инструмент, повторить» на пару сотен строк. У такого кода нет зависимостей, которые ломаются при обновлении, нет чужих промптов внутри и нет абстракций, которые нужно объяснять новому инженеру.
Фреймворк окупается в трёх случаях: процесс должен переживать перезапуск и ждать человека днями, агентов несколько и они передают друг другу работу, или команда уже знает инструмент и не хочет изобретать сохранение состояния заново. Если ни одного из трёх нет, начинайте с кода и переходите на LangGraph, когда появится первая многодневная пауза.
Как выбрать за три вопроса
Решение обычно укладывается в три вопроса, и ответить на них можно до написания кода.
- Есть ли шаги, порядок которых нельзя доверить модели? Если да, это граф: LangGraph или свой код. CrewAI подойдёт только через Flows.
- Должен ли процесс ждать человека дольше одного запроса? Если да, нужны контрольные точки, и это сильная сторона LangGraph.
- Задача исследовательская, с несколькими ролями и терпимой ценой ошибки? Если да, CrewAI даст рабочий результат быстрее всех, и переписывать его потом, возможно, не придётся.