LangChain, LlamaIndex, LangGraph: чем оркестраторы различаются
На рынке фреймворков для LLM-приложений сложилась четвёрка лидеров. Разбираем, чем LangChain, LangGraph, LlamaIndex и CrewAI отличаются на практике и какой брать под свою задачу.

Когда прототип на паре промптов превращается в приложение, которое ходит в базу знаний, вызывает внешние API и держит диалог из десятков шагов, голым SDK от OpenAI уже не обойтись. Нужен слой, который свяжет модель, инструменты и данные в управляемый процесс — оркестратор. За последние два года вокруг этой задачи выросло несколько конкурирующих фреймворков, и выбор между ними определяет, как быстро вы дойдёте до продакшена и насколько больно будет его поддерживать.
Разберём четыре самых заметных проекта — LangChain, LangGraph, LlamaIndex и CrewAI — по тому, что они реально делают, где ломаются и кому подходят. Все проекты открытые и живут на Python (у части есть и TypeScript-версия), развиваются быстро, поэтому конкретные имена классов и API проверяйте в текущей документации: между минорными версиями они меняются.
Что вообще оркеструют
Оркестратор решает три задачи, которые в сыром виде приходится писать руками. Первая — связать вызовы модели в цепочку или граф: результат одного шага становится входом следующего. Вторая — дать модели доступ к инструментам1: поиску, калькулятору, вызову вашего API, запросу в базу. Третья — работа с внешними данными через RAG2, чтобы модель отвечала по вашим документам, а не по тому, что запомнила при обучении.
Дальше проекты расходятся. Одни делают ставку на гибкие графы состояний, другие — на извлечение данных, третьи — на команды агентов3, которые делят роли между собой.
LangChain: универсальный комбайн
Самый старый и самый обсуждаемый из четвёрки. LangChain изначально строился как набор абстракций поверх любых моделей: единый интерфейс к OpenAI, Anthropic, локальным моделям, векторным базам, загрузчикам документов. Сильная сторона — охват: почти под любой сервис есть готовая интеграция, и не надо писать обёртку с нуля.
Обратная сторона — та же широта. Фреймворк много раз переписывал собственный API, из-за чего примеры двухлетней давности часто не запускаются на свежих версиях, а слои абстракций порой прячут то, что хочется контролировать. Для быстрого прототипа это удобно, для сложной логики многие переходят на LangGraph от той же команды.
LangGraph: состояние как граф
LangGraph — не замена LangChain, а надстройка для случаев, когда сценарий перестаёт быть линейной цепочкой. Вы описываете приложение как граф: узлы — шаги (вызов модели, инструмента, ветвление), рёбра — переходы между ними. Ключевое отличие от чистого LangChain — явное состояние и циклы: агент может вернуться на предыдущий шаг, перезапросить данные, дождаться подтверждения человека.
Это тот подход, который нужен, когда важны контроль и воспроизводимость: вы видите весь маршрут выполнения и можете вставить проверку в любую точку. Порог входа выше, чем у линейных цепочек.
LlamaIndex: всё про данные
LlamaIndex вырос из одной задачи — подключить LLM к вашим документам, и в этой нише он глубже конкурентов. Загрузка из десятков источников, разные стратегии разбиения текста на фрагменты, гибридный поиск (векторный плюс ключевые слова), переранжирование результатов — здесь это ядро, а не дополнение.
Если продукт — это по сути умный поиск по корпоративной базе или ассистент по документации, LlamaIndex закрывает задачу с меньшим количеством кода. Оркестрация сложных многошаговых агентов в нём тоже есть, но исторически это не его конёк.
CrewAI: команда агентов
CrewAI строится вокруг метафоры команды: вы задаёте роли (исследователь, редактор, критик), их цели и инструменты, а фреймворк организует их взаимодействие — последовательное или с делегированием задач. Это удобно, когда задачу естественно разбить на роли, и когда вам важна читаемость сценария «на человеческом языке».
Минус — та же метафора: она хорошо ложится на демонстрации и хуже на задачи, где нужен жёсткий детерминированный маршрут. Для этого LangGraph подходит лучше.
Выбор оркестратора — это не выбор «лучшего фреймворка», а ответ на вопрос, что у вас за задача: связать данные, выстроить сложный маршрут или собрать команду ролей. Под каждую из трёх — свой инструмент.
Сравнение по ключевым параметрам
| Параметр | LangChain | LangGraph | LlamaIndex | CrewAI |
|---|---|---|---|---|
| Основной фокус | Универсальные интеграции | Графы состояний, циклы | RAG и работа с данными | Мультиагентные команды |
| Модель выполнения | Цепочки | Граф с состоянием | Индексы и запросы | Роли и делегирование |
| Контроль над потоком | Средний | Высокий | Средний | Ниже среднего |
| Порог входа | Низкий | Выше среднего | Низкий для RAG | Низкий |
| Языки | Python, TS/JS | Python, TS/JS | Python, TS | Python |
| Лицензия | Открытая (MIT) | Открытая (MIT) | Открытая (MIT) | Открытая (MIT) |
Точную лицензию и наличие TS-версии сверяйте в репозитории проекта: у части фреймворков коммерческие облачные сервисы идут отдельно от открытого ядра и лицензируются иначе.
Кому это пригодится и кому нет
Разные задачи тянут к разным инструментам. Ориентиры по сценариям:
- Быстрый прототип, нужно перебрать модели и интеграции. Берите LangChain: под большинство сервисов уже есть готовый коннектор, соберёте демо за вечер.
- Продакшен со сложной логикой, ветвлениями и участием человека. LangGraph: явное состояние и циклы дают контроль, который в линейных цепочках приходится костылить.
- Умный поиск по документам, ассистент по базе знаний. LlamaIndex закрывает RAG глубже прочих: стратегии разбиения, гибридный поиск, переранжирование из коробки.
- Задача разбивается на роли с делегированием. CrewAI даёт читаемую структуру команды агентов.
- Один простой запрос к модели без инструментов и данных. Оркестратор не нужен вовсе — хватит официального SDK провайдера. Лишний слой абстракции здесь только замедлит отладку.
На практике проекты часто комбинируют: LlamaIndex как слой данных внутри графа LangGraph — рабочая связка, потому что фреймворки не взаимоисключающие. Извлечение через один инструмент, маршрут выполнения — через другой.
На что смотреть при выборе
Помимо возможностей, оцените три вещи, которые всплывут уже в поддержке:
- Стабильность API. Проверьте, как часто в проекте выходят ломающие изменения и есть ли гайды по миграции — это прямые часы работы при обновлении.
- Наблюдаемость. Можно ли посмотреть, что именно модель получила на вход и куда пошёл маршрут. Без трассировки отладка агента превращается в гадание.
- Привязка к вендору. Часть фреймворков подталкивает к своим платным облачным сервисам для трейсинга и деплоя. Это не плохо само по себе, но заложите стоимость в расчёт заранее.
Ни один из четырёх не «побеждает» универсально — они решают разные задачи и всё чаще уживаются в одном проекте. Правильный вопрос не «какой фреймворк лучший», а «что у меня за сценарий и сколько контроля мне нужно».
1 Инструмент (tool) — функция или внешний сервис, который модель может вызвать: поиск, вычисление, запрос в API. Модель сама решает, когда и с какими аргументами его дёрнуть.
2 RAG (retrieval-augmented generation) — подход, при котором перед ответом система находит релевантные фрагменты в вашей базе и подкладывает их модели в контекст, чтобы она отвечала по актуальным данным.
3 Агент — конфигурация, где модель сама выбирает последовательность действий и инструментов для достижения цели, а не следует жёстко прописанному сценарию.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: LangChain — официальная документация, LlamaIndex — официальная документация
Частые вопросы
Нужен ли вообще фреймворк, или можно писать на голом SDK?
LangGraph заменяет LangChain?
Можно ли использовать несколько фреймворков в одном проекте?
Все ли эти фреймворки бесплатны?
Какой фреймворк выбрать для поиска по корпоративной базе документов?
Насколько стабильны API этих фреймворков?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.