LangChainMiddleExperience
Когда LangChain действительно оправдан в LLM-приложении, а когда прямой вызов LLM API будет проще и надёжнее?
LangChain оправдан для RAG, мультиагентных систем и быстрых прототипов с несколькими моделями; прямой SDK лучше подходит для одиночных LLM-вызовов, жёстких SLA по latency и долгосрочной поддержки простых сценариев.
Когда LangChain оправдан
LangChain стоит выбирать, когда задача попадает в его сильные стороны:
- RAG-пайплайны: LangChain предоставляет готовые lоадеры, сплиттеры, vector store интеграции и retriever API — за несколько строк получаешь рабочий прототип.
- Мультиагентные системы с инструментами: если агент должен динамически выбирать из 5+ инструментов,
AgentExecutorили LangGraph дают ReAct-цикл без написания с нуля. - Мультимодельная поддержка: нужно переключаться между OpenAI, Anthropic, Gemini, локальными Ollama-моделями — LangChain даёт единый интерфейс
ChatModel. - Быстрый прототип: команда хочет за 2–3 дня показать рабочую демо с чатом по документам — экосистема закрывает 80% задач из коробки.
Когда прямой вызов API проще и надёжнее
- Один LLM-вызов без инструментов: если задача — «отправить промпт, получить ответ», прямой SDK (openai, anthropic) в 5 строках проще, чем цепочка LangChain.
- Жёсткие требования к latency: LangChain добавляет накладные расходы на сериализацию, callbacks, middleware — для hot path лучше голый HTTP.
- Маленькая команда, долгая поддержка: LangChain часто меняет API (v0.1 → v0.2 → LCEL → LangGraph) — технический долг от миграций может превысить изначальную экономию.
- Специфический формат вывода: если нужна строгая JSON-схема — проще использовать structured outputs OpenAI напрямую, чем настраивать
PydanticOutputParser. - Низкая нагрузка, простой сценарий: одна функция с
client.chat.completions.create()без зависимостей на 50+ пакетов LangChain-экосистемы.
Альтернативы и компромиссы
- LlamaIndex — лучше оптимизирован для RAG и индексирования больших корпусов документов; LangChain шире по агентской части.
- LangGraph — официальный преемник AgentExecutor для stateful агентов с явным графом состояний; рекомендуется для новых проектов.
- Кастомный orchestration layer — полный контроль, нет чужих абстракций, но выше стоимость разработки и поддержки.
- Ключевой вопрос: соотношение скорость до MVP vs стоимость поддержки через 6 месяцев. LangChain экономит время в начале, но требует следить за breaking changes.
Подводные камни
- Vendor lock-in на экосистему: после глубокой интеграции LangChain сложно вырезать его без переписывания пайплайнов.
- Breaking changes между минорными версиями (особенно 0.1 → 0.2 → 0.3) — зафиксируйте версии в requirements.txt и обновляйтесь осознанно.
- Скрытая стоимость отладки агентов: без LangSmith сложно понять, почему агент выбрал не тот инструмент.
- Избыточность для простых сценариев: 50+ транзитивных зависимостей для одного LLM-вызова — это оверинжиниринг.
- Документация отстаёт от кода: примеры в README часто используют deprecated API — проверяйте
langchain-corechangelog.
What hurts your answer
- Выбирать LangChain по популярности, а не по требованиям проекта
- Игнорировать опыт команды, эксплуатацию и стоимость поддержки
- Не называть ситуации, где LangChain будет плохим выбором
What they're listening for
- Называет критерии выбора LangChain
- Учитывает команду, эксплуатацию, стоимость и риски
- Может назвать сценарии, где выбрал бы альтернативу