LangGraph мультиагентный workflow: StateGraph, checkpoint и production

!

Важно

Берите 1-2 идеи за раз и внедряйте сразу — это даёт результат быстрее, чем теория.

x

Ошибка

Не пытайтесь внедрить всё за день: перегрузка убивает стабильность и дисциплину.

>

Шаг

После чтения выберите один процесс и переведите его в повторяемый сценарий.

*

Инсайт

Рост приходит не от объёма контента, а от системной связки: стратегия -> публикация -> аналитика.

Вы на LangChain, скопировали multi-agent туториал с MemorySaver, выкатили self-hosted LangGraph на SQLite-checkpointer — и после деплоя диалоги обнулились, supervisor трижды звал research-агента на «напиши SQL», а безопасность прислала CVE на checkpointer. Боль знакомая: граф цикличится, состояние не переживает рестарт, туториалы спорят — create_supervisor, StateGraph или CrewAI «за 10 минут». Ниже — один кейс, явный граф, Postgres checkpoint и сравнение с no-code, когда LangGraph лишний.

TL;DR / Быстрый инсайт: LangGraph — «дирижер» для ИИ-агентов: вы рисуете граф узлов, а не надеетесь на случайный порядок вызовов. Для production — Postgres checkpointer с thread_id, supervisor через tool-calling (langgraph-supervisor устарела), recursion_limit и LangSmith trace. «langgraph» — 1625 показов/мес (июнь 2026), пакет 1.2.5. Self-hosted без патчей — риск CVE checkpointer.

README langgraph-supervisor рекомендует не использовать библиотеку в новых проектах, а строить supervisor через tool-calling. «langgraph crewai» — 18 показов/мес против 1625 у «langgraph»: ищут фреймворк, попадают в устаревшие паттерны. Идем путем цеха сборщика — один кейс (research + code review + ответ), один граф, чеклист до production. К концу гайда вы соберите supervisor + workers и сможете возобновить диалог по thread_id после рестарта.

LangGraph хранит состояние графа между шагами — блокнот, куда каждый агент дописывает свой кусок. API — «розетка» для вызова узлов. MCP (Model Context Protocol) подключает внешние tools по стандарту — см. подключение MCP в Cursor.

Сравните LangGraph, CrewAI и n8n до первого кода

Сравнительная таблица LangGraph, CrewAI и n8n: критерии выбора фреймворка

Боль «зачем LangGraph, если CrewAI проще?» всплывает, когда нужен audit trail. Выбор — про тип задачи, не про «лучший фреймворк».

Критерий LangGraph CrewAI n8n
Модель Явный StateGraph, conditional routing Role-based «команда» Визуальные интеграции
Прототип Средняя скорость, нужен Python Быстрое демо команды Быстро для ops и CRM
Production Checkpoint, HITL, LangSmith trace MVP ок, routing сложнее Self-hosted + AI Agent (1.82+)
Когда НЕ брать Простой FAQ без ветвлений Нужен контроль графа и CVE-audit Тяжелая multi-agent логика

Сделайте: LangGraph при явных ветках и resume после падения. Не делайте: тащить его туда, где автоматизация n8n и ИИ-агенты закрывает задачу за дни.

Итоговый вердикт: CrewAI — быстрый старт ролевой команды. n8n — ops без Python. LangGraph — когда граф, checkpoint и trace важнее первого демо.

Установите стек: Python 3.10+, langgraph 1.2.5 и LangSmith

Workflow-диаграмма установки стека LangGraph: Python, pip, LangSmith

На PyPI langgraph 1.2.5 (2026-06-12), Python ≥3.10, langgraph-checkpoint ≥4.1.0.

  1. Создайте venv: pip install langgraph≥1.2.5, langchain-openai, langgraph-checkpoint-postgres.
  2. Ключи: OPENAI_API_KEY (или Claude/GigaChat), LANGSMITH_API_KEY, LANGSMITH_TRACING=true.
  3. Паттерн: supervisor + researcher + coder для «исследование → код → ответ».
  4. User journey в README — иначе граф раздуется без тестов.
  5. Импорт: StateGraph, END, AsyncPostgresSaver — проверьте до написания узлов.

