LangChain vs LlamaIndex vs Vercel AI SDK: что выбрать в 2026
В разное время я писала продакшн-код на всех трёх. LangChain — год, LlamaIndex — полгода, Vercel AI SDK — последние полтора года. Расскажу, что у каждого болит, что радует, и кому какой брать.
Эти библиотеки делают разное
Главная путаница: люди их сравнивают, как будто это конкуренты на одном поле. Это не так.
- LangChain — оркестратор. Цепочки, агенты, абстракции над всем подряд: модели, vector stores, document loaders, output parsers, retrievers.
- LlamaIndex — RAG-фреймворк. Сильнее всего в индексации документов, поиске, гибридных стратегиях извлечения.
- Vercel AI SDK — тонкий клиент-первого-уровня для LLM-провайдеров. Streaming, tool use, structured output, единый интерфейс.
Пересечения есть, но фокусы разные. Если у тебя задача «сделай RAG с нуля по 1000 PDF» — это LlamaIndex. Если задача «построй сложного агента с десятью шагами рассуждений» — LangChain. Если задача «дёрни Claude/GPT/Gemini единым кодом и засунь стрим в React» — Vercel AI SDK.
LangChain
Сила: огромное сообщество, документация на каждый чих, интеграции с сотнями инструментов. Если у тебя нестандартный stack (Weaviate, Cohere rerankers, MongoDB Atlas Vector), LangChain почти точно знает, как с этим работать.
Слабость: абстракции. LangChain любит обернуть всё в свои классы, и в результате простой запрос «давай отправлю промпт и получу ответ» превращается в цепочку из четырёх классов. Когда что-то ломается — копаешь полчаса, чтобы понять, на каком уровне.
Ещё минус — частые breaking changes. У меня в коде в 2024-м было 80 импортов из langchain.* Сейчас они все из @langchain/core, @langchain/community, @langchain/openai. Миграция заняла два дня.
LlamaIndex
Сила: RAG из коробки. SimpleDirectoryReader, VectorStoreIndex, query_engine — пять строк, и ты уже задаёшь вопросы своим документам. Дальше идут сложные стратегии: hybrid retrieval, reranking, query routing, multi-document agents.
Слабость: за пределами RAG слабее. Чисто диалоговые сценарии или сложные агенты в LlamaIndex выглядят неудобно. Документация большая, но скачет между Python и JS, и часто JS-документация отстаёт.
В моём проекте LlamaIndex выиграл сценарий «технические документы клиентов, 50000 файлов разных форматов»: его loader-ы лучше LangChain справились с PDF-таблицами, его HierarchicalNodeParser реально полезен для длинных текстов.
Vercel AI SDK
Сила: простота. Один интерфейс на все провайдеры, отличный Reactовский useChat, useCompletion и useObject. Streaming работает «из коробки». Tool use унифицирован.
import { generateText } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';
const { text } = await generateText({
model: anthropic('claude-sonnet-4-5'),
prompt: 'Расскажи про SSR',
});Это всё. Хочешь сменить провайдера — меняешь импорт. Хочешь structured output — generateObject. Хочешь стрим — streamText.
Слабость: не RAG-фреймворк и не оркестратор. Если тебе нужны цепочки рассуждений с десятью шагами, document loaders, выбор retrieval-стратегий — это придётся писать самой или брать LangChain/LlamaIndex параллельно.
Что я обычно беру
На фронт-проекты Next.js с LLM-фичей — Vercel AI SDK. Готовый useChat в React, structured output через Zod, переключение провайдеров одной строкой. Никаких лишних абстракций.
На бэковые сервисы с RAG — LlamaIndex или нативный код на pgvector + Vercel AI SDK для самих запросов. LangChain я уже почти не использую: оркестрацию мне проще написать руками 50 строк, чем разбираться в текущей версии Runnable, RunnableLambda и Runnable.
На сложных агентов — комбинирую. Логику агента (цикл, выбор инструмента, память) пишу руками или беру маленький фреймворк типа BAML/Mastra. Сами LLM-вызовы — через Vercel AI SDK.
Что у меня вызывало боль
- В LangChain случайно подключил deprecated-class и оно работало неделю в проде, пока не упало с непонятной ошибкой. Старый класс в новой версии прокидывал параметры в слегка другом порядке.
- В LlamaIndex JS-версии нашёл баг с парсингом markdown-таблиц. Завёл issue, пофиксили через 3 недели. На Python-версии бага нет.
- Vercel AI SDK 4 поломал API стрим-частей. Пришлось мигрировать с onFinish/onChunk на новые. На двух местах в проекте — около часа.
Скорость разработки
На простых задачах — Vercel AI SDK быстрее, потому что меньше абстракций. На сложных RAG-сценариях — LlamaIndex, потому что не нужно собирать половину инфраструктуры самой. На «одной общей системе со всем сразу» — LangChain даёт самый широкий охват, но цена входа высокая.
Что в итоге
В 2026-м моя дефолтная связка для нового проекта: Vercel AI SDK для всех LLM-вызовов, LlamaIndex или ручной pgvector-код для RAG, минимальная самописная оркестрация для агентов. LangChain я вынимаю только в редких случаях, когда нужна интеграция, которой нет нигде ещё.
Главный совет — не выбирай фреймворк сразу под всё. Возьми задачу, поставь её просто, реши минимально. Если задача RAG — LlamaIndex или собственный код. Если задача чат — Vercel AI SDK. Если задача оркестрация — пиши руками или бери LangChain. Не нужно «один правильный фреймворк навсегда».