Process: Rollback
Откат действий при ошибке — от автоматического до human-managed.
Trigger
- Агент обнаружил ошибку (через эскалацию)
- Agent-Judge ретроспективно нашёл проблему
- Human Owner запросил откат
Классификация обратимости
Fully Reversible
| Действие | Откат |
|---|
| Запись в БД | DELETE / UPDATE |
| Черновик документа | Удалить |
| Task created | Mark cancelled |
| Memory entry | Archive (relevance → 0) |
Partially Reversible
| Действие | Откат | Ограничение |
|---|
| Файл изменён | Restore из backup | Копии могут остаться |
| Конфиг изменён | Restore | Эффекты в памяти процессов |
| Memory shared | Archive | Агенты могли уже использовать |
Irreversible
| Действие | Compensating action |
|---|
| Отправленные сообщения | Follow-up correction |
| Платежи | Refund (human only) |
| Публикации | Delete + correction notice |
| Физические действия | — |
Правило: irreversible действия только через human approval (Codex Red Lines).
Шаги
1. Request
Кто инициирует:
2. Impact Analysis
Определяем:
- Что сделано — из audit log (
security_audit_log, runs)
- Что затронуто — downstream tasks, memory entries, artifacts
- Что обратимо — классификация по таблице выше
3. Approval
| Тип | Impact | Approver |
|---|
| Fully reversible | Low | Agent-CEO автоматически |
| Fully reversible | High (>5 entities) | Human Owner |
| Partially reversible | Any | Human Owner |
| Irreversible | Any | Human Owner + документирование |
4. Execution
- Специальный Rollback Agent (future) или Agent-CEO
- Каждый шаг отката логируется
- Audit record с reference на original action
{
"type": "rollback",
"original_action_id": "uuid",
"rollback_steps": [
{"action": "delete_artifact", "id": "uuid", "status": "done"},
{"action": "cancel_task", "id": "uuid", "status": "done"}
],
"initiated_by": "human",
"approved_by": "human"
}
5. Root Cause Analysis (обязательно)
После каждого rollback:
- Почему ошибка произошла?
- Нарушение процесса? → fix process
- Плохой промпт? → fix role config
- Policy gap? → update Policy-Layer
- Результат → обновление Manifest или ADR
Что НЕ откатывается
| Что | Причина |
|---|
| Логи и audit | Append-only, integrity |
| Outgoing communications | Только compensating actions |
| Changes observed by third parties | Только correction notice |
Compensating Actions
Когда полный откат невозможен:
| Ситуация | Compensating action | Approval |
|---|
| Sent email с ошибкой | Follow-up correction email | Human |
| Wrong post published | Correction/delete + notice | Human |
| Incorrect decision communicated | Explicit retraction | Human |
Метрики
| Метрика | Target |
|---|
rollbacks_per_month | → 0 (снижается) |
time_to_rollback | < 1 час для reversible |
rollback_root_causes | Tracked: prompt / data / policy gap |
repeat_rollbacks | 0 (same root cause twice = process failure) |
Связанные документы