Fits Calc
ИИ для инженера · автономность · Wave AI R5

Idempotency, retry и rollback: как агенту безопасно менять реальные системы

каждое изменяющее действие проектировать с idempotency key, precondition, журналом эффекта и проверенным откатом.

Короткий ответ

Idempotency, retry и rollback: как агенту безопасно менять реальные системы — это production-задача, а не демонстрационный prompt. Практический принцип: каждое изменяющее действие проектировать с idempotency key, precondition, журналом эффекта и проверенным откатом. Ключевое решение: retry без idempotency может дважды создать заказ, отправить письмо или изменить запись. В инженерной среде результат принимается по evidence, traceability и воспроизводимой проверке, а не по уверенности формулировки модели.

Agent/RAG-платформы быстро меняются. Технические ссылки этой статьи проверены 02.10.2026; перед внедрением перепроверяются статусы API, preview/GA, лимиты, хранение данных и доступность функций.

Граница системы и предмет контроля

Автономность — это свойство workflow, а не модели. Один и тот же LLM может работать как read-only помощник, как исполнитель после подтверждения или как агент, запускающий ограниченный цикл без участия человека. Уровень автономности задаётся допустимыми действиями, лимитами, средой выполнения, критериями остановки и тем, в каких точках требуется инженерное approval.

В production опаснее всего не отдельная ошибочная фраза, а неверное действие с побочным эффектом: перезапись файла, изменение записи PDM/ERP, массовая отправка, запуск неподходящего расчёта, неконтролируемая команда shell. Поэтому автономный контур обязан быть транзакционным там, где возможно, идемпотентным при повторных вызовах, наблюдаемым и способным остановиться при неизвестном состоянии.

Рабочее правилоretry без idempotency может дважды создать заказ, отправить письмо или изменить запись. Это правило должно быть закреплено в runtime policy, а не существовать только как рекомендация пользователю.

Что должно быть определено до запуска

operation IDФиксируется явно, имеет owner и проходит валидацию до использования в следующем шаге.
expected revisionХранится с идентификатором источника, версией/статусом и областью применимости; устаревшие данные не смешиваются с действующими.
idempotency keyФиксируется явно, имеет owner и проходит валидацию до использования в следующем шаге.
transaction boundaryФиксируется явно, имеет owner и проходит валидацию до использования в следующем шаге.
backup pointerФиксируется явно, имеет owner и проходит валидацию до использования в следующем шаге.

Артефакты и архитектурные границы

Контур автономности проектируют как конечный автомат с явными состояниями: queued, running, requires_approval, blocked, failed, completed и rolled_back. Переходы разрешает policy, а не свободный текст модели. Это особенно важно для длинных задач, где процесс переживает restart и должен продолжаться с checkpoint, не повторяя уже выполненный side effect.

Изменяющий tool должен иметь bounded scope: конкретный проект, объект, диапазон данных, число операций и срок действия полномочий. Дополнительно задаются budget по шагам/стоимости, network policy и stop conditions. При расхождении ожидаемого и фактического состояния выполнение прекращается до ручной классификации исключения.

change receiptEvidence для аудита и сравнения версий; по нему восстанавливается фактическое выполнение.
before/after stateИмеет стабильный идентификатор, статус приёмки и связь с исходной задачей.
rollback commandИмеет стабильный идентификатор, статус приёмки и связь с исходной задачей.
retry recordEvidence для аудита и сравнения версий; по нему восстанавливается фактическое выполнение.
consistency checkИмеет стабильный идентификатор, статус приёмки и связь с исходной задачей.

Практический workflow

Шаг 1. назначить operation ID. Присвойте задаче класс риска и максимально допустимый уровень автономности.
Шаг 2. проверить preconditions. Сформируйте минимальные права на конкретные действия и объекты.
Шаг 3. создать backup/transaction. Изолируйте выполнение и запретите неоговорённый network/data egress.
Шаг 4. выполнить идемпотентную операцию. Добавьте idempotency и checkpoint до включения retries.
Шаг 5. проверить postcondition. Разделите planner, executor и verifier по ответственности.
Шаг 6. повторять только безопасно. Долгая задача должна уметь resume после restart без повторного side effect.
Шаг 7. тестировать rollback отдельно от happy path. Write-релиз проходит diff/approval и имеет проверенный rollback.

После каждого side effect состояние перечитывается и сравнивается с ожидаемым. Повторный запуск использует idempotency/checkpoint, поэтому не создаёт второй объект и не повторяет уже принятую операцию.

Инженерный сценарий

Входoperation ID; expected revision; idempotency key; transaction boundary; backup pointer. Данные должны быть привязаны к проекту, revision и владельцу.
Действиекаждое изменяющее действие проектировать с idempotency key, precondition, журналом эффекта и проверенным откатом. Каждый tool-call проходит серверную валидацию и попадает в trace.
Контрольcompare-and-set revision; idempotency storage; retry только известных transient ошибок; backup перед batch change; postcondition verification. Для критических изменений добавляется независимое подтверждение.
Выходchange receipt; before/after state; rollback command; retry record; consistency check. Финальный результат должен быть пригоден для повторной проверки без скрытого контекста.

