Не сприймайте LangGraph як довгий ланцюжок
Припиніть сприймати LangGraph як LangChain із більшою кількістю кроків. Ця помилка призводить до створення некоректних агентів.
LangGraph призначений для робочих процесів, які потребують стану (state), розгалужень, викликів інструментів (tool calls) та схвалення людиною. Він створений для агентів, які мають здатність відновлюватися після помилок без перезапуску.
Якщо ви його використовуєте, спочатку ви повинні визначити три речі: стан (state), переривання (interrupts) та відновлення (recovery).
Перша межа: Схема стану (State Schema)
Для одного промпту межею є текст. Для LangGraph межею є схема стану (State schema). Ви повинні вирішити:
- Які поля передаються між вузлами (nodes).
- Які поля оновлює вузол.
- Як паралельні гілки об'єднують значення.
- Які значення потрапляють у контрольну точку (checkpoint).
- Які значення ніколи не повинні зберігатися.
Редьюсери (Reducers) тут мають вирішальне значення. Якщо ви не встановите правильне правило для додавання повідомлень, ваша паралельна робота призведе до втрати даних.
Починайте з малого. Побудуйте граф з однією схемою, одним вузлом і одним редьюсером. Якщо ви не зможете змусити це працювати, додавання інструментів лише приховає ваші помилки.
Межа виконання (Runtime Boundary)
До того, як ви викличете compile(), ваш граф — це лише опис. Після compile() управління переходить до середовища виконання (runtime).
Коли граф дає збій, не дивіться лише на вузол. Перевірте ці чотири речі:
- Чи дозволяє схема стану (State schema) вузлу записувати цей ключ?
- Чи повертає вузол коректне поле стану (State field)?
- Чи правильно редьюсер об'єднує дані?
- Чи має умовна гілка (conditional edge) шлях виходу?
Людина в циклі (Human In The Loop)
Не сприймайте схвалення людиною як функцію інтерфейсу (UI). Сприймайте це як контракт графа.
Надійний патерн виглядає так:
- Модель пропонує виклик інструмента.
- Граф створює переривання (interrupt).
- Людина схвалює або редагує дію.
- Граф відновлює роботу саме з цієї точки.
Це робить агентів здатними до відновлення, а не просто реактивними.
Ваш чек-лист для швидкої перевірки (Smoke Checklist)
Перед виходом у продакшн проведіть цей тест:
- Використовуйте тимчасову директорію без продукційних даних.
- Визначте мінімальний стан (State).
- Напишіть один вузол, який повертає лише коректні поля.
- Використовуйте редьюсер для дій додавання (append).
- Додайте одне переривання перед дією інструмента.
- Додайте контролер станів (checkpointer).
- Спровокуйте помилку та перевірте поведінку відновлення.
Якщо цей шлях не працює, не додавайте більше інструментів. Проблема у вашій межі виконання (runtime boundary).
LangGraph не призначений для разових викликів моделі. Використовуйте його, коли вашому ШІ потрібно виконувати багатоетапну роботу, яку можна перевірити, поставити на паузу та проаналізувати.
Optional learning community: https://t.me/GyaanSetuAi
