Суть
Главный тезис: агенты — это графы, а не цепочки. Линейная цепочка вход → LLM → tool → выход не умеет ветвиться, циклиться, прерываться и восстанавливаться — а агенту это нужно. LangGraph даёт три примитива, из которых собирается любая логика:
- State — единое строго типизированное состояние, передаваемое между узлами (LangGraph State, правила обновления — LangGraph Reducers).
- Node (узел) — Python-функция, принимающая
stateи возвращающая его частичное обновление. - Edge (ребро) — переход между узлами, обычный или условный (функция-маршрутизатор) (LangGraph Nodes and Edges).
Граф собирается через StateGraph(...) builder и переводится в исполняемый объект вызовом .compile().
Зачем это нужно
LangChain-цепочки — это API для прототипирования; для production нужны контроль потока, циклы, retry, воспроизводимость и human-in-the-loop. LangGraph закрывает именно это (подробно — LangGraph vs LangChain). Показательно: высокоуровневая create_agent() из LangChain сама написана на LangGraph.
Карта концепций (atomic)
Ядро State Machine:
- LangGraph State — типизированное неизменяемое состояние, схема данных графа
- LangGraph Reducers — как обновления состояния мержатся (
Annotated[type, reducer],add_messages) - LangGraph Nodes and Edges — узлы, обычные/условные рёбра, builder,
compile
Production-механизмы:
- LangGraph Checkpointers — персистентность состояния, восстановление по
thread_id - LangGraph HITL — прерывания и аппрувы (human-in-the-loop)
- LangGraph Time Travel — replay/fork по истории чекпоинтов
- LangGraph Reliability — идемпотентность, циклы+лимиты,
RetryPolicy - LangGraph Observability — LangGraph Studio, LangFuse/LangSmith
Практические паттерны (из ноутбуков курсов):
- LangGraph ReAct Loop — минимальный цикл
agent ↔ ToolNode - LangGraph Intent Router — двухуровневая маршрутизация intent → инструмент
- LangGraph MCP as Node — MCP-сервер как узел графа + fallback RAG→MCP
Учебная последовательность
State → Reducers → Nodes/Edges → (собрать минимальный LangGraph ReAct Loop) → Checkpointers → HITL → Time-Travel → Reliability → практические паттерны (Intent Router, MCP-as-Node).
Связано с
- Agent vs Workflow — «граф vs цепочка» = «агент vs workflow»
- ReAct — ReAct-цикл реализуется как граф;
create_agent()написан на LangGraph - Agent Architecture — LangGraph как способ собрать агентный цикл
- PydanticAI — другой фреймворк для агентов (типизация вывода vs оркестрация графа)
Открытые вопросы
- LangGraph vs PydanticAI vs «голый» агентный цикл — критерий выбора под задачу
- Когда multi-agent через граф, а когда через MCP/A2A-кооперацию (упомянуто в C6 как «следующий шаг»)