Типичная ошибка — туториал 2024 с langgraph-supervisor-py. В 2026 путь — supervisor через tool-calling по docs LangChain multi-agent.

Спроектируйте StateGraph без зацикливаний supervisor

Чеклист StateGraph: как избежать зацикливания supervisor

Граф крутится бесконечно, когда нет FINISH и recursion_limit. StateGraph — схема: кто следующий, при каком условии, когда стоп.

Схема workflow:

User message → supervisor → researcher ИЛИ coder → supervisor → FINISH → ответ

State schema — TypedDict или MessagesState с messages, next_agent, artifacts. Reducers для append-only: каждый узел меняет только свои ключи. Conditional edge читает next_agent и ведет в researcher, coder или END.

Каркас на Python: class TeamState(TypedDict) с ключами messages и next_agent; graph = StateGraph(TeamState), conditional edges на supervisor, app = graph.compile(checkpointer=saver, interrupt_before=[«coder_run»]). Используйте TypedDict или MessagesState с reducers для append-only полей.

В реальном проекте compile всегда с checkpointer — иначе отладка routing и resume расходятся. recursion_limit при compile (например 25) страхует от runaway-цикла, если supervisor «забыл» FINISH.

Сделайте: явный узел FINISH и лимит итераций. Не делайте: ждать, что LLM сам остановится — trace в LangSmith покажет бесконечный круг.

Разделите workers по tools: supervisor через handoff

15 tools у одного агента = путаница вызовов. Supervisor с handoff-tools, workers с 3-5 инструментами.

Researcher: web search, RAG (см. построение RAG-системы). Coder: lint, tests, read file. Supervisor вызывает transfer_to_coder, а не пишет SQL сам. Context isolation — worker видит только свой домен, меньше галлюцинаций tool-call.

Официальные multi-agent docs: subagents — 4 model calls one-shot, handoffs — 3. Для production предсказуемее handoff, чем «все агенты в одном контексте».

На практике ломается так: research-агент трижды на SQL-задаче. Фикс — system prompt supervisor с явными правилами маршрутизации + 10 промптов в unit-тест: каждый попадает в правильный worker до подключения к HTTP API.

Подключите checkpoint: thread_id и Postgres вместо MemorySaver

MemorySaver — только dev в RAM. После kill -9 или деплоя на SQLite диалоги обнуляются.

  1. Dev: MemorySaver для быстрых итераций.
  2. Prod: AsyncPostgresSaver + pool; при деплое checkpointer.setup().
  3. Запрос: thread_id в config — без него resume невозможен.
  4. Тест: kill процесса, тот же thread_id — execution с checkpoint.

Managed LangSmith на PostgreSQL вне зоны SQLite/Redis CVE (июнь 2026). Self-hosted обязан мигрировать с SQLite checkpointer до production.

Пройдите security preflight и HITL на опасных узлах

Июнь 2026: CVE-2026-28277 (unsafe msgpack в checkpoint), цепочка SQLi→RCE на self-hosted с устаревшим checkpointer (Check Point Research).

  • langgraph ≥1.0.10 (лучше 1.2.5), checkpoint-sqlite ≥3.0.1, redis ≥1.0.2.
  • LANGGRAPH_STRICT_MSGPACK=true.
  • get_state_history без auth не экспонировать; API за reverse proxy с JWT.

Human-in-the-loop — пауза перед email, SQL write, платежом: interrupt_before, approve, resume с того же checkpoint. Меньше 2,5% сложных неструктурированных задач автономные системы закрывают без человека; около 40% проектов агентов отменяются из-за скрытых затрат — HITL снижает цену ошибки.

Сделайте: interrupt на write-операциях и внешних API с побочным эффектом. Не делайте: self-hosted API на SQLite с открытым портом без auth.

