Зачем нужен
HITL и durable execution позволяют остановить workflow перед рискованным действием, дождаться решения человека и продолжить даже после перезапуска процесса. Это отделяет предложение агента от права выполнить действие.
Где применяется
- подтверждение изменений в production;
- финансовые, инфраструктурные и другие необратимые операции;
- долгоживущие процессы, которые переживают рестарты;
- согласование действий через Telegram или другой внешний интерфейс.
Задача
Расширить граф предыдущего задания управлением человеком и восстановлением после перезапуска.
Minimum
- поставить
interrupt()перед деструктивным действием; - передать человеку payload с предложенным действием;
- продолжить через
Command(resume=...); - разместить
interrupt()до операций, которые могут повторить side effect.
Medium
- подключить durable checkpointer, например
SqliteSaver, и выполнитьsetup(); - остановить процесс во время ожидания approval;
- запустить новый процесс и продолжить по тому же
thread_id.
Hard
- подключить Telegram-бота;
- отправлять payload с inline-кнопками;
- поддержать
approve,rejectиedit; - безопасно связать синхронный граф и async-бота;
- предусмотреть guard для истёкшего или уже завершённого thread.
Stretch-задача
Применить parallelization или subgraphs.