Жизненный цикл агентной задачи
Агентный 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.
Возобновление
Перед продолжением:
- загрузить последний подтверждённый checkpoint;
- сверить состояние внешних систем;
- не доверять старому
pending_actionбез повторной проверки; - применить новые инструкции пользователя;
- продолжить с первого действительно незавершённого шага.
См. также: Хранитель Контекста, Протоколы Автономности, Наблюдаемость и оценка агентов.