LangChain, LlamaIndex, Haystack 2026: сравнение фреймворков AI-агентов и RAG
Автор: Silvana · Дата: 09.08.2026 · Verified: 01.09.2026 · Reading time: 24 минут · Prerequisite: —
LangChain, LlamaIndex и Haystack — три самых популярных open-source фреймворка для строительства LLM-приложений и AI-агентов в 2026 году. LangChain — универсальный оркестратор для agents, chains и RAG с поддержкой всех крупных LLM-провайдеров. LlamaIndex — RAG-first фреймворк с сильными коннекторами к источникам. Haystack от deepset — production-ready pipelines для поиска и Q&A. Ниже — таблица отличий, типовые use-cases для каждого, поддержка Python и JavaScript и когда стоит выбрать один фреймворк вместо другого.
- В 2026 году три самых популярных open-source фреймворка для строительства LLM-приложений — LangChain, LlamaIndex, Haystack. Каждый решает свою задачу, но области применения пересекаются.
- LangChain — универсальный оркестратор для любых LLM-приложений: agents, chains, RAG, memory, tools. Поддерживает всех крупных LLM-провайдеров (OpenAI, Anthropic, Google, Mistral, локальные модели). Python и JavaScript, богатая экосистема, стандарт индустрии по покрытию.
- LlamaIndex — фреймворк с фокусом на RAG (Retrieval-Augmented Generation): работа с данными, ingestion, indexing, retrieval, query engines. Изначально «GPT Index», сейчас — самая широкая коллекция интеграций для загрузки данных из внешних источников.
- Haystack — production-ready фреймворк от deepset (немецкая компания, специализируется на NLP). Модульные pipelines, чётко определённые компоненты, сильная фокусировка на надёжности и масштабируемости. Часто используется в enterprise.
- Все три Apache 2.0 или MIT, open-source, свободно устанавливаются через pip (npm для JS LangChain).
- Хостинг: все три работают в self-hosted режиме. У всех есть коммерческие облачные надстройки: LangSmith и LangGraph Cloud (LangChain), LlamaCloud (LlamaIndex), deepset Cloud (Haystack).
- Русскоязычная документация — ни у одного нет полной официальной. Есть переводы отдельных статей от сообщества, но основной ресурс — английские docs.
- В большинстве проектов используется один из трёх, но иногда их комбинируют: LangChain для оркестрации, LlamaIndex для RAG-части, Haystack для production-инстансов.
- Выбор зависит от задачи: универсальный агент → LangChain, специализированный RAG с большим объёмом данных → LlamaIndex, enterprise-production с фокусом на надёжность → Haystack.
Что это и зачем
Заголовок раздела «Что это и зачем»LLM-фреймворки (LangChain, LlamaIndex, Haystack) — это библиотеки, которые снимают с разработчика повторяющуюся работу по строительству приложений поверх больших языковых моделей. Без фреймворка ты сам пишешь: обёртки над API моделей, логику retrieval, работу с векторными БД, оркестрацию agent-циклов, обработку ошибок, промежуточное кеширование.
С фреймворком ты работаешь на более высоком уровне абстракции: подключаешь готовые компоненты, соединяешь их в pipeline или chain, получаешь работающее приложение за часы вместо недель.
Три главных фреймворка:
- LangChain — самый широкий и универсальный. Строит любые LLM-приложения: агенты, RAG, аналитику, ассистенты, автоматизацию. Стандарт индустрии по покрытию.
- LlamaIndex — специализация на RAG (Retrieval-Augmented Generation). Максимально сильные механики работы с данными: загрузка, индексация, retrieval, query engines.
- Haystack — фреймворк от deepset для production-приложений. Фокус на модульности, надёжности, масштабируемости. Часто выбирается в enterprise.
Зачем это нужно тебе.
- Скорость разработки. Проект, который на «голых» API занимает 2-4 недели, на фреймворке — 3-7 дней.
- Best practices из коробки. Retry-логика, кеширование, streaming, обработка длинного контекста, prompt-инжиниринг — всё уже реализовано.
- Экосистема. Тысячи готовых интеграций с моделями, векторными БД, документными источниками, инструментами.
- Сообщество. Активные Discord, форумы, GitHub-обсуждения, туториалы, курсы.
- Vendor-neutral. Работают с моделями любого провайдера. При смене провайдера код меняется минимально.
LangChain: универсальный оркестратор
Заголовок раздела «LangChain: универсальный оркестратор»LangChain — фреймворк для строительства LLM-приложений, запущен в октябре 2022. Одна из первых и самых популярных библиотек в этой категории.
Позиционирование (по официальному сайту langchain.com): «Build applications with LLMs through composability». То есть — «строй приложения на LLM через композицию компонентов».
Ключевые компоненты:
- Model I/O: обёртки над всеми крупными LLM-провайдерами. Chat models, prompt templates, output parsers. Единый интерфейс для OpenAI, Anthropic, Google, Mistral, Cohere, Hugging Face, Ollama и десятков других.
- Retrieval: document loaders (загрузка из 100+ источников), text splitters, embeddings (все провайдеры), vector stores (интеграции с 50+ векторными БД).
- Chains: композиция моделей и инструментов в последовательности. LangChain Expression Language (LCEL) — декларативный синтаксис для описания chains.
- Agents: конструкции для агентов с доступом к инструментам. Reactive Agents, Plan-and-Execute agents, Multi-Agent systems.
- Memory: механизмы хранения контекста между сессиями (buffer, summary, entity memory).
- Callbacks: система хуков для логирования, мониторинга, стриминга ответа.
LangGraph — отдельный, более низкоуровневый инструмент от той же команды. Позволяет строить stateful agent-приложения как графы с чёткими переходами между состояниями. Используется, когда agent-логика сложнее простого ReAct-цикла.
LangSmith — облачная платформа для трейсинга, отладки, оценки LLM-приложений. Показывает всю цепочку вызовов внутри chain или agent, помогает найти узкие места. Есть free-tier, платные планы от 30$/мес.
LangChain Hub — репозиторий готовых промптов и chains, шарящихся сообществом. Экономит время на типовые задачи.
Экосистема LangChain:
- Python — основная и самая полная реализация.
- JavaScript/TypeScript — тоже полноценная, немного отстаёт по свежим фичам.
- Свежий тренд 2025-2026 — LangChain Community и LangChain Partners (интеграции с конкретными вендорами вынесены в отдельные пакеты для гибкости).
Установка Python:
pip install langchain langchain-anthropic langchain-openaiМинимальный пример (LangChain Python):
from langchain_anthropic import ChatAnthropicfrom langchain_core.prompts import ChatPromptTemplate
model = ChatAnthropic(model="claude-sonnet-5")prompt = ChatPromptTemplate.from_messages([ ("system", "You are a helpful assistant."), ("user", "{question}")])
chain = prompt | modelresponse = chain.invoke({"question": "What is LangChain?"})print(response.content)Что здесь происходит:
- Создаём модель (Anthropic Claude Sonnet).
- Задаём prompt template.
- Соединяем через оператор
|(LCEL — LangChain Expression Language). - Вызываем chain с input, получаем ответ.
Простой RAG на LangChain:
from langchain_community.document_loaders import WebBaseLoaderfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_openai import OpenAIEmbeddingsfrom langchain_community.vectorstores import Chromafrom langchain_anthropic import ChatAnthropicfrom langchain.chains import RetrievalQA
# Загружаем данныеloader = WebBaseLoader("https://example.com/docs")docs = loader.load()
# Разбиваем на chunkssplitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)chunks = splitter.split_documents(docs)
# Создаём vector storeembeddings = OpenAIEmbeddings()vectorstore = Chroma.from_documents(chunks, embeddings)
# Создаём RAG chainmodel = ChatAnthropic(model="claude-sonnet-5")qa_chain = RetrievalQA.from_chain_type( llm=model, retriever=vectorstore.as_retriever(), return_source_documents=True)
# Запрашиваемresult = qa_chain.invoke({"query": "What are the main features?"})print(result["result"])За 20 строк — работающий RAG. Без фреймворка на «голых» API это было бы 100-200 строк.
LlamaIndex: RAG-first подход
Заголовок раздела «LlamaIndex: RAG-first подход»LlamaIndex — фреймворк с фокусом на RAG (Retrieval-Augmented Generation). Начинался как «GPT Index» в 2022, потом переименовался. Основная идея: максимально глубокий и удобный toolkit для строительства приложений, которые «знают» твои данные.
Позиционирование (llamaindex.ai): «The leading framework for connecting your data to LLMs».
Ключевые концепции LlamaIndex:
- Documents и Nodes: документ — сырьё, попадающее в систему; node — обработанный фрагмент документа с метаданными.
- Data connectors (loaders): интеграции для загрузки данных из внешних источников. LlamaHub — репозиторий 200+ готовых loaders для API, баз данных, файлов, SaaS.
- Indexes: структуры для организации данных под retrieval. Vector Store Index (векторное представление), List Index (последовательный), Tree Index (иерархический), Keyword Index, Knowledge Graph Index.
- Retrievers: извлекают релевантные nodes из index по запросу.
- Query engines: соединяют retriever и LLM для генерации ответа с использованием извлечённых данных.
- Chat engines: query engines с памятью для многошаговых диалогов.
- Agents: конструкции агентов, специализированные под работу с данными (не с общим инструментарием как LangChain).
LlamaHub — репозиторий сообщества с сотнями data loaders. Загрузка из Notion, Confluence, Airtable, PDF, YouTube-транскриптов, GitHub, S3 — всё это готовые модули.
LlamaCloud — облачная платформа для managed RAG. Загружаешь документы через веб-интерфейс, LlamaCloud индексирует, ты обращаешься через API. Полезно, если не хочешь администрировать инфру и векторную БД.
Особенности LlamaIndex по сравнению с LangChain:
- Более глубокий toolkit для RAG. Query engines, response synthesizers, retrievers — больше готовых стратегий.
- Слабее в области агентов и оркестрации сложных workflow (LangChain здесь сильнее).
- Проще для чисто RAG-задач: меньше boilerplate, более прямой API.
- Активная разработка, конкурентоспособные бенчмарки на RAG-задачах.
Установка:
pip install llama-indexМинимальный пример (LlamaIndex):
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
# Загружаем документы из папкиdocuments = SimpleDirectoryReader("data").load_data()
# Создаём индексindex = VectorStoreIndex.from_documents(documents)
# Query enginequery_engine = index.as_query_engine()
# Запросresponse = query_engine.query("What is the main topic?")print(response)По простоте — короче, чем LangChain для того же RAG-кейса. LlamaIndex скрывает больше деталей, если ты доверяешь дефолтам.
Продвинутый пример: query engine с re-ranking:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReaderfrom llama_index.core.postprocessor import SentenceTransformerRerankfrom llama_index.llms.anthropic import Anthropic
llm = Anthropic(model="claude-sonnet-5")
documents = SimpleDirectoryReader("data").load_data()index = VectorStoreIndex.from_documents(documents)
# Retriever возвращает top-10, потом re-ranker выбирает top-3rerank = SentenceTransformerRerank( model="cross-encoder/ms-marco-MiniLM-L-2-v2", top_n=3)
query_engine = index.as_query_engine( similarity_top_k=10, node_postprocessors=[rerank], llm=llm)
response = query_engine.query("What is the main topic?")print(response)Здесь мы применили две продвинутые техники (retrieval с большим окном + re-ranking) — LlamaIndex это делает через компоненты, не заставляя писать всё с нуля.
Haystack: production-ready pipelines
Заголовок раздела «Haystack: production-ready pipelines»Haystack — open-source фреймворк от deepset (немецкая AI-компания, основана в 2018). Один из старейших NLP-фреймворков, изначально фокусировался на search и question-answering, потом расширился до полноценной LLM-платформы.
Позиционирование (haystack.deepset.ai): «An end-to-end LLM framework for building AI-powered applications like question answering, semantic search, agents, and more».
Ключевые концепции Haystack 2.x (актуальная версия 2026):
- Components: атомарные строительные блоки. Каждый component имеет чёткие inputs/outputs. Примеры: DocumentSplitter, EmbeddingRetriever, PromptBuilder, OpenAIGenerator, AnswerBuilder.
- Pipelines: DAG (directed acyclic graph) из components. Ты явно объявляешь, какие components есть в pipeline и как они соединены.
- Document stores: абстракция над векторными БД. Есть in-memory, Elasticsearch, OpenSearch, Weaviate, Pinecone, Qdrant, Chroma и другие.
- Generators: обёртки над LLM (OpenAI, Anthropic, Hugging Face, Cohere, локальные модели через Ollama и другие).
- Retrievers: извлекают документы из document stores (semantic, keyword, hybrid).
Особенности Haystack:
- Explicit pipelines. Ты декларативно объявляешь весь pipeline, включая маппинги данных между components. Это громоздче, но прозрачнее и легче отлаживать.
- Type safety. Components имеют объявленные типы входов и выходов, ошибки конфигурации ловятся на этапе построения pipeline, а не в runtime.
- Deployment. Haystack хорошо приспособлен для деплоя как отдельного сервиса. Есть Haystack API — REST-обёртка над pipeline.
- Оценка и мониторинг. Встроенные инструменты для evaluation: как measure точность retrieval, качество ответов, latency.
- Enterprise-focused. deepset позиционирует Haystack как готовый для production. Меньше «magic», больше явных конструкций.
deepset Cloud — коммерческое SaaS-предложение от deepset поверх Haystack. Managed hosting, UI для non-technical users, enterprise-features.
Установка:
pip install haystack-aiМинимальный пример (Haystack):
from haystack import Pipelinefrom haystack.document_stores.in_memory import InMemoryDocumentStorefrom haystack.components.embedders import SentenceTransformersDocumentEmbedderfrom haystack.components.embedders import SentenceTransformersTextEmbedderfrom haystack.components.retrievers.in_memory import InMemoryEmbeddingRetrieverfrom haystack.components.builders import PromptBuilderfrom haystack.components.generators import OpenAIGeneratorfrom haystack import Document
# Готовим документыdocuments = [ Document(content="LangChain is a framework for LLM applications."), Document(content="LlamaIndex focuses on RAG applications."), Document(content="Haystack is a production-ready LLM framework.")]
# Document store и embedderdocument_store = InMemoryDocumentStore()doc_embedder = SentenceTransformersDocumentEmbedder()doc_embedder.warm_up()documents_with_embeddings = doc_embedder.run(documents=documents)["documents"]document_store.write_documents(documents_with_embeddings)
# Pipelinetext_embedder = SentenceTransformersTextEmbedder()retriever = InMemoryEmbeddingRetriever(document_store=document_store)prompt_template = """Given the context, answer the question.Context: {% for doc in documents %}{{ doc.content }}{% endfor %}Question: {{ question }}Answer:"""prompt_builder = PromptBuilder(template=prompt_template)generator = OpenAIGenerator(model="gpt-4o")
pipeline = Pipeline()pipeline.add_component("text_embedder", text_embedder)pipeline.add_component("retriever", retriever)pipeline.add_component("prompt_builder", prompt_builder)pipeline.add_component("generator", generator)
# Соединения между componentspipeline.connect("text_embedder.embedding", "retriever.query_embedding")pipeline.connect("retriever", "prompt_builder.documents")pipeline.connect("prompt_builder", "generator")
# Запускresult = pipeline.run({ "text_embedder": {"text": "What is LangChain?"}, "prompt_builder": {"question": "What is LangChain?"}})print(result["generator"]["replies"][0])Больше кода, чем в LlamaIndex или LangChain, но всё явно: каждый шаг описан, соединения понятны, легко отлаживать.
Сравнение по критериям
Заголовок раздела «Сравнение по критериям»По простоте старта:
- LlamaIndex — самый лаконичный для RAG-кейсов. 5-10 строк на минимальный пример.
- LangChain — 10-20 строк на минимальный RAG, но универсальнее.
- Haystack — 30-50 строк на минимальный RAG, но явнее и надёжнее.
По ширине покрытия (что можно построить):
- LangChain — универсал. Chat-приложения, агенты, RAG, аналитика, автоматизация — всё.
- LlamaIndex — RAG-специалист. Всё что связано с данными и извлечением — сильно. Агенты — тоже есть, но менее развиты.
- Haystack — search + QA + RAG + агенты. Универсальность ближе к LangChain, но с более консервативным подходом.
По зрелости и стабильности API:
- Haystack — самый стабильный, разработка более консервативная. Haystack 2.x — полностью переработанная версия с чётким типизированным API.
- LlamaIndex — стабильный API в core-функционале, экспериментальные фичи периодически меняются.
- LangChain — самый быстрый темп изменений. Периодически breaking changes, требует внимания при обновлениях.
По документации и learning resources:
- LangChain — самая обширная документация, много туториалов, курсов, YouTube-контента.
- LlamaIndex — хорошая документация, активный блог, много готовых RAG-туториалов.
- Haystack — качественная официальная документация, но экосистема сторонних материалов меньше.
По интеграциям с векторными БД:
- LangChain — 50+ интеграций, включая почти все популярные и региональные БД.
- LlamaIndex — 40+ интеграций.
- Haystack — 15+ основных интеграций (Elasticsearch, OpenSearch, Weaviate, Pinecone, Qdrant, Chroma, Milvus, pgvector и другие).
По поддержке LLM-провайдеров:
- Все три поддерживают всех крупных: OpenAI, Anthropic, Google, Mistral, Cohere, Hugging Face, локальные модели через Ollama/vLLM.
- LangChain — самое широкое покрытие мелких провайдеров.
- Haystack — фокус на самых используемых, качество интеграции высокое.
По цене:
- Все три — open-source (Apache 2.0 или MIT), бесплатны.
- Cloud-платформы (LangSmith, LlamaCloud, deepset Cloud) — от 30$/мес до enterprise-планов по договорённости.
По языкам:
- LangChain — Python + JavaScript/TypeScript (обе версии полноценные, но JS отстаёт на 1-2 месяца по свежим фичам).
- LlamaIndex — Python + TypeScript (TS-версия менее полная, догоняет).
- Haystack — только Python.
Когда какой выбирать
Заголовок раздела «Когда какой выбирать»LangChain, если:
- Тебе нужен универсальный фреймворк для строительства разных типов LLM-приложений (агенты, RAG, ассистенты, автоматизация).
- Ты хочешь максимальную ширину покрытия — интеграции с любыми провайдерами и инструментами.
- Тебе комфортно работать с быстро развивающимся фреймворком (плюс — свежие фичи; минус — breaking changes).
- Работа на JavaScript/TypeScript, а не только Python.
- Строишь агентов со сложным поведением — LangGraph особенно силён.
LlamaIndex, если:
- Основная задача — RAG на своих данных (документы, БД, SaaS-источники).
- Нужны продвинутые техники retrieval: hybrid search, re-ranking, response synthesis, query decomposition.
- Много разных data loaders, нужна широкая палитра источников через LlamaHub.
- Хочешь минимум boilerplate для типовых RAG-задач.
Haystack, если:
- Строишь production-приложение с высокими требованиями к надёжности.
- Нужна прозрачная и типизированная архитектура pipeline.
- Работаешь в enterprise-контексте, где важна долгосрочная стабильность API.
- Планируешь деплой как отдельного сервиса с REST API.
- Нужны встроенные инструменты evaluation.
Комбинирование: возможно, но не всегда оправдано. Иногда команды используют LangChain как основной фреймворк, а LlamaIndex — как специализированную библиотеку для сложных RAG-компонентов, вызываемых из LangChain.
Python vs JavaScript
Заголовок раздела «Python vs JavaScript»Для всех трёх фреймворков Python — основной язык. Причины:
- Python — стандарт для ML и data-science, большинство ML-библиотек нативно поддерживают Python.
- Многие интеграции (векторные БД, embeddings-модели) сначала появляются в Python.
- Экосистема AI research преимущественно Python.
JavaScript/TypeScript:
- LangChain.js — полноценная реализация, немного отстаёт от Python по свежим фичам (обычно на 1-2 месяца).
- LlamaIndex.TS — активно развивается, но покрытие меньше Python-версии. Часть фич доступна только в Python.
- Haystack — только Python. JS-версии нет и не планируется на момент 2026.
Когда брать JS-версии:
- Приложение полностью на TypeScript/Node.js, не хочется вводить Python в стек.
- Строишь serverless на Vercel/Cloudflare Workers/AWS Lambda — там TS обычно удобнее.
- Frontend-разработка (RAG внутри Electron-app, браузерное приложение).
Если Python в стеке уже есть или его можно ввести — Python-версии предпочтительнее из-за большей функциональности и стабильности.
Хостинг: self-hosted vs cloud
Заголовок раздела «Хостинг: self-hosted vs cloud»Self-hosted. Все три фреймворка можно запускать где угодно: локально, на VPS, в контейнере, в облаке. Требования минимальные: Python 3.10+, оперативной памяти столько, сколько нужно для загруженной модели (для embedding-моделей — от 1GB, для локальных LLM — от 8GB и больше).
Managed cloud-платформы:
- LangSmith — облачная платформа от LangChain. Основные функции: трейсинг цепочек и агентов, отладка, evaluation, monitoring. Free-tier для тестов, платные планы от 30$/мес.
- LangGraph Cloud — hosted-версия LangGraph, платформы для агентов. Deploy агентов как managed services с автоскейлингом и мониторингом.
- LlamaCloud — от LlamaIndex. Managed RAG: загружаешь документы через веб, LlamaCloud индексирует, обращаешься через API. Не нужно поднимать векторную БД.
- deepset Cloud — от deepset. Полнофункциональная платформа с UI для non-technical пользователей, enterprise-фичи, SLA.
Когда что:
- Self-hosted — контроль над данными, экономия при большом объёме, требования compliance.
- Cloud-платформы — быстрый старт, не хочется управлять инфрой, нужны observability и debugging tools из коробки, готовность к оплате.
Использование из России
Заголовок раздела «Использование из России»Все три фреймворка — Python/JS библиотеки, устанавливаются из PyPI/npm, работают отовсюду без ограничений.
Что может быть проблемой:
- LLM-провайдеры. OpenAI/Anthropic/Google API требуют иностранного биллинга. Работать с российскими аналогами (YandexGPT, GigaChat) — через кастомные обёртки или community-integrations (не всегда качественные).
- Векторные БД. Cloud-сервисы (Pinecone, Weaviate Cloud, Qdrant Cloud) — тоже иностранный биллинг. Self-hosted альтернативы (Qdrant Docker, ChromaDB, pgvector, Milvus) работают в РФ без проблем.
- Embedding-модели. OpenAI Embeddings — иностранный биллинг. Open-source альтернативы (sentence-transformers, BAAI/bge, cohere через посреднические сервисы) — работают локально или через API с любым биллингом.
- Cloud-платформы (LangSmith, LlamaCloud, deepset Cloud). Оплата иностранной картой.
Оптимальный стек для РФ:
- Фреймворк — LangChain / LlamaIndex / Haystack, любой (self-hosted).
- LLM — локальные модели через Ollama (Qwen, Llama, Mistral) или API через YandexGPT/GigaChat.
- Embedding-модели — sentence-transformers локально.
- Векторная БД — Qdrant, ChromaDB, pgvector — все self-hosted.
Такой стек полностью изолирован, работает офлайн, никаких иностранных биллингов не требуется. Компромисс — качество моделей: локальные и российские LLM пока уступают Claude/GPT-4 на сложных задачах.
Обучающие материалы
Заголовок раздела «Обучающие материалы»LangChain:
- Официальная документация — python.langchain.com, langchain.com.
- YouTube-канал LangChain — обзоры фич, туториалы.
- LangChain Academy — бесплатные курсы от команды.
- Книга «Generative AI with LangChain» (в некоторых издательствах) — систематизированное введение.
LlamaIndex:
- Официальная документация — docs.llamaindex.ai.
- YouTube и блог LlamaIndex — регулярные туториалы.
- Coursera и DeepLearning.AI — совместные курсы по RAG с LlamaIndex.
Haystack:
- Документация — docs.haystack.deepset.ai.
- Haystack Tutorials — набор Jupyter-ноутбуков с практическими примерами.
- deepset академия — вебинары и obučающие материалы для enterprise.
Общие ресурсы:
- Курсы DeepLearning.AI (Andrew Ng) — есть отдельные курсы по каждому из трёх фреймворков.
- YouTube — тысячи туториалов на английском, десятки на русском.
- Reddit r/LangChain, r/LocalLLaMA — активные сообщества для вопросов.
Русскоязычные материалы: ограниченные. Есть отдельные статьи на Habr, курсы от энтузиастов, но полной системной документации на русском нет. Основной ресурс — английские docs.
Best practices
Заголовок раздела «Best practices»Общие рекомендации при работе с любым из трёх фреймворков:
- Начни с малого. Не строй сразу сложного агента с 10 инструментами и памятью. Собери минимальный RAG или простую chain, отладь, потом расширяй.
- Логируй всё. Используй callbacks/hooks/traces фреймворка. Без наблюдения за тем, что делает LLM, отладка невозможна.
- Тестируй промпты отдельно. Prompt engineering — половина успеха. Держи тесты на промптах, чтобы изменения не ломали качество.
- Не полагайся на один provider. Пиши код так, чтобы можно было переключить LLM на другого вендора без переписывания половины проекта. Все три фреймворка это позволяют.
- Кешируй агрессивно. LLM-вызовы дорогие. Кешируй embeddings, retrieval-результаты, часто используемые LLM-ответы. Все три фреймворка поддерживают кеширование.
- Мониторь стоимость. Установи алерты на объём токенов. Легко случайно уйти в перерасход при агентных сценариях с циклами.
- Ограничивай длину контекста. Даже если модель поддерживает 200k токенов, использовать весь контекст обычно дорого и снижает качество. Разумный размер — 20-50k токенов на большинство сценариев.
Кому подходит
Заголовок раздела «Кому подходит»LangChain подходит:
- Разработчикам, строящим универсальные LLM-приложения.
- Проектам, где нужна максимальная гибкость и широкое покрытие интеграций.
- Командам с JavaScript/TypeScript в стеке.
- Стартапам, которым важна скорость разработки и готовность к экспериментам.
LlamaIndex подходит:
- Проектам с фокусом на RAG и работу с данными.
- Разработчикам, которым нужен минимум boilerplate для типовых RAG-задач.
- Задачам с большими объёмами документов и сложными retrieval-стратегиями.
- Продуктам, где основная ценность — «знание твоих данных».
Haystack подходит:
- Enterprise-проектам с высокими требованиями к надёжности.
- Командам, ценящим прозрачную и типизированную архитектуру.
- Инсталляциям, где важна долгосрочная стабильность API.
- Search-приложениям и QA-системам, где нужны продвинутые retrieval и evaluation инструменты.
Какой фреймворк выбрать для RAG?
Заголовок раздела «Какой фреймворк выбрать для RAG?»Для чистого RAG чаще всего LlamaIndex — у него самый глубокий toolkit для этой задачи: продвинутые query engines, response synthesizers, широкая палитра retrievers, много готовых стратегий (hybrid search, re-ranking, query decomposition). LangChain тоже подходит для RAG, но требует чуть больше кода и настройки. Haystack — если нужен production-grade RAG с прозрачной и типизированной архитектурой.
Есть ли русскоязычная документация?
Заголовок раздела «Есть ли русскоязычная документация?»Полной официальной русскоязычной документации нет ни у одного из трёх фреймворков. Есть переводы отдельных статей и туториалов от сообщества (Habr, тематические блоги, YouTube-каналы), но основной ресурс — английские docs. Если английский — блокер, можно использовать перевод через AI-ассистента (тот же ChatGPT или Claude).
Можно ли использовать несколько фреймворков одновременно?
Заголовок раздела «Можно ли использовать несколько фреймворков одновременно?»Технически да — все три работают в одном Python-процессе без конфликтов. Практически имеет смысл только в специфических случаях: например, LangChain как оркестратор агентов, а LlamaIndex как специализированная RAG-библиотека, вызываемая изнутри LangChain-агента. Обычно проще выбрать один и использовать его.
Какие есть обучающие материалы для новичка?
Заголовок раздела «Какие есть обучающие материалы для новичка?»DeepLearning.AI (Andrew Ng) — короткие бесплатные курсы по каждому из фреймворков. LangChain Academy — официальные курсы от команды. YouTube-каналы фреймворков — обзоры фич и туториалы. Reddit r/LangChain — активное сообщество для вопросов. На русском — статьи на Habr и курсы от индивидуальных авторов, но систематизированной программы нет.
Работают ли фреймворки с российскими LLM (YandexGPT, GigaChat)?
Заголовок раздела «Работают ли фреймворки с российскими LLM (YandexGPT, GigaChat)?»Официальных integrations нет ни у LangChain, ни у LlamaIndex, ни у Haystack. Community-integrations существуют, но качество и поддержка сильно зависят от конкретной реализации. Альтернатива — обернуть российский LLM в custom LLM-класс фреймворка вручную (это 30-50 строк кода). Или использовать локальные open-source LLM через Ollama — их поддержка есть везде.
Какой фреймворк проще для новичка?
Заголовок раздела «Какой фреймворк проще для новичка?»LlamaIndex обычно легче стартовать для RAG-задач — меньше кода и понятный API. LangChain — более крутая кривая обучения, но много туториалов и большое сообщество, что компенсирует. Haystack — самый явный и «серьёзный» API, требует больше усилий на входе, но потом легче поддерживать.
Что такое LangGraph?
Заголовок раздела «Что такое LangGraph?»LangGraph — отдельный, более низкоуровневый инструмент от команды LangChain для строительства stateful agent-приложений как графов состояний. Используется, когда нужна более сложная логика агента, чем простой ReAct-цикл: явные состояния, переходы, условия, циклы. Полезно для сложных мультишаговых процессов с ветвлениями.
В чём разница между LangChain и LangSmith?
Заголовок раздела «В чём разница между LangChain и LangSmith?»LangChain — библиотека для строительства LLM-приложений (Python/JS). LangSmith — облачная платформа для observability и debugging этих приложений. LangSmith показывает всю цепочку вызовов внутри chain или agent, помогает отлаживать промпты, evaluation. LangChain можно использовать без LangSmith (все traces на локальный logger), но с LangSmith отладка удобнее.
Есть ли платные версии этих фреймворков?
Заголовок раздела «Есть ли платные версии этих фреймворков?»Сами фреймворки — open-source (Apache 2.0 или MIT), бесплатны. Платные — это надстройки: LangSmith и LangGraph Cloud (LangChain), LlamaCloud (LlamaIndex), deepset Cloud (Haystack). Они дают managed hosting, дополнительные фичи, enterprise-поддержку. Использование фреймворков без cloud-платформ не ограничено.
Можно ли строить агентов на LlamaIndex или обязательно нужен LangChain?
Заголовок раздела «Можно ли строить агентов на LlamaIndex или обязательно нужен LangChain?»Можно. У LlamaIndex есть свой toolkit для агентов: ReActAgent, FunctionAgent, ChatAgent и другие. Он менее развит, чем в LangChain, но покрывает большинство типовых кейсов. Для сложных агентных систем с длинной оркестрацией LangChain (особенно LangGraph) обычно предпочтительнее. Для простых агентов, работающих преимущественно с данными — LlamaIndex достаточен.
Какая производительность у трёх фреймворков?
Заголовок раздела «Какая производительность у трёх фреймворков?»Все три построены поверх одних и тех же LLM API — основная latency и стоимость определяются моделью, а не фреймворком. Overhead самих фреймворков минимальный (миллисекунды). При работе с большими объёмами данных или высокими concurrent-нагрузками детали реализации могут иметь значение: Haystack, спроектированный под production, обычно чуть лучше масштабируется из коробки; LlamaIndex быстрее для оптимизированных RAG-путей.
Что если фреймворк изменит API и мой код сломается?
Заголовок раздела «Что если фреймворк изменит API и мой код сломается?»Все три фреймворка следуют semver в теории, но в практике breaking changes случаются, особенно в LangChain (быстрое развитие). Best practice: фиксировать точные версии в requirements.txt / package.json; регулярно обновлять и тестировать; читать CHANGELOG перед обновлениями; иметь тесты покрывающие основную функциональность. Haystack наиболее консервативен в изменениях API.
Какие векторные БД лучше использовать?
Заголовок раздела «Какие векторные БД лучше использовать?»Зависит от масштаба и требований. Для маленьких проектов и разработки — ChromaDB или FAISS (in-memory, минимум настройки). Для production self-hosted — Qdrant, Weaviate, Milvus, pgvector (в Postgres). Для managed cloud — Pinecone, Weaviate Cloud, Qdrant Cloud. Все три фреймворка поддерживают все популярные векторные БД, выбор зависит от твоих задач.
Есть ли готовые шаблоны приложений?
Заголовок раздела «Есть ли готовые шаблоны приложений?»LangChain — да, LangChain Templates и LangSmith Prompt Hub. LlamaIndex — да, RAG-кейсы и tutorials в docs. Haystack — да, examples на GitHub, официальные tutorials. Обычно можно взять готовый пример близкий к твоей задаче и адаптировать.
Как использовать GPU для локальных моделей?
Заголовок раздела «Как использовать GPU для локальных моделей?»Через Ollama или vLLM. Все три фреймворка поддерживают Ollama как LLM-provider. Настраиваешь Ollama на GPU-машине, указываешь endpoint в конфиге фреймворка. Для более серьёзных нагрузок — vLLM (быстрый inference-сервер для локальных LLM), тоже интегрируется со всеми тремя фреймворками.
Можно ли использовать эти фреймворки на serverless (AWS Lambda, Vercel)?
Заголовок раздела «Можно ли использовать эти фреймворки на serverless (AWS Lambda, Vercel)?»Технически да, но с ограничениями: cold start, memory limits, timeout. LangChain.js и LlamaIndex.TS лучше подходят для serverless (Node.js runtimes). Python-версии тоже работают, но упаковка со всеми зависимостями может быть тяжёлой (100-500MB). Для production serverless обычно используют облегчённые setup: только нужные интеграции, минимум зависимостей.
Актуальность
Заголовок раздела «Актуальность»Актуально на 09.08.2026. Модели, цены и условия доступа меняются часто. Перед бизнес-решением всегда сверяйся с первоисточником — все ссылки в разделе Sources ниже.
Sources
Заголовок раздела «Sources»- https://www.langchain.com — главная страница LangChain (проверено 09.08.2026)
- https://python.langchain.com — Python-документация LangChain (проверено 09.08.2026)
- https://js.langchain.com — JavaScript/TypeScript документация LangChain (проверено 09.08.2026)
- https://github.com/langchain-ai/langchain — репозиторий LangChain, релизы, changelog (проверено 09.08.2026)
- https://smith.langchain.com — LangSmith: облачная платформа для observability (проверено 09.08.2026)
- https://langchain-ai.github.io/langgraph — документация LangGraph (проверено 09.08.2026)
- https://www.llamaindex.ai — главная страница LlamaIndex (проверено 09.08.2026)
- https://docs.llamaindex.ai — официальная документация LlamaIndex (проверено 09.08.2026)
- https://llamahub.ai — LlamaHub: репозиторий data loaders и tools (проверено 09.08.2026)
- https://cloud.llamaindex.ai — LlamaCloud: managed RAG (проверено 09.08.2026)
- https://haystack.deepset.ai — главная страница Haystack (проверено 09.08.2026)
- https://docs.haystack.deepset.ai — официальная документация Haystack (проверено 09.08.2026)
- https://github.com/deepset-ai/haystack — репозиторий Haystack, changelog (проверено 09.08.2026)
- https://www.deepset.ai/deepset-cloud — deepset Cloud: enterprise-платформа поверх Haystack (проверено 09.08.2026)