Автономность повышают ступенчато: read-only → draft → approval-gated write → bounded autonomous write. Каждый следующий уровень требует отдельного evidence о качестве и восстановлении после сбоя.

Что измерять

duplicate side effectsПоказывайте абсолютное число и нормированную частоту; critical события не усредняйте с обычными.
successful rollback rateПоказывайте абсолютное число и нормированную частоту; critical события не усредняйте с обычными.
partial-failure rateПоказывайте абсолютное число и нормированную частоту; critical события не усредняйте с обычными.
retry recoveryОпределение метрики, единица, denominator и окно наблюдения фиксируются в metric dictionary.
postcondition mismatchНормируйте на успешную задачу требуемого качества и включайте review/support, а не только runtime.

Чем выше автономность, тем важнее метрики side effects: rollback, duplicate action, policy violation, human rescue и незавершённые долгие задачи. Их нельзя прятать внутри общего task success.

Критерии приёмки

КонтрольМинимальный критерий
ScopeДля «Idempotency, retry и rollback: как агенту безопасно менять реальные системы» однозначно определено, что система делает и что остаётся вне её полномочий.
DataВсе входы имеют источник, revision/status и область применимости; неизвестные значения не подставляются автоматически.
Controlcompare-and-set revision; idempotency storage; retry только известных transient ошибок.
EvidenceСохраняются change receipt, before/after state, rollback command, retry record; по ним можно восстановить ход операции.
QualityМинимум две профильные метрики контролируются на versioned eval-наборе: duplicate side effects и successful rollback rate.
ReleaseИзменяющие действия имеют approval/rollback там, где цена ошибки выходит за согласованный риск.

Failure modes и защитные меры

Главная ошибка — давать автономность быстрее, чем система умеет обнаруживать и откатывать собственные ошибки. Write-доступ выдаётся только после доказанного bounded scope, idempotency и recovery.
  • повторная запись после timeout. Защитная мера: compare-and-set revision; событие сохраняется как regression/incident case.
  • rollback не восстанавливает связанный объект. Защитная мера: idempotency storage; событие сохраняется как regression/incident case.
  • частичный batch считается успешным. Защитная мера: retry только известных transient ошибок; событие сохраняется как regression/incident case.
  • агент не знает итог предыдущего вызова. Защитная мера: backup перед batch change; событие сохраняется как regression/incident case.
  • precondition изменилась между планом и записью. Защитная мера: postcondition verification; событие сохраняется как regression/incident case.

Как переводить из пилота в production

Пилот автономного workflow обязан иметь kill switch, лимит шагов, лимит стоимости, timeout, checkpoint и запрет на произвольное расширение scope. Сначала проверяется recovery path, затем happy path; иначе система умеет выполнять задачу, но не умеет безопасно останавливаться.

Расширение автономности оформляется как изменение класса допуска. Для нового уровня повторно проходят evals, security review и тест rollback. Массовые операции получают batch limit и canary batch, а не запускаются сразу на всём наборе объектов.

Traceability и эксплуатационная запись

Для автономного цикла сохраняют checkpoint ID, budget, step number, side-effect receipt, idempotency key, approvals, retries, rollback actions и reason code остановки. Без этого невозможно доказать, что повторный запуск безопасен.

Чек-лист перед production

КонтрактScope, входы, tools и stop condition описаны до запуска.
ПраваRead/write, сеть и секреты ограничены минимально необходимым.
EvidenceКаждый критичный вывод или action связан с источником и trace.
EvalsЕсть обычные, граничные, негативные и regression cases.
RollbackДля side effect проверено восстановление, а не только наличие команды отката.
OwnerНазначен владелец качества процесса и владелец технической платформы.

Навигация по Wave AI R5 · часть 3 из 5

Часть «Автономность» содержит 7 связанных материалов. Серия идёт от архитектуры к контролю и измерению; каждая статья самостоятельна и ссылается на соседние элементы общего production-контура.

Связать AI-контур с проверяемыми данными Fits Calc

Fits Calc целесообразно использовать как детерминированный расчётный и справочный слой: агент получает структурированные входы и результаты через контролируемые tools, а не воспроизводит инженерный расчёт свободным текстом. Это упрощает verifier, traceability и повторную проверку.

Открыть Fits Calc →

Источники и официальная документация

  1. OpenAI — Agents SDK
  2. OpenAI — Safety in building agents
  3. OpenAI — Sandbox security
  4. OpenAI — MCP approvals and security
  5. OpenAI — Tracing
  6. NIST — AI Risk Management Framework
Проверено: 02.10.2026Production controls обязательныHuman approval — по риску действия