Жизненный цикл агентной задачи

Агентный run нужно моделировать как конечный процесс с явными состояниями. Это позволяет безопасно ждать инструмент, продолжать после перезапуска, отменять работу и не повторять уже выполненные действия.

Базовые состояния

СостояниеЗначениеДопустимый следующий шаг
queuedзадача принятаначать или отменить
runningмодель или оркестратор работаетвызвать инструмент, завершить, остановить
waiting_toolожидается результат инструментапродолжить, retry, fail
waiting_approvalподготовлено рискованное действиеразрешить, отклонить, изменить
pausedработа временно остановленавозобновить или отменить
completedкритерии готовности подтвержденытерминальное состояние
failedпродолжение невозможно или лимит исчерпантерминальное состояние либо новый run
cancelledполучена отменатерминальное состояние

Набор названий может отличаться, но переходы должны быть однозначными и журналироваться.

Минимальное состояние run

run_id: unique-id
status: waiting_approval
goal: "Обновить документ"
success_criteria: []
completed_actions: []
pending_action: {}
tool_results: []
assumptions: []
retry_count: 0
budget_remaining: {}
checkpoint: reference

Надёжное выполнение действий

Idempotency

Повтор запроса с тем же idempotency_key не должен повторно создавать платёж, письмо или запись. Это критично, когда ответ инструмента потерялся после фактического выполнения.

Retry

Повторяй только временные и безопасные сбои. Используй ограничение попыток и backoff. Ошибка валидации, запрет доступа или отклонение пользователем не исправляются бесконечным retry.

Checkpoint

Перед длинным или рискованным этапом сохраняй подтверждённое состояние: выполненные действия, результаты инструментов, версии артефактов и следующий шаг. Текст «я всё запомнил» не является checkpoint.

Отмена

Отмена должна прекращать новые действия, освобождать ресурсы и честно сообщать, что уже успело произойти. Внешний side effect может быть необратим даже после отмены run.

Возобновление

Перед продолжением:

  1. загрузить последний подтверждённый checkpoint;
  2. сверить состояние внешних систем;
  3. не доверять старому pending_action без повторной проверки;
  4. применить новые инструкции пользователя;
  5. продолжить с первого действительно незавершённого шага.

См. также: Хранитель Контекста, Протоколы Автономности, Наблюдаемость и оценка агентов.