Включите LangSmith tracing и чек-лист production

Без observability непонятно, кто сломал workflow в 3 часа ночи. LANGSMITH_TRACING=true дает node-level trace: где supervisor застрял, какой worker вызвал tool, сколько токенов ушло. Trace replay ускоряет разбор production-инцидента с минут до секунд на узел. Настройте Postgres checkpointer и получите воспроизводимый результат: 10 тест-кейсов маршрутизации, resume после kill, полный trace в LangSmith.

Деплой: Docker + LangServe или LangSmith Deployment. GitHub langgraph — около 34,9k stars, релизы 1.2.x в июне 2026 с патчами checkpoint. Перед релизом — регрессия 10 тест-кейсов, нагрузка на concurrent thread_id, TTL старых checkpoints, eval на golden-наборе промптов.

Критерии успеха:

  • 10 тест-кейсов: supervisor → нужный worker → ответ.
  • После kill — thread по thread_id.
  • LangSmith — полный trace.
  • Prod: Postgres checkpointer, auth, LANGGRAPH_STRICT_MSGPACK=true.
  • Таблица LangGraph/CrewAI/n8n объясняет выбор.

Low-code агенты — в курсе по Make.com (5 800 ₽/мес, 159+ уроков). Вопросы — @maya_pro.

Экспертная вычитка: Артур Хорошев (CEO Maya AI, практик AI-агентов).
Источники цифр: Вордстат («langgraph» — 1625 показов/мес), PyPI langgraph 1.2.5, CVE-цепочка checkpointer — июнь 2026.

Частые вопросы

Чем langgraph отличается от crewai?

LangGraph — явный StateGraph с checkpoint и routing. CrewAI быстрее для прототипа «команды», сложнее audit маршрута. Для HITL и resume после падения чаще LangGraph.

Как написать агента на langgraph?

State schema → workers с узким tool-set → supervisor с handoff → conditional edges и FINISH → compile с Postgres и thread_id. 10 тестов маршрутизации до деплоя.

Что такое human in the loop langgraph?

Пауза перед опасным узлом: interrupt_before, оператор правит state, resume с checkpoint. Без HITL риск автономной ошибки выше выгоды.

Langgraph mcp — как подключить?

MCP как tools к worker: один worker — один домен. Supervisor не видит все MCP сразу. Подробнее — гайд по Cursor.

Какой checkpointer для dev и prod?

Dev: MemorySaver. Prod: AsyncPostgresSaver + thread_id. SQLite/Redis на публичном self-hosted в июне 2026 — риск без патчей.

Нужен ли langgraph studio для production?

Studio (59 показов/мес) удобен для визуальной отладки локально. Production — LangServe, Docker или LangSmith Deployment с Postgres. Studio не заменяет auth, CVE-патчи и нагрузочные тесты.

Когда langgraph — overkill?

FAQ-бот или CRM-связка без ветвлений — n8n или Make. LangGraph оправдан при subgraphs, checkpoint после рестарта, node-level trace и формальном audit маршрута агентов.

Часто задаваемые вопросы по теме (FAQ)

Для чего нужны AI-агенты и автоматизация в контенте?

AI-агенты (например, в связке с Make.com и Cursor) позволяют заменить рутинные задачи: сбор данных, написание постов, рерайт и даже автопостинг в Telegram или WordPress. Это экономит десятки часов в неделю и позволяет масштабировать бизнес без расширения штата.

Как быстро можно запустить свой контент-завод?

Базовый контент-завод (генерация текстов по RSS или из других источников) с автопостингом собирается без программирования (No-Code) за 1-2 дня. Сложные сценарии (с видео, аудио и кастомными MCP) внедряются за 1-2 недели.

Нужно ли уметь программировать?

Нет, большинство систем собираются визуально в Make.com (No-Code). Для сложных задач можно использовать вайбкодинг — генерацию кода с помощью Cursor AI через промпты на естественном языке.