LangGraph: Детальное досье на систему агент-оркестрации
Краткое резюме
LangGraph — это open-source Python-фреймворк для построения статефул AI-агентов на основе ориентированных ациклических графов (DAG). Разработан командой LangChain, выпущен под лицензией MIT. В 2026 году это один из ведущих фреймворков для создания надёжных, продакшн-готовых агентов, которые требуют сохранения состояния, ветвления логики и контроля человека.
1. Что такое LangGraph
LangGraph — это низкоуровневая фреймворк оркестрации (low-level orchestration framework), а не высокоуровневая абстракция над LLM. Вместо того чтобы скрывать сложность работы с моделями, LangGraph предоставляет примитивы для явного контроля над поведением агентов.
Основное отличие от линейных цепочек (chains) в том, что LangGraph работает с циклическими графами — агент может возвращаться в предыдущие узлы, принимать условные решения и поддерживать состояние через несколько шагов выполнения.
Ключевая философия: "LLMs generate text. LangGraph governs behavior" — LLM генерируют текст, а LangGraph управляет поведением системы.
2. Архитектура и ключевые концепции
2.1 Три основных примитива
LangGraph построен на трёх фундаментальных компонентах:
State (Состояние)
- TypedDict-объект, служащий "тетрадью" для каждого шага
- Доступен всем узлам графика
- Отличается от простого dict: имеет reducer-функции, контролирующие слияние обновлений
- В продакшене требуется PostgresSaver вместо MemorySaver для безопасности в многопоточной среде
- Пример состояния: ```python from typing_extensions import TypedDict
class State(TypedDict): input: str chat_history: list decision: str approval_status: bool ```
Nodes (Узлы)
- Python-функции, выполняющие дискретные операции
- Примеры: LLM-вызов, выполнение инструмента, валидация, вызов подагента
- Каждый узел принимает текущее состояние и возвращает частичное обновление
- Должны быть чистыми функциями (deterministic) для воспроизводимости и наблюдаемости
Edges (Рёбра)
- Правила маршрутизации, определяющие переход между узлами
- Два типа:
- Direct edge: прямой переход от одного узла к другому
- Conditional edge: ветвление на основе логики (например, нужна ли эскалация)
- Специальные узлы START и END обозначают начало и завершение
2.2 Архитектура агента
Типичный LangGraph-агент состоит из двух основных компонентов:
- Decision-making LLM — использует ChatOpenAI или другую модель с привязанными инструментами (
bind_tools()) - Tool Execution — ToolNode обрабатывает вызовы функций, возвращённые LLM
Цикл работает так: 1. Узел "Agent" вызывает LLM с текущим состоянием 2. LLM выбирает инструмент или отвечает 3. ToolNode выполняет выбранный инструмент 4. Результат добавляется в состояние 5. Граф повторяет цикл до завершения (пока LLM не скажет "stop")
2.3 Контрольные точки и персистентность
LangGraph автоматически создаёт checkpoint (контрольную точку) после каждого шага выполнения. Это позволяет: - Восстановиться после сбоев - Паузировать выполнение для одобрения человеком - Проверить историю выполнения - Перезапустить с конкретного момента
Согласно 2026 State of Agent Engineering report LangChain, над 60% инцидентов в продакшене аг-агентов связаны с ошибками управления состоянием. LangGraph решает эту проблему через checkpointing.
3. Как строятся субагенты и оркестрация
3.1 Субагенты (Sub-agents)
В LangGraph субагент — это просто узел, который сам является графом. Возможны два подхода:
Вложенные графы (Nested Graphs)
# Внешний граф вызывает внутренний граф как узел
super_graph = StateGraph(State)
super_graph.add_node("research_agent", research_subgraph.compile())
super_graph.add_node("decision_agent", decision_subgraph.compile())
super_graph.add_edge("research_agent", "decision_agent")
Иерархические системы
Можно создавать многоуровневую иерархию: - Главный координатор распределяет задачи - Специализированные агенты работают в параллели или последовательно - Результаты собираются и синтезируются
3.2 Параллельное выполнение и Send
LangGraph поддерживает отправку значений между узлами через Send примитив:
from langgraph.types import Send
def router_node(state: State):
# Распределить работу нескольким субагентам параллельно
return [
Send("agent_1", {"query": state["query"]}),
Send("agent_2", {"query": state["query"]})
]
Это позволяет: - Распараллелить независимые задачи - Дождаться результатов всех параллельных ветвей - Синтезировать результаты в едином узле
3.3 Контроль потока и条件ные переходы
Условные переходы используются для управления логикой:
def should_escalate(state: State) -> str:
if state["urgency"] == "critical":
return "escalate"
elif state["complexity"] == "high":
return "review"
else:
return "auto_resolve"
super_graph.add_conditional_edges(
"initial_assessment",
should_escalate,
{
"escalate": "human_review",
"review": "expert_analysis",
"auto_resolve": "end"
}
)
4. Управление памятью в LangGraph
4.1 Типы памяти
LangGraph поддерживает две концепции памяти:
Working Memory (Рабочая память)
- Состояние текущего выполнения (state)
- Доступна всем узлам в пределах одного цикла выполнения
- Представлена TypedDict
Long-term Memory (Долгосрочная память)
- Сохраняется между сеансами
- Может содержать историю беседы, контекст пользователя, предыдущие решения
- Требует внешнего хранилища (PostgreSQL, MongoDB и т.д.)
- Обычно загружается в state в начале выполнения
4.2 Checkpointer и хранение
LangGraph предлагает несколько типов checkpointer'ов:
- MemorySaver: только для разработки (потокоопасности нет)
- PostgresSaver: продакшн-вариант, используется для хранения контрольных точек в PostgreSQL
- SqliteSaver: альтернатива для небольших систем
DeltaChannel оптимизация: LangGraph использует дельта-обновления вместо полного сохранения состояния, что сокращает объём хранилища на 73 000x в некоторых сценариях.
4.3 Пример структуры состояния с памятью
from typing_extensions import TypedDict
class ConversationState(TypedDict):
# Working memory
current_query: str
tool_calls: list
# Long-term memory
conversation_history: list # полная история
user_preferences: dict # сохранённые предпочтения
previous_decisions: list # истории решений
5. Развёртывание на своём сервере
5.1 Варианты развёртывания
LangGraph предоставляет несколько вариантов развёртывания:
1. Open Source (Самостоятельное)
- Полный контроль
- Нет лимитов на использование
- Требуется самостоятельное управление инфраструктурой
- Нужен PostgreSQL для продакшена
- Возможность хостировать на собственном сервере, Kubernetes, Docker
2. LangGraph Platform (Управляемый сервис LangChain)
- Облачное развёртывание
- Встроенная обсервабельность
- Автоматическое масштабирование
- Требует LangSmith подписки
3. Гибридные подходы
- Развёртывание LangGraph на собственном сервере
- Использование LangSmith только для мониторинга/отладки (не обязательно)
- Полная независимость от облака LangChain
5.2 Развёртывание на собственном сервере (пошагово)
# 1. Установка зависимостей
pip install langgraph langchain langchain-openai
# 2. Настройка PostgreSQL
docker run -e POSTGRES_PASSWORD=mysecretpassword -d postgres
# 3. Создание приложения Flask/FastAPI
from langgraph.checkpoint.postgres import PostgresSaver
from flask import Flask
import psycopg
app = Flask(__name__)
# Подключение к PostgreSQL
conn = psycopg.connect("dbname=langgraph user=postgres")
checkpointer = PostgresSaver(conn)
# Компиляция графика с checkpointer'ом
graph = builder.compile(checkpointer=checkpointer)
@app.route("/invoke", methods=["POST"])
def invoke():
input_data = request.json
config = {"configurable": {"thread_id": input_data["thread_id"]}}
result = graph.invoke(input_data, config=config)
return result
5.3 Масштабирование
Для масштабирования: - Использование worker-процессов (Gunicorn, uWSGI) - Очереди задач (Celery + Redis) для асинхронного выполнения - Load-балансер (Nginx) спереди - PostgreSQL с репликацией для HA
6. Цена и модель затрат
6.1 Open Source (Бесплатно)
- MIT-лицензия
- Неограниченное использование
- Только затраты на инфраструктуру (сервер, БД)
6.2 LangGraph Platform (Облако LangChain)
Developer (Бесплатно): - До 100 000 выполнений узлов в месяц - Идеально для прототипирования
Plus ($0.001 за выполнение узла): - Требует LangSmith Plus подписку ($39/пользователь/месяц) - Usage-based pricing за узлы - Standby fees за фоновые процессы - Может быстро накапливаться при масштабировании
Enterprise (Пользовательская цена): - Гибкие опции развёртывания - Выделенная поддержка - SLA гарантии
6.2 Примерный расчёт затрат
Для системы обработки 1 млн запросов в месяц: - Среднее число шагов: 5 узлов на запрос - Платёж за узлы: 5 млн × $0.001 = $5 000/месяц - LangSmith Plus (3 пользователя): 3 × $39 = $117/месяц - Итого: ~$5 117/месяц
Для сравнения, self-hosted на собственном сервере: - t3.medium EC2: $40/месяц - PostgreSQL RDS: $30/месяц - Итого: ~$70/месяц (но требует управления)
7. Сильные и слабые стороны
7.1 Сильные стороны
✅ Детальный контроль: Граф-ориентированная архитектура даёт полный контроль над логикой
✅ Персистентность состояния: Автоматическое checkpointing решает проблему потери состояния
✅ Human-in-the-loop: Встроенная поддержка паузирования и одобрения человеком
✅ Масштабируемость: DeltaChannel и оптимизированное хранилище позволяют работать с большим объёмом данных
✅ Производительность: После отказа от LangChain зависимостей примерно в 5.76x быстрее конкурентов
✅ Документация: Полная официальная документация и бесплатный LangChain Academy курс
✅ Экосистема: 34 000+ звёзд на GitHub, активное сообщество
✅ Наличие реальных кейсов: Klarna (80% сокращение времени резолюции), Uber, AppFolio
7.2 Слабые стороны
❌ Кривая обучения: 2-3 дня до реальной продуктивности даже для опытных разработчиков
❌ Python-ориентирован: JavaScript SDK значительно отстаёт по функциональности
❌ Необходимый оверхед для простых систем: Усложняет разработку линейных workflows
❌ Цена на масштабе: Usage-based pricing может быть дорогим при миллионах узлов
❌ Привязка к LangChain: Плотная интеграция, что может быть проблемой при смене стека
❌ Новизна: Некоторые функции ещё в экспериментальном статусе (2026)
8. Для кого это
Идеально подходит для:
- Продакшн-системы с требованиями надёжности: Финансовые системы, здравоохранение, где ошибки недопустимы
- Многоагентные системы: Координация нескольких специализированных агентов
- Workflow'ы с человеческим одобрением: Customer service, content moderation, юридические системы
- Долгоживущие системы: Агенты, работающие часами/днями и требующие восстановления после сбоев
- Команды, уже использующие LangChain: Естественное расширение экосистемы
- Системы, требующие полного логирования: Compliance, audit trails
НЕ подходит для:
- Простые чат-приложения
- One-shot промпты
- Статические RAG-системы
- PoC и прототипы (можно, но оверхед)
- Системы реального времени с очень низкой латенсией
Альтернативные фреймворки:
| Фреймворк | Описание | Плюсы | Минусы |
|---|---|---|---|
| CrewAI | Более высокоуровневый, multi-agent | Проще для начинающих, быстрее | Менее гибкий, меньше контроля |
| AutoGen | Microsoft, декларативный | Большое сообщество | Менее production-ready |
| Vellum | Визуальный drag-and-drop | Низкий барьер входа | Дорого, меньше контроля |
| Pydantic AI | Фокус на type-safety | Простой API | Молодой, меньше экосистемы |
9. Свежесть проекта в 2026
LangGraph в 2026 году активно развивается и стабилен:
- Статус: Production-ready, используется крупными компаниями
- Обновления: Регулярные релизы (примерно каждые 2-4 недели)
- Сообщество: 34 000+ GitHub звёзд, растущее число реальных применений
- Инвестиции: LangChain получает финансирование для развития стека
- Лучшие практики: Документация постоянно обновляется (видны издания 2026)
- Поддержка: Активный Discord сообщество, регулярные вебинары
Проект живой и развивается, это не экспериментальная игрушка.
10. Примеры реальных систем на LangGraph
10.1 Klarna (Customer Service)
Результат: 80% сокращение времени резолюции обращений на 85 млн пользователей
Архитектура: - Главный координатор оценивает тип проблемы - Маршрутизирует на специализированные агенты (рефунды, отслеживание, техподдержка) - Human-in-the-loop для сложных случаев - Интеграция с историей платежей и заказов
10.2 Uber
Результат: ~21 000 часов разработчиков сэкономлено через "Lang Effect" фреймворк
Применение: - Внутренние агенты для автоматизации бизнес-процессов - Optimized dispatch логика - Мониторинг и управление инцидентами
10.3 AppFolio
Результат: 10+ часов еженедельной экономии per property manager, 2x улучшение точности решений
Система: - Агенты для управления недвижимостью - Автоматизированное расписание уборки - Уведомления арендаторам - Аналитика по занятости
10.4 Типичная система: Workflow с одобрением человеком
START
↓
[Intake] → Parse request
↓
[Assessment] → Оценить срочность
↓
Conditional edge:
- Routine → Auto-resolve → END
- Complex → Expert review → Human approval
- Critical → Escalate → Manager review → Action → END
↓
[Follow-up] → Уточнить, если нужно (loop)
↓
END
11. Интеграция с экосистемой LangChain
LangGraph плотно интегрируется с:
- LangSmith: Платформа для отладки, оценки и мониторинга агентов
- LangChain Core: Базовые примитивы (LCEL — LangChain Expression Language)
- LangServe: API для развёртывания цепочек
- LangChain Hub: Репозиторий prompts и runnable'ов
Однако LangGraph может работать независимо — не требует LangChain для базового использования.
Заключение
LangGraph в 2026 году — это де-факто стандарт для построения production-ready AI-агентов на Python. Она решает ключевую проблему управления состоянием в долгоживущих агентах и предоставляет инструменты для контроля, мониторинга и человеческого вмешательства.
Идеальна для команд, которым нужна надёжность и контроль, готовых потратить время на освоение. Менее подходит для прототипирования и простых систем, где выше скорость разработки, чем надёжность.
Будущее развития вероятно включит: - Улучшения в JavaScript/TypeScript SDK - Расширение market-place готовых агентов - Дальнейшие оптимизации по цене и скорости - Лучшую интеграцию с вариантами open-source LLM
Источники
- LangGraph Documentation - Official
- LangGraph Platform - LangChain
- LangGraph: Build Stateful AI Agents - Real Python
- LangGraph Explained 2026 Edition - Medium
- What Is LangGraph: State, Agents & Production Use Cases - Atlan
- LangGraph Pricing Guide - ZenML Blog
- LangGraph Review 2026 - ToolBrain
- How to Build LangGraph Agents - DataCamp
- GitHub - LangGraph
- Building AI Agents with LangGraph 2026 Edition - AI Advances