AI · 7 мин чтения

LangChain на заказ или LlamaIndex: что выбрать для RAG-бота в 2026

LangChain на заказ - самый частый запрос, который мне присылают, когда клиент уже начитался статей про RAG и хочет бота с базой знаний, а не просто обёртку над GPT-чатом. Только на LangChain свет клином не сошёлся: за последние два года я собирал RAG-пайплайны и на LlamaIndex, и связкой обоих фреймворков сразу, и выбор между ними в 2026 году зависит не от моды, а от того, что у бота внутри - сложная логика с инструментами или простой поиск по документам с ответом от модели.

Что такое RAG-бот и почему фреймворк - это не мелочь

RAG (Retrieval-Augmented Generation) работает так: бот сначала ищет релевантные куски текста в базе знаний - векторной или гибридной, потом подставляет их в промпт модели и получает ответ, опирающийся на реальные данные компании, а не на догадки модели. Звучит просто, но 80% времени в таком проекте уходит не на сам вызов LLM, а на разбивку документов на чанки, генерацию эмбеддингов, хранение в векторной БД вроде Qdrant или pgvector, реранкинг результатов, память диалога и вызов внешних инструментов - проверить заказ, узнать статус доставки в СДЭК, обновить карточку в CRM. Именно эту начинку и решают LangChain и LlamaIndex, каждый по-своему.

LangChain на заказ - когда я беру этот стек

LangChain - фреймворк-оркестратор. Он не заточен именно под RAG, он заточен под цепочки вызовов и агентов: LLM дёргает инструменты, помнит контекст, сама решает, каким будет следующий шаг. Через LangGraph - граф состояний поверх LangChain - собираю ботов, которые не просто отвечают на вопрос по базе знаний, а проверяют статус заказа через API СДЭК, создают тикет в CRM, переключают диалог на человека при нестандартном запросе и держат длинную память переписки с пользователем.

Беру LangChain на заказ, когда в ТЗ больше одного инструмента и есть ветвление логики. Пример из практики: бот поддержки для интернет-магазина на WooCommerce с оплатой через Т‑Банк - пользователь в одном диалоге спрашивает про наличие товара (RAG по каталогу), статус оплаты (запрос к API Т‑Банка) и трек-номер посылки (запрос к СДЭК). Без агентного слоя LangGraph такую логику пришлось бы городить руками через десяток условий и следить, чтобы бот не терял контекст между шагами.

LangGraph для агентов с несколькими инструментами

Агентную часть в LangChain давно вынесли в отдельный пакет LangGraph - граф с узлами и условными переходами, который явно описывает, когда бот идёт в базу знаний, когда дёргает инструмент, а когда возвращает вопрос человеку. Это удобнее старого AgentExecutor, но добавляет порог входа: разработчику нужно разбираться не только в промпт-инжиниринге, но и в том, как строится сам граф состояний и где хранятся чекпоинты диалога.

LlamaIndex - фреймворк для данных, а не для агентов

LlamaIndex изначально называлась GPT Index и делалась под одну задачу - качественно проиндексировать данные и отдавать релевантные куски под LLM-ответ. В 2026 году это по-прежнему её сильная сторона: встроенные парсеры под PDF, DOCX, Confluence и Notion, продвинутые стратегии чанкинга - по заголовкам, по смыслу, с перекрытием - и готовые query engines с реранкингом и метаданными без необходимости писать всё это руками.

Беру LlamaIndex, когда задача - «ответь по документам компании» без сложной агентной логики: база знаний из двух-трёх сотен PDF с инструкциями, FAQ на сайте, архив статей блога. Для одного клиента с сайтом на Tilda делал поиск по каталогу услуг и статьям - LlamaIndex построила индекс из выгруженных страниц за пару дней, и бот отвечал точнее, чем при попытке собрать то же самое руками через LangChain-цепочки с самописным сплиттером.

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader("./docs").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()

response = query_engine.query("Как оформить возврат товара?")
print(response)

Пять строк - и рабочий поиск по базе готов. В LangChain аналогичный пайплайн собирается из отдельных кубиков: loader, splitter, embeddings, vector store, retriever, chain - гибче, но кода в полтора-два раза больше ради того же результата.

LangChain vs LlamaIndex: таблица по критериям

Критерий LangChain LlamaIndex
Основная задача Оркестрация агентов и цепочек вызовов Индексация и поиск по данным
Порог входа Выше, особенно с LangGraph Ниже для простого RAG
Tool calling Сильная сторона, много готовых интеграций Ограниченная, чаще докручивают LangChain или свой код
Парсинг документов Через сторонние loaders Встроенные парсеры и LlamaParse
Память диалога Гибкая, через чекпоинты LangGraph Базовая, менее гибкая
Наблюдаемость LangSmith Встраивается через внешние трейсеры
Когда выбираю Многошаговые агенты, несколько внешних API Чистый RAG по документам и базе знаний

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Три кейса из практики - как я выбираю стек

