Урок курса
Что такое LangGraph: граф состояний для AI-агентов
LangChain 1.0.x: c нуля до продакшн LLM-приложенийLangGraph — низкоуровневый фреймворк оркестрации долгоживущих stateful-агентов. Workflow описывается графом из трёх базовых частей: state хранит текущий снимок данных, nodes выполняют вычисления или side effects, edges выбирают следующий узел.
В отличие от линейной цепочки граф допускает ветвления и циклы. Агент может вызвать инструмент, записать результат в state, снова обратиться к модели и завершиться только при явном условии. Структура выполнения видна в коде, а не спрятана внутри бесконечного цикла.
LangGraph можно использовать с компонентами LangChain, но графовая модель не требует строить всё приложение на LangChain. Это отдельный слой управления выполнением.
State, nodes и edges
State обычно задаётся типизированной схемой: сообщения, промежуточный результат, счётчик попыток и флаги маршрутизации. Node принимает текущий state и возвращает обновление. Fixed edge всегда ведёт в один узел, conditional edge вычисляет маршрут по состоянию.
У графа есть специальные точки начала и завершения. Цикл должен иметь наблюдаемое условие выхода: максимальное число шагов, финальный ответ, отказ пользователя или исчерпанный бюджет. Иначе ошибка модели или инструмента создаст дорогой бесконечный процесс.
Side effects — письмо, запись в БД, платёж — отделяют от чистых узлов и делают идемпотентными. Повторный запуск после сбоя не должен дублировать внешнее действие.
Когда граф действительно нужен
LangGraph полезен для многошагового процесса с ветвлениями, возвратом к предыдущему этапу, human-in-the-loop, длительным ожиданием или восстановлением после сбоя. Checkpointing позволяет сохранять state между шагами и продолжать выполнение, но требования к хранилищу и идентификаторам потока нужно спроектировать отдельно.
Для одного запроса к модели, простого RAG или последовательности из двух функций граф часто избыточен. Обычная функция легче читается, тестируется и наблюдается. Начинайте с явного workflow и переходите к графу, когда циклы и маршрутизация стали частью предметного процесса.
Тестируйте nodes как обычные функции, conditional edges — таблицей входов, а весь граф — на фиксированных моделях и fake tools. Главная ценность графа не в красивой диаграмме, а в контролируемом состоянии и завершении.
Спроектируем граф без привязки к SDK
Рассмотрим помощника, который ищет ответ в базе знаний. Состояние содержит вопрос, найденные документы, попытки поиска и итоговый ответ. После search возможны две ветви: найден достаточный контекст — перейти к answer, документов нет — уточнить запрос либо закончить объяснимым отказом.
Опишите условие перехода до написания кода. Повтор поиска должен иметь предел: например, две попытки для учебного сценария. Узел answer получает проверенный контекст, а не произвольные данные прошлого пользователя. При сохранении состояния нужно понимать, к какой сессии оно относится и можно ли повторять узлы после сбоя.
Нарисуйте три маршрута: обычный ответ, отсутствие документов и ошибка поиска. Если граф допускает цикл без изменения состояния и лимита, он может выполнять одну и ту же работу бесконечно. Эта проверка применима до выбора синтаксиса библиотеки. Для конкретного SDK сверяйте интерфейсы с установленной версией.
Продолжите разбор: Агент LangChain на Python: создание и tools.
Задача 1
Какие три части составляют базовую модель workflow в LangGraph?
Продолжить с сохранением прогресса
Перейдите к уроку в учебном кабинете.
