Когда всё зелёное, но данные испорчены
LangGraph — популярный инструмент для создания AI-агентов. Агент — это программа, где языковая модель выполняет задачи по шагам: получает запрос, ищет информацию, обрабатывает, выдаёт ответ.
Между шагами нужно передавать данные. Это называется «состояние» (state). И именно здесь прячутся баги, которые сложно заметить.
Что идёт не так
Проблема первая: нечёткая структура данных
Многие разработчики передают данные между шагами в виде обычного словаря — без строгого описания, какие поля там есть и какого они типа. Каждый шаг пишет туда что хочет. Каждый читает что ожидает. Если ожидания не совпадают — баг. Но модель не выбрасывает ошибку — она «догадывается» и идёт дальше. Проблема всплывает позже, когда ломается что-то внешне не связанное.
Решение: использовать TypedDict — специальный инструмент Python для строгого описания структуры. Каждое поле имеет имя и тип. Если шаг пытается записать что-то не то — это видно сразу.
Проблема вторая: перез