Контрольный указатель LangGraph хорош. Я хочу сказать это в первую очередь, потому что то, что следует дальше, читается как жалоба, а это не так. Сохранение на уровне потоков, путешествия во времени, паузы в процессе работы человека: все это работает, и работает хорошо. Есть одна неудача...
Контрольный указатель LangGraph хорош. Я хочу сказать это в первую очередь, потому что то, что следует дальше, читается как жалоба, а это не так. Сохранение на уровне потоков, путешествия во времени, паузы в процессе работы человека: все это работает, и работает хорошо.
Есть один режим отказа, который он не охватывает, и это тот, с которым вы сталкиваетесь в производстве. Процесс завершается после побочного эффекта, но до контрольной точки, которая его записывает.
В чем разница между контрольными точками и устойчивым выполнением?
Контрольная точка — это снимок состояния агента, записываемый после завершения шага. Устойчивое выполнение ведет журнал каждого шага во время его выполнения, и среда выполнения, а не ваш код, решает, что именно выполнено.
Вот здесь это имеет значение. Узел графа вызывает внешний API. Он оформляет билет Jira или снимает средства с карты. Вызов успешен. Затем модуль ловит SIGKILL во время скользящего развертывания, прежде чем произойдет запись контрольной точки.
Контрольная точка восстанавливает последнюю имеющуюся у нее контрольную точку, которая была до запуска узла. Итак, агент снова запускает узел, и теперь есть два билета и два платежа.
Устойчивое выполнение видит в журнале действие, которое началось и никогда не подтверждалось, и может сообщить вам, что это такое. Шаги, которые подтвердили дон