aiogram-бот поддержки для сервиса с базой инструкций на 400+ страниц: взял LlamaIndex для индексации документации и отдельно aiogram для самого Telegram-интерфейса - агентная логика тут не нужна, бот просто ищет ответ и присылает его с ссылкой на источник.

Автоматизация без бэкенда через n8n: LlamaIndex поднял как отдельный микросервис с REST-эндпоинтом для запросов к базе знаний, а n8n оркестрирует остальное - принимает вебхуки из Telegram, дергает CRM, отправляет уведомления в отдел продаж. Для клиентов, которые не хотят содержать сложный бэкенд, это рабочая связка.

Гибрид LangChain и LlamaIndex для юридической компании: LlamaIndex строит индекс по базе договоров и внутренних регламентов, а LangGraph поверх него решает, когда просто ответить из базы, а когда переслать запрос юристу или создать задачу в таск-трекере. По отдельности ни один из фреймворков такую задачу не закрывал - LlamaIndex не умеет в сложную маршрутизацию, а строить свой поисковый движок на LangChain дольше и дороже. Готовые заготовки под такие связки я собираю в библиотеке скриптов для интеграции RAG в Telegram-ботов, чтобы не писать каждый раз с нуля индексацию и обвязку.

Сроки и стоимость разработки RAG-бота

Чат-бот с базой знаний на RAG у меня стоит от 50 000 ₽ - сюда входит индексация документов, подбор векторной БД и базовый Telegram- или веб-интерфейс. Если нужна агентная логика с несколькими внешними API (СДЭК, оплата, CRM), это уже отдельная AI-интеграция от 50 000 ₽, а сложность растёт вместе с числом инструментов и сценариев. Голый Telegram-бот без RAG стоит от 30 000 ₽, автоматизация в n8n вокруг готового RAG-сервиса - от 25 000 ₽.

По срокам: чистый RAG на LlamaIndex под базу из пары сотен документов делаю за полторы-две недели. Агентный бот на LangGraph с тремя-четырьмя инструментами и тестированием сценариев - три-четыре недели. У студий и фрилансеров на бирже цены на такие проекты гуляют от 40 000 до 200 000 ₽ в зависимости от опыта команды с LLM-фреймворками - это не мои расценки, а рыночный ориентир, по которому можно сверяться при выборе исполнителя.

Гибридный подход и типичные ошибки при выборе

Самая частая ошибка - тащить LangChain туда, где хватило бы LlamaIndex, просто потому что про LangChain больше статей и обучающих курсов. В итоге получается в разы больше кода ради простого поиска по документам, а поддерживать это потом сложнее. Обратная ошибка - пытаться собрать на LlamaIndex агента с ветвлением и внешними вызовами: библиотека для этого не проектировалась, и решение получается хрупким при первом же нестандартном запросе пользователя.

Рабочий подход, который я использую чаще всего: LlamaIndex закрывает индексацию и поиск, LangChain (или голый LangGraph) - оркестрацию и работу с инструментами сверху. Для небольших ботов с одной базой знаний хватает одного LlamaIndex, для сервисов с логикой на несколько шагов вперёд закладываю оба фреймворка сразу, чтобы не переписывать архитектуру через полгода после запуска.

Чат-бот с базой знаний

AI / RAG

от 50 000 ₽

Подробнее →

Частые вопросы

Можно ли совместить LangChain и LlamaIndex в одном проекте?

Да, и на практике это рабочая связка: LlamaIndex отвечает за индексацию и retrieval, а LangChain или LangGraph поверх него - за агентную логику, вызов инструментов и маршрутизацию между сценариями. Такое разделение обычно проще поддерживать, чем пытаться закрыть всё одним фреймворком.

Что проще для новичка - LangChain или LlamaIndex?

LlamaIndex быстрее даёт результат для простого RAG - минимальный код, встроенные парсеры и готовые query engines. LangChain требует понимания цепочек, агентов и, если нужна сложная логика, ещё и LangGraph, поэтому порог входа выше, зато и возможностей для нестандартных сценариев больше.

Сколько стоит RAG-бот под ключ и от чего зависит цена?

У меня чат-бот с базой знаний на RAG стоит от 50 000 ₽, а если добавляются внешние интеграции вроде СДЭК, эквайринга или CRM - это отдельная AI-интеграция от 50 000 ₽ с ростом стоимости в зависимости от числа инструментов и сложности сценариев. На итоговую цену сильнее всего влияет не выбор фреймворка, а объём и структура базы знаний и количество внешних систем, с которыми должен работать бот.

Нужен ли LangGraph, если бот просто отвечает по базе знаний?

Нет, для такого сценария LangGraph - избыточная сложность. Простой RAG без ветвлений и внешних вызовов закрывает один LlamaIndex, а LangGraph имеет смысл добавлять, когда боту нужно принимать решения о следующем шаге, переключаться между инструментами или вести диалог с памятью на несколько шагов вперёд.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно