LangChain и LangGraph
Суть
LangChain — высокоуровневый framework для агентов и интеграций. LangGraph — отдельный низкоуровневый runtime для долгоживущей stateful-оркестрации; его можно использовать без LangChain.
Карта экосистемы
| Компонент | Роль |
|---|---|
| LangChain | Models, tools, middleware, structured output и готовый agent loop |
| LangGraph | State, nodes, edges, persistence, durable execution, streaming и human-in-the-loop |
| Deep Agents | Более готовый agent harness поверх экосистемы |
| LangSmith | Отдельная платформа tracing, evals, testing и deployment |
Это не взаимозаменяемые названия. create_agent удобен для типового tool-calling агента; собственный LangGraph нужен, когда порядок, состояние и точки управления являются частью бизнес-логики.
Когда выбирать
LangChain, если нужны готовые интеграции, middleware и быстрый старт с agent loop.
LangGraph, если нужны:
- явный граф с ветвлениями и циклами;
- checkpoints, пауза, возобновление и human approval;
- долгие stateful workflows;
- смешение детерминированных шагов и агентных узлов.
Обойтись SDK провайдера, если workflow короткий и собственный цикл остаётся понятнее абстракций.
Риски и границы
- Экосистема меняется быстро: старые материалы про
LLMChain,AgentExecutorи прежние prebuilt API могут быть неактуальны. - Persistence не делает tools идемпотентными: повтор внешнего действия надо предотвращать отдельно.
- LangSmith — не обязательное условие использования open-source LangChain/LangGraph.
- Широкая интеграция ускоряет прототип, но повышает площадь зависимостей и миграций.
Практика
Держи доменные tools и схемы данных независимыми от фреймворка. Тестируй node/tool отдельно, а граф — через сценарии с сохранённым состоянием, ошибкой и повторным запуском.