К содержимому
14 авг. 2026 г.·8 мин чтения

Как превратить одобрение ИИ-агента в реальный контроль

Ставьте одобрение ИИ-агента перед записью, фиксируйте намерение и результат, планируйте откат и оставляйте опасные действия людям.

Как превратить одобрение ИИ-агента в реальный контроль

Агент с доступом на запись должен получать одобрение на конкретное последствие, а не общее благословение плана. Полезная контрольная точка находится после того, как агент определил точные цели и параметры, но до того, как первая внешняя система приняла изменение. Раньше человеку предлагают одобрить догадку. Позже одобрение превращается в разбор инцидента.

Принцип кажется простым, пока одна задача не разрастается до сорока вызовов API, состояние продакшена не меняется при открытом окне одобрения или обещанный откат не может восстановить перезаписанные данные. У содержательного контроля четыре свойства: проверяющий видит предлагаемое последствие, одобренное действие не меняется незаметно, система фиксирует произошедшее, а у оператора есть проверенный путь восстановления. Некоторые последствия не проходят эту проверку и должны остаться ручными.

Я рассматриваю доступ на запись как набор узких возможностей, а не одно разрешение. Создание черновой записи и ее публикация требуют разных возможностей. Подготовка миграции базы данных и ее применение тоже различаются. Такие границы позволяют защищать одобрением операцию с последствиями и не прерывать каждое безвредное вычисление.

Ставьте одобрение рядом с побочным эффектом

Барьер одобрения должен находиться непосредственно перед компонентом, который фиксирует запись. Пусть агент без остановки читает, рассуждает, рассчитывает патч, запускает проверки и готовит результат пробного запуска. Остановите его, когда он просит доверенный исполнитель превратить предложение во внешнее изменение. Остановку должен обеспечивать исполнитель, а не модель.

Одобрять на этапе запроса слишком рано. Просьба «убери дубликаты записей клиентов» не говорит, какие записи сольются, какие значения победят и сколько зависимых ссылок изменится. Одобрение после выбора инструмента тоже часто преждевременно: в аргументах инструмента может находиться широкий запрос. Человек должен видеть полный набор выбранных целей и последствия для каждой.

Барьер обязан находиться внутри границы полномочий. Если агент может напрямую вызывать производственный API, а отдельный интерфейс лишь спрашивает согласие, диалог ничего не контролирует. Выдайте агенту учетные данные только для подготовки действия. Для фиксации исполнитель должен обменять токен одобрения на более сильное краткосрочное полномочие. Привяжите токен к хешу канонической полезной нагрузки действия. Изменение цели, параметра или предусловия создает новый хеш и требует нового одобрения.

Для пакетной операции одобряйте ограниченный пакет, а не расплывчатую цель. Покажите количество, перечислите цели при небольшом списке и приложите машиночитаемый файл при большом. Задайте в политике максимальное количество и стоимость. Если поиск обнаружил больше работы, чем одобрил проверяющий, исполнитель должен остановиться. Старый ответ не дает разрешения продолжать.

Практическая проверка проста: может ли человек после нажатия кнопки точно сказать, какая система изменится, какие объекты будут затронуты и какой инвариант должен сохраниться? Если хоть одна часть неизвестна, предложение еще нельзя одобрять.

Показывайте полностью определенное действие

Проверяющий должен видеть представление последствий, построенное из той же канонической полезной нагрузки, которую получит исполнитель. Не заставляйте его толковать внутренние рассуждения, историю чата или обещание модели. Эти материалы дают контекст, но не задают договор. Договором служит нормализованное действие.

Для изменения файлов покажите репозиторий, ревизию, пути, diff, созданные файлы и выполненные проверки. Для SQL нужны идентификатор базы, команда или хеш миграции, режим транзакции, оценка числа затронутых строк из безопасного плана и известные последствия блокировок. Для сообщения покажите получателей, видимый текст, вложения и системы, которые может запустить отправка. Для облачной инфраструктуры отобразите план ресурсов, отдельно отметив замены и удаления.

Экран одобрения должен без раскрытия дополнительных блоков отвечать на четыре вопроса:

  • Какое именно состояние изменится?
  • Почему агент выбрал эти цели?
  • Какие проверки прошли, а какие не запускались?
  • Как восстановить состояние при неверном результате?

Отделяйте объяснение агента от фактов, измеренных инструментами. Фраза «набор тестов прошел» должна поступать от системы тестирования вместе с кодом завершения и хешем артефакта. Фраза «изменение малорисковое» выражает оценку, и интерфейс должен так ее обозначать. Я видел, как проверяющие верили складному объяснению и пропускали разрушающий флаг в реальных аргументах. Сначала показывайте аргументы.

У одобрения должен быть срок действия. Включите базовую ревизию, версию записи, ETag, версию схемы или другое предусловие, подтверждающее, что проверенное состояние еще существует. Даже патч десятиминутной давности безопасен только при чистой проверке ревизии. Решение отменить платеж или сменить производственный секрет может устареть за те же десять минут. Срок зависит от операции, а не от универсального таймера.

Не позволяйте агенту одобрять собственное представление. Стройте его доверенным кодом по типизированной схеме действия, экранируйте недоверенный текст и делайте пропущенные поля видимыми. Пустое поле получателя должно отображаться пустым, а не исчезать с карточки. Скрытые значения по умолчанию тоже являются параметрами и входят в хеш нагрузки.

Классифицируйте действия до автоматизации

Хорошая политика классифицирует операции по последствиям и обратимости до запроса агента. Модель может предложить класс, но доверенный код связывает зарегистрированный тип действия с политикой. Иначе убедительное описание позволит снизить класс опасной операции.

Я использую четыре практических класса. Чтение не требует одобрения, кроме случаев, когда само чтение раскрывает строго ограниченные данные. Черновые записи можно автоматически выполнять в изолированной рабочей области. Обратимые внешние записи требуют одобрения при фиксации. Необратимые операции и изменения полномочий остаются ручными, а окружающая система часто требует второго человека.

Компактная политика может выглядеть так:

actions:
  repo.patch:
    mode: approve_at_commit
    require: [base_revision, diff_digest, test_run_id]
    expires_in: 30m
    rollback: revert_commit
  customer.merge:
    mode: approve_at_commit
    require: [source_ids, winner_id, snapshot_id]
    max_targets: 20
    expires_in: 5m
    rollback: restore_snapshot
  signing_key.destroy:
    mode: human_only
  audit_log.delete:
    mode: forbidden

Различие между human_only и forbidden существенно. Человек может уничтожить выведенный из эксплуатации ключ подписи через консоль управления ключами по обычной процедуре организации. Ни агент, ни исполнитель не должны иметь такой возможности. Удалению аудиторской записи, объясняющей поведение агента, нет законного места в этом пути автоматизации, даже если человек нажмет кнопку.

Еще несколько операций нельзя исполнять автономно: отключать средства надзора за агентом, расширять его собственные полномочия, менять политику одобрения, стирать резервные копии, удалять последнюю копию для восстановления и отправлять безотзывные юридические или финансовые обязательства. Точный список зависит от бизнеса, но принцип постоянен. Агент не должен менять доказательства, полномочия и механизмы восстановления, которые его ограничивают.

Иногда команды считают, что второе одобрение делает безопасным любое действие. Это неверно. Два человека могут одобрить нечитаемый запрос и оба пропустить одно скрытое значение по умолчанию. Несколько проверяющих помогают разделить обязанности, но не исправляют плохой договор действия.

Фиксируйте действие в проверяемом конверте

Создавайте постоянный конверт для каждого предложенного действия и дописывайте переходы состояния по мере одобрения и исполнения. История чата полезна как дополнительное свидетельство, но плохо подходит на роль журнала аудита: она смешивает обсуждение с инструкциями, может пропускать значения инструментов по умолчанию и редко доказывает, какие байты дошли до целевой системы.

Контроль AU-3 в NIST SP 800-53 требует, чтобы аудиторская запись устанавливала, что, когда и где произошло, откуда пришло событие, чем оно закончилось и с какой личностью связано. Это разумный минимум, но исполнителю агента нужно больше: предложение может разойтись с зафиксированным эффектом. Записывайте и намерение, и наблюдаемый результат, связывая их стабильными идентификаторами.

Так должен выглядеть журнал исполнения:

{
  "action_id": "act_01J...",
  "run_id": "run_01J...",
  "action_type": "repo.patch",
  "actor": {"agent_id": "migration-agent", "model_release": "approved-release"},
  "requester": {"user_id": "u_1842", "session_id": "s_9031"},
  "target": {"repository": "billing", "base_revision": "4b2c..."},
  "intent_digest": "sha256:9f3a...",
  "policy": {"version": "2026-08-14.3", "decision": "approval_required"},
  "approval": {"approver_id": "u_771", "payload_digest": "sha256:9f3a...", "at": "2026-08-14T09:31:22Z"},
  "execution": {"started_at": "2026-08-14T09:31:24Z", "executor_id": "exec-prod-2", "attempt": 1},
  "result": {"status": "committed", "revision": "51ad...", "changed_files": 7},
  "recovery": {"kind": "revert_commit", "handle": "51ad..."}
}

Реальное событие также должно содержать канонические параметры или защищенную от подмены ссылку на них, версии инструментов и коннекторов, входные данные политики, результаты предусловий, артефакты проверки, коды ошибок и квитанцию либо идентификатор запроса целевой системы. Попытки записывайте отдельно. Если сетевой тайм-аут оставил результат неизвестным, укажите unknown, сверьтесь с целью и не повторяйте вслепую неидемпотентную операцию.

Защитите журнал от субъекта, которого он описывает. NIST AU-9 посвящен защите аудиторской информации и инструментов аудита. На практике учетные данные агента для записи не должны позволять редактировать или удалять его аудиторский след. Отправляйте события в хранилище с добавлением записей, ограниченным администрированием, правилами хранения, синхронизацией часов и проверками целостности. Удаляйте секреты перед сохранением, но не путайте редактирование с пропуском: отметьте наличие чувствительного поля и сохраните ключевой хеш или защищенную ссылку, если расследованию может понадобиться сопоставление.

Проектируйте обратимость для каждой операции

Оставьте регулируемую систему внутри
CodeHero поставляет изолированные модели для работы на оборудовании внутри вашего периметра.

Изменение обратимо, только если можно назвать обратную операцию, сохранить нужные ей данные и доказать, что она работает после прямого действия. Общий флаг «отмена доступна» ничего не доказывает. Разным системам нужны разные схемы восстановления.

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

До одобрения договор действия должен назвать один из режимов восстановления:

  • Откат транзакции, когда система успевает отменить изменение до его публикации.
  • Восстановление версии, когда старый объект и его версия остаются доступны.
  • Компенсирующее действие, где новое событие смысловым образом компенсирует первое.
  • Исправление вперед, где операторы выпускают корректировку, потому что откат повредит более новое состояние.
  • Отсутствие обратимости, которое повышает класс одобрения или оставляет действие ручным.

Сохраняйте предыдущее состояние избирательно. Снимок затронутых записей может сделать слияние клиентов восстановимым, но копирование всей закрытой базы в рабочую область агента создаст более серьезную проблему. Держите снимки в защищенной системе восстановления цели, шифруйте их с отдельным доступом, назначайте срок хранения, а в запись действия помещайте только идентификатор восстановления.

Проверяйте восстановление так же строго, как прямой путь. Для каждого зарегистрированного действия проведите тестовые данные через подготовку, одобрение, фиксацию и восстановление, затем сравните результат. Проверьте последствия в очередях, кешах, поисковых индексах, вебхуках и нижестоящих реестрах. Если тест проверяет только главную таблицу, он доказывает возможность восстановить только ее.

Идемпотентность связана с темой, но решает другую задачу. Ключ идемпотентности не дает повторной попытке дважды применить одну логическую операцию. Он не обращает плохую операцию. Нужны оба средства: стабильные идентификаторы действий для безопасных повторов и явные идентификаторы восстановления для исправлений.

Устаревшее одобрение нарушает предусловие

Одобрение разрешает одну нагрузку относительно одного известного состояния. Если нагрузка или состояние меняются, исполнитель должен отклонить разрешение и запросить новое предложение. Так оптимистический контроль конкурентности применяется к человеческому решению и закрывает пробел, который часто остается в процессах одобрения.

Привязывайте действия с файлами к хешу коммита, обновления API к ETag или версии записи, работу с базой к версии схемы и ограниченному предикату, а планы инфраструктуры к хешу плана и серийному номеру состояния провайдера, если он доступен. Исполнитель проверяет предусловия прямо перед коммитом. Сообщения агента о более ранней проверке недостаточно.

Для частичного сбоя пакета нужно явное правило. Атомарный пакет откатывает все элементы при сбое одного. Неатомарный пакет записывает результат для каждой цели и останавливается после превышения одобренного порога ошибок. Интерфейс заранее объясняет проверяющему выбранное поведение. Тихое продолжение после нескольких сбоев превращает ограниченное одобрение в эксперимент на продакшене.

В долгой работе отделяйте одобрение плана от одобрения каждой опасной фазы. Человек может разрешить создать тысячу вариантов изменений в изолированной ветке. Для переноса все равно нужен новый барьер, основанный на окончательном diff и текущей базовой ревизии. Повторное использование планового одобрения для развертывания смешивает два разных решения.

Токен одобрения должен использоваться один раз. Если исполнение завершилось ошибкой до коммита, система выпускает новый запрос со ссылкой на прежнее действие и показывает изменения. Повтор старого токена после неоднозначного ответа рискует продублировать последствие или применить старое решение к новому состоянию.

У исполнителя должно быть меньше прав, чем у продакшена

Доверенный исполнитель должен владеть только возможностями, зарегистрированными в политике действий, а не общими правами администратора продакшена. Вынос ключа записи из процесса агента мало помогает, если исполнитель превращает любую строку модели в произвольный вызов API, команду оболочки или SQL. Граница требует типизированных операций и строгой проверки параметров.

Создайте отдельный адаптер для каждого типа действия. Адаптер статуса клиента может принимать идентификатор клиента, ожидаемую версию записи и значение из короткого перечисления. Он не должен принимать произвольный URL, любые заголовки или свободный запрос. Адаптер репозитория может применить проверенный патч к одному названному репозиторию без доступа к оболочке. Это сложнее универсального коннектора, но именно эта работа придает смысл одобрению.

Ограничивайте исполнителя и в целевой системе, и в коде приложения. Разрешите его учетной записи базы вызывать одобренные хранимые процедуры, но не записывать все таблицы. Ограничьте облачные роли названными классами ресурсов и разрешенными операциями. Сузьте учетные данные репозитория до организации и конкретного репозитория. Сетевая политика должна помешать адаптеру достичь постороннего сервиса, даже если неверный параметр пытается его перенаправить.

Считайте вывод инструментов недоверенным вводом. Описание задачи, комментарий в исходнике, значение базы или веб-ответ могут содержать текст, который пытается повлиять на агента. Это часто называют инъекцией промпта, но следствие для контроля проще: прочитанные из цели данные никогда не дают полномочия писать обратно. Полномочие дают только политика и действительный токен одобрения. Исполнитель разбирает типизированные поля и отклоняет инструкции, спрятанные в данных.

Секреты требуют такого же узкого обращения. Модели редко нужно видеть учетные данные. После одобрения исполнитель разрешает ссылку на секрет, использует его для одной зарегистрированной операции и не допускает значение в промпты, предварительные просмотры, ошибки и журналы. Если цели нужен мощный статический секрет, поставьте перед ней брокер, выпускающий краткосрочные учетные данные для конкретного действия. Если цель не поддерживает такое ограничение, классифицируйте адаптер по полной силе секрета, а не по скромному замыслу текущего запроса.

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

Наконец, отделите личность исполнителя от личности одобряющего. Целевая система должна записать, что исполнитель внес изменение от имени названного заявителя по конкретному одобрению, а не выдавать его за проверяющего. Ответственность сохраняется, и люди не привыкают отдавать агенту всю свою сессию при нажатии кнопки.

Измеряйте, могут ли люди принять решение

Получите проверенную переписанную систему быстро
CodeHero завершает проект меньше чем за 30 дней и сверяет поведение с записанным трафиком.

Качество одобрения можно наблюдать. Если почти все запросы одобряются за несколько секунд, поток может содержать малорисковый шум или люди перестали читать. Если для понимания предложения им постоянно нужны сырые журналы, в основном представлении не хватает сведений. Если просроченные предложения регулярно переодобряются без проверки, актуальность превратилась в еще одну раздражающую кнопку.

Собирайте показатели процесса, но не оценивайте отдельных сотрудников по скорости. Полезны время до решения по классу действия, причины отказов, возвраты из-за нехватки контекста, изменения нагрузки после отказа, сбои предусловий, использование аварийного пути и запуски восстановления. Сравнивайте их по типу действия и версии интерфейса. Единая доля одобрений скрывает проблемный адаптер.

Предложите структурированные причины отказа и необязательное текстовое поле. Достаточно короткого списка: неверная цель, неожиданный охват, недостаточные доказательства, опасный момент, ненадежное восстановление и конфликт политики покрывают большинство технических решений. Используйте причины для улучшения схемы и представления. При частом выборе неверной цели поднимите идентификатор и среду выше. При частом недоверии к восстановлению перестаньте называть класс обратимым до успешной тренировки обработчика.

У очередей должны быть владелец и эскалация. Запрос в широкий канал размывает ответственность: каждый полагает, что его проверит человек ближе к системе. Направляйте запросы по системе и классу действия небольшой дежурной группе, показывайте взявшего проверку и освобождайте назначение после бездействия. Заявитель должен видеть ожидание, но не иметь возможности продавить одобрение по умолчанию.

Спроектируйте диалог так, чтобы отказ был удобным. Кнопка отказа должна быть так же доступна, как одобрение, а закрытие окна не означает согласия. Не выбирайте одобрение заранее, не давите обратным отсчетом и не прячьте разрушительные детали в свернутых панелях. Для сложных diff разрешите поиск и фильтрацию, оставив каноническую сводку и хеш видимыми. Доступность входит в контроль безопасности: человек не проверит действие, если не может пользоваться сравнением.

Независимо проверяйте выборку одобренных действий. Сопоставляйте показанное предложение, каноническую нагрузку, квитанцию цели и наблюдаемый результат. Так обнаруживаются двусмысленные поля, добавленные адаптером значения цели по умолчанию и назначения проверяющих вне их компетенции. По результатам меняйте политику или интерфейс, а не только напоминайте людям об осторожности.

Усталость от одобрений обычно означает ошибку классификации. Перенесите предсказуемые действия с малыми последствиями в узкую автоматическую политику с пределами и наблюдением. Объединяйте связанные изменения в ограниченный пакет, когда одно решение действительно охватывает их. Оставляйте отдельные барьеры там, где человеческий контекст меняет результат. Несколько серьезных решений получают больше внимания, чем поток церемониальных запросов.

Переписывание наследуемой системы требует проверки паритета

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

Одного diff исходников здесь недостаточно. Проверяющему нужны ревизия источника, созданная целевая ревизия, архитектурные решения с эксплуатационными последствиями, изменения схемы и результаты сравнения с записанным производственным поведением. Нужен и ясный список намеренных различий. Успешная сборка говорит, что новый код компилируется. Она не доказывает, что переписанный расчет закрытия месяца совпадает с программой, на которой бизнес держался годами.

CodeHero читает всю разноязычную кодовую базу и проверяет переписанное поведение на записанном производственном трафике с помощью стенда паритета. Эти доказательства должны находиться рядом с запросом на перенос, а расхождения нельзя прятать в сводке. В регулируемых средах модели могут работать без внешней сети внутри периметра клиента, но именно его средства одобрения и аудита решают, кто переносит результат.

Считайте миграцию данных отдельным действием на запись. Одобряйте точную версию схемы, хеш преобразования, охват строк, проверочные запросы, предусловия переключения и точку восстановления. Одобрение переноса кода не должно молча разрешать заполнение старых данных, а одобрение заполнения не должно разрешать удаление прежнего хранилища. У операций разные сбои и сроки восстановления.

То же разделение нужно при модернизации архитектуры. Агент может предложить разбить монолит или заменить общий файл на Postgres, но одобрение должно охватывать наблюдаемые последствия: изменение маршрутизации, владение данными, конкурентное поведение и эксплуатационный откат. Иначе человек одобряет название архитектурного приема, а не изменение системы.

Проверяйте контроль попытками его обойти

Покажите паритет рядом с одобрением
Дайте проверяющим результаты паритета, а не только успешную сборку перед продакшеном.

Система одобрения готова только после тестов, доказывающих, что агент не может ее обойти. Успешный диалог по штатному пути показывает работу интерфейса. Он не доказывает, что каждая производственная запись проходит через исполнитель и что токен связан с показанной нагрузкой.

Запустите против контроля враждебные сценарии:

  1. Измените параметр после одобрения и убедитесь, что проверка хеша отвергает исполнение.
  2. Измените версию цели при открытом диалоге и убедитесь в сбое предусловия.
  3. Повторно используйте токен одобрения и убедитесь, что исполнитель отвергает второй запуск.
  4. Удалите обязательное поле и убедитесь, что представление показывает ошибку, а не подставляет значение.
  5. Откажите в одобрении, затем убедитесь, что агент не вызывает коннектор с другими учетными данными или инструментом.

Добавьте тренировки восстановления, а не только модульные тесты. Выберите безопасное действие, похожее на производственное, выполните его, вызовите записанный идентификатор восстановления и проверьте последующее состояние. Оцените, могут ли операторы найти действие по ID, определить одобрившего, восстановить показанную нагрузку и понять, завершилось ли восстановление. Контроль, существующий лишь в документации, подведет именно под давлением.

Проверяйте долю одобрений и исключения на дефекты проекта. Почти всеобщее согласие может означать, что запросы достаточно рутинны для более узкой автоматической политики, либо что люди перестали читать. Частые отказы из-за нехватки контекста указывают на плохую схему действия или представление. Не боритесь с усталостью, обучая людей быстрее нажимать кнопку. Уберите барьеры с малыми последствиями и улучшите остальные.

Аварийный доступ должен оставлять больше доказательств

Аварийный доступ может сократить путь одобрения, но не должен стирать личность, охват или аудиторскую запись. Определите его до инцидента: кто может его включить, какие действия разрешены, сколько живет полномочие и кто потом проверяет использование. Общая административная учетная запись «разбить стекло» создает неотслеживаемый обход.

Используйте индивидуально аутентифицированный запрос, узкое временное полномочие, причину, записанную до исполнения, и немедленное уведомление другого человека. Сохраните ту же каноническую нагрузку действия и конверт результата, что в обычном режиме. Если срочность исключает предварительное одобрение, требуйте скорого ретроспективного разбора, но не называйте его авторизацией.

При недоступности сервиса одобрения система должна закрываться для опасных записей. Чтение и изолированная подготовка могут продолжаться. Предложения в очереди могут ждать. Разрешение коммита из-за сбоя контура управления ослабляет контроль во время аварии, когда у операторов меньше всего свободного внимания.

Содержательное одобрение намеренно узкое: один известный субъект, одно каноническое действие, одно текущее состояние, одно ограниченное последствие и один записанный результат. Закрепите этот договор в исполнителе, держите полномочия и доказательства вне доступа агента и отказывайтесь от автоматизации, если честного пути восстановления нет.

Вопросы

Где ставить человеческое одобрение в процессе работы ИИ-агента?

После определения точных целей и параметров, но непосредственно перед внешней записью доверенным исполнителем. Барьер должен обеспечивать исполнитель; окно согласия рядом с агентом, у которого уже есть производственные учетные данные, ничего не контролирует.

Нужно ли одобрять каждый вызов инструмента агентом?

Нет. Чтение, вычисления, пробные запуски и изолированные черновые записи обычно могут идти с узкими правами. Одобрение требуется в точке, где ограниченное предложение становится внешним последствием, а более опасные операции остаются ручными.

Что должен показывать экран одобрения?

Покажите точную цель, канонические параметры, предлагаемый diff или последствие, измеренные результаты проверок, предусловия и способ восстановления. Факты от инструментов должны идти раньше объяснения агента, а значения по умолчанию нельзя скрывать.

Сколько времени должно действовать одобрение агента?

Привяжите срок к риску операции и предусловию состояния, а не только к часам. Базовая ревизия, ETag, версия записи или схемы должна отменять одобрение при изменении проверенного состояния.

Что записывать для каждого действия агента?

Сохраняйте личности агента и заявителя, тип действия, каноническое намерение, хеш нагрузки, версию политики, одобрение, предусловия цели, исполнитель, попытки, наблюдаемый результат, квитанцию цели и идентификатор восстановления. Храните предложение и итог отдельно, чтобы видеть расхождения.

Достаточно ли истории чата для журнала аудита?

Нет. Она объясняет обсуждение, но редко содержит нормализованные аргументы инструментов, скрытые значения по умолчанию, точные квитанции цели и зафиксированный результат. Сохраняйте ее как дополнительный контекст рядом со структурированным защищенным конвертом действия.

Когда автоматическое изменение действительно обратимо?

Нужны названная обратная или компенсирующая операция, сохраненное для нее состояние и тест, охватывающий последующие эффекты. Метка rollback без рабочего идентификатора восстановления остается пожеланием, а не контролем.

Какие операции ИИ-агент никогда не должен автоматизировать?

Не позволяйте агенту расширять собственные права, менять политику одобрения, стирать аудиторский след, уничтожать последнюю копию восстановления и принимать безотзывные юридические или финансовые обязательства. Часть разрушительных действий остается только человеческой, а часть нужно полностью запретить на этом пути.

Как обрабатывать частичные сбои одобренного пакета?

До одобрения объявите, атомарен ли пакет. Для неатомарной работы записывайте результат каждой цели и останавливайтесь на одобренном пороге ошибок; агент не должен молча расширять пакет или продолжать после необъясненных сбоев.

Делает ли одобрение двумя людьми опасное действие безопасным?

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