~/ai — production — checkpointing
‹ ai engineering20 / продакшен

CHECKPOINTING · УПАЛ — ПРОДОЛЖИЛ

Агент выполняет длинную задачу из многих шагов: вызовы моделей, поиск, отправка писем. Процесс может упасть на середине: таймаут, перезапуск сервера, лимит API. Чекпоинт — сохранённое состояние после каждого шага, чтобы новый процесс продолжил с места падения, а не начинал заново.

01 · одна задача, два запуска падение на шаге 6
без чекпоинтовс нуля
с чекпоинтамис места
Шаг ✉ — побочный эффект: письмо поставщику уходит во внешний мир, отменить его нельзя.
02 · хранилище чекпоинтов правый запуск
После каждого шага состояние сериализуется в JSON, считается контрольная сумма (FNV-1a). Новый процесс ничего не помнит: он читает последний чекпоинт, сверяет сумму и продолжает со следующего шага.
03 · исходящие письма поставщику то, что видит внешний мир
без чекпоинтов
с чекпоинтами
04 · итог сравнение запусков
ждёт завершения…
Шаги выполняются в браузере по-настоящему: поиск по тендеру (BM25 + MiniLM), календарь банковских дней, калькулятор, отправка письма в «почтовый ящик», сборка отчёта. Падение на шаге 6 задано сценарием. Сохранение, контрольная сумма, восстановление новым процессом, счёт вызовов и писем, побайтовое сравнение итоговых отчётов — настоящие.
~/ai $ workflow.run(tender_summary)