Пока агент только читает, его ошибка — это неверный ответ, который человек замечает и поправляет за минуту. Как только у агента появляется право записи, та же ошибка становится документом в учётной системе: остатки уехали, взаиморасчёты изменились, отгрузка ушла по неверной строке. Меняется не вероятность ошибки, а то, во что она превращается, и именно из этого строится набор ограничителей.
Разговор о том, насколько хороша модель, здесь бесполезен. Ошибаться она будет всегда, вопрос в доле; а самый частый отказ агента с правом записи вообще не связан с моделью — это повтор запроса после обрыва связи, из которого рождаются дубли документов. Поэтому идемпотентность в этом списке стоит выше, чем качество ответов.
Ниже — восемь ограничителей, которые ставятся до выдачи права записи, разбор идемпотентности на пальцах с ценой одного эпизода дублей, требования к служебной учётной записи агента, две модели работы и правило выбора между ними, порядок ввода в эксплуатацию через теневой режим и три ситуации, где право записи не выдают вообще. Общий список из двенадцати необратимых операций, которые не отдаются агенту ни при какой настройке, разобран отдельно в материале про необратимые действия ИИ-агента.
Восемь ограничителей до выдачи права записи
Все восемь ставятся до того, как агент впервые что-то запишет, и живут в коде и настройках, а не в тексте инструкции для модели. Проверка на приёмке простая: попросите показать место, где каждый ограничитель задан, и убедитесь, что это отдельная настройка или файл, а не абзац внутри промпта.
| № | Ограничитель | Что он закрывает | Признак, что он есть |
|---|---|---|---|
| 1 | Отдельный служебный пользователь агента | Невозможность понять, кто внёс изменение: агент, интеграция или администратор | В журнале документа автор — именная запись агента, а не общая учётная запись обмена |
| 2 | Роль на конкретные виды документов | Расползание прав: агент, которому дали «доступ на запись», пишет куда достанет | В роли перечислены виды документов, всё остальное недоступно на уровне прав |
| 3 | Запрет проведения и удаления | Изменение остатков и взаиморасчётов без участия человека | Попытка провести документ из-под учётной записи агента возвращает отказ |
| 4 | Лимит операций в час и стоп-кран | Цикл в логике, который создаёт сотни документов за минуты | Превышение лимита останавливает запись и отдаёт задачу человеку, а не подстраивается |
| 5 | Статус «черновик» по умолчанию | Попадание неверного документа в учёт до проверки | У документов агента есть отдельный статус, по которому их можно отфильтровать |
| 6 | Ключ идемпотентности | Дубли при повторе запроса после сбоя связи | Повторный запрос с тем же ключом возвращает прежний документ, а не создаёт новый |
| 7 | Журнал с прежними значениями | Невозможность разобрать, что и почему изменилось | По каждому действию видно: что сделано, по какому запросу, что было до, кто подтвердил |
| 8 | Кнопка отката | Ручной разбор последствий вместо возврата состояния | Действие второго класса возвращается одной операцией по записи журнала |
Четвёртый пункт — единственный, который читатели обычно предлагают ослабить: «зачем лимит, если агент делает шестьдесят документов в день». Затем, что цикл в логике создаёт не шестьдесят, а шестьсот, и делает это за четыре минуты. Лимит в 40 операций в час на потоке в 60 документов в день срабатывает только при аномалии — и именно поэтому его срабатывание считается событием, а не помехой.
Схема слева направо. Блок «Запрос агента» → блок «Проверка ключа идемпотентности» с двумя выходами: вниз «ключ уже был — вернуть прежний документ, новый не создавать» и вправо «новый ключ». Далее «Проверка лимита: 40 операций в час» с ответвлением вниз «превышен — стоп-кран, задача человеку». Далее «Создание документа в статусе черновика» → закрытые ворота «Проверка человеком» → «Проведён». Под всей цепочкой сквозная полоса «Журнал: что, по какому запросу, что было до, кто подтвердил» со стрелкой вверх в блок «Откат». Чертёжный стиль, подписи по-русски.
Идемпотентность: почему повтор запроса рождает дубли
Уникальный признак операции, который агент передаёт вместе с запросом. Система запоминает его и при повторном запросе с тем же ключом не выполняет операцию заново, а возвращает результат первой. Ключ собирается из содержания операции — например, из номера входящего документа, даты и идентификатора контрагента, — а не генерируется случайно: иначе повтор придёт с новым ключом и смысл потеряется.
Механика отказа выглядит так. Агент отправил запрос на создание приходной накладной, система документ создала, но ответ не дошёл — оборвалась связь, истёк таймаут, перезапустился сервис. Агент видит ошибку и делает единственное разумное в такой ситуации: повторяет запрос. В учётной системе появляется второй такой же документ. Оба выглядят настоящими, оба содержат корректные данные, и по отдельности к ним нет никаких претензий.
Обнаруживается это не сразу. Пока документы не проведены, они не влияют ни на что; после проведения остатки начинают расходиться с фактическими, но расхождение растёт постепенно. В модельном разборе — поток 60 документов в день, из них дублируются около 40 за сутки, проблема замечена на третьи сутки, то есть накопилось 120 дублей.
Разбирать дубли удалением нельзя, даже если формально права позволяют. Удалённый документ уносит с собой историю, и через месяц восстановить картину «что именно поехало» становится нечем. Правильный порядок: остановить запись стоп-краном, выбрать все документы служебного пользователя агента за подозрительный период, сторнировать дубли и только потом разбираться с причиной. Именно поэтому третий ограничитель запрещает агенту не только проведение, но и удаление.
Служебный пользователь: именной, отдельный, с узкой ролью
Агент работает под собственной учётной записью, и это не формальность. Заведение отдельной технической записи — 4 часа работы инженера, 12 000 ₽; ещё около двух часов уходит на роль, ограниченную конкретными видами документов. Без такой записи разбор одного спорного изменения превращается в гадание, и подробный расчёт этой разницы приведён в материале про права доступа ИИ-агента к системам.
- Отдельно от учётной записи обмена. Если агент пишет под тем же пользователем, что и регулярный обмен с CRM, в журнале документа они неразличимы. При разборе инцидента это означает, что подозрение падает на оба контура сразу и проверять придётся оба.
- Отдельно от учётной записи администратора. Права администратора у агента отменяют все остальные ограничители: роль, запрет проведения и лимиты обходятся, потому что администратору можно всё. Это тот же принцип, что и для людей, — право выдаётся операции, а не должности.
- Раздельные права на чтение и на запись. Читающая часть агента ходит одной учётной записью, пишущая — другой. Ошибка в логике при общем доступе приводит к записи туда, куда агент собирался только заглянуть.
- Имя, по которому понятно, что это агент. Не `service1` и не `robot`, а запись с описанием: что за агент, какой процесс обслуживает, кто на вашей стороне отвечает за его лимиты. Через год это единственное, что позволит понять, зачем запись существует, — и не попасть в категорию сервисных записей без владельца.
Две модели работы и правило выбора
Моделей всего две, и выбирают между ними не по амбициям проекта, а по потоку и по цене ошибки. Промежуточных вариантов на практике не получается: либо документ ждёт человека, либо не ждёт.
| Параметр | Агент готовит черновик, проводит человек | Агент проводит сам в узком классе |
|---|---|---|
| Класс документов | Любой из согласованного перечня | Один-два вида, полностью типовых, с жёсткой проверкой полей |
| Что строится дополнительно | Экран подтверждения и очередь черновиков с фильтром | Постконтроль выборкой и суточная сверка счётчиков |
| Разумный поток | От 30–50 операций в день | От 150 однотипных операций в день |
| Цена одной ошибки | Правка черновика, минуты | Сторно, пересчёт остатков, разбор с контрагентом |
| Сколько подтверждений у человека | По числу документов — за этим следят отдельно | Ноль ежедневно, выборка раз в неделю |
| Когда выбирают | Цена ошибки высокая, поток средний, документы разнородные | Поток высокий, документ однообразный, ошибка дешёвая и обратимая |
У первой модели есть предел, о котором надо знать заранее: подтверждение перестаёт быть контролем, когда его становится больше 20–30 в день на одного человека. Дальше сотрудник нажимает «провести», не читая, и формальный контроль есть, а фактического нет. Если расчёт даёт больше — либо сокращается класс документов, отдаваемых агенту, либо часть из них переводится во вторую модель, где вместо подтверждения работает выборочный постконтроль.
Сравнение в две колонки. Левая «Черновик, проводит человек»: поток от 30–50 операций в день, любой согласованный вид документа, экран подтверждения, цена ошибки — правка черновика; внизу предупреждение «не больше 20–30 подтверждений в день на человека». Правая «Проводит сам, узкий класс»: поток от 150 однотипных операций в день, один-два вида документов, выборочный постконтроль и суточная сверка, цена ошибки — сторно и пересчёт остатков. Между колонками вертикальная стрелка снизу вверх с подписью «переводят по одному виду документов, а не целиком». Чертёжный стиль, подписи по-русски.
Ввод в эксплуатацию и три числа, за которыми смотрят
Право записи не выдаётся одним движением в день запуска. Порядок из четырёх шагов растягивается на шесть-восемь недель, и каждый следующий шаг делается только после того, как предыдущий дал измеримый результат.
- 11. Тестовый контур на обезличенных данных
Агент подключается к копии базы, а не к боевой. Данные для такого контура готовятся отдельно: имена, телефоны и суммы заменяются, структура сохраняется. Как именно это делается и сколько стоит, разобрано в материале про обезличенные данные для тестового контура.
- 22. Теневой режим на боевых данных: две недели без записи
Агент подключается к боевой системе, но пишет не документы, а предложения — в отдельную таблицу. Человек делает работу как обычно, а раз в день сравнивает: что предложил агент и что сделал сотрудник. Это самый дешёвый способ узнать долю расхождений до того, как расхождения станут документами.
- 33. Один вид документа с черновиком
Право записи выдаётся на один вид документа — обычно самый типовой и самый массовый. Остальное остаётся в теневом режиме. Здесь же впервые включаются лимит и стоп-кран, и здесь же проверяют, что стоп-краном умеет пользоваться ваш сотрудник, а не только подрядчик.
- 44. Расширение по результатам, а не по календарю
Следующий вид документа добавляется тогда, когда по предыдущему три недели подряд держатся целевые числа. Если числа не держатся, вид документа возвращается в теневой режим — это нормальный рабочий ход, а не провал проекта.
- Доля документов, поправленных человеком после агента. Целевой уровень — ниже 10 % к четвёртой неделе. Выше 20 % на третьей неделе означает, что вид документа выбран неудачно или данные для него живут не в той системе.
- Число откатов в неделю. Больше трёх — расширение класса документов останавливается до разбора причин. Ноль откатов при заметной доле правок тоже сигнал: значит, ошибки ловят руками и не фиксируют, и статистика перестаёт быть достоверной.
- Срабатывания лимита операций в час. Чаще одного раза в неделю — ищут цикл в логике, а не поднимают лимит. Поднятие лимита в ответ на его срабатывание — самый распространённый способ незаметно отключить четвёртый ограничитель.
Двухосевой график за восемь недель. По горизонтали — недели с 1 по 8, по вертикали — проценты от 0 до 25. Нисходящая линия «доля документов с правками после агента» по точкам: 22, 18, 14, 11, 9, 8, 7, 6. Горизонтальная штриховая линия на отметке 10 % с подписью «порог: к четвёртой неделе ниже». Вертикальная засечка между второй и третьей неделей с подписью «конец теневого режима, включена запись по одному виду документа». Область выше порога до пятой недели залита штриховкой. Чертёжный стиль, подписи по-русски.
Сам контур ограничителей — это работа, которая обязана стоять в смете отдельной строкой. Если её там нет, значит, её не делали. Ставка инженера в расчёте — 3 000 ₽/час.
Три ситуации, где право записи не выдают
В этих трёх случаях правильный ответ — оставить человека, независимо от того, насколько хорошо агент показал себя в теневом режиме. Выигрыш в минутах здесь не покрывает хвоста последствий.
- Документы, влияющие на закрытый период. Всё, что меняет взаиморасчёты, себестоимость или отчётность за уже закрытый месяц. Откат здесь невозможен по существу: даже сторно оставляет след, а данные, на которых уже приняты решения и сданы отчёты, изменить задним числом нельзя.
- Деньги наружу и платёжные реквизиты. Платёжные поручения, возвраты, изменение банковских реквизитов контрагента. Агент готовит пакет документов, решение принимает человек. Это не вопрос доверия к модели: ошибку в реквизитах не откатывает никто, кроме получателя платежа.
- Справочники-хозяева. Номенклатура с ценами, контрагенты, склады. Ошибка в справочнике не остаётся в одном документе — она тиражируется на все будущие. Агент может предложить создание новой позиции, но создаёт её человек, и это единственный случай, где мы советуем оставить ручной ввод даже при большом потоке.
И одна ситуация, где дело не в классе операции, а в состоянии данных. Если цены и остатки живут в трёх местах и расходятся между собой, ограничители будут срабатывать на верных данных и молча пропускать неверные: агент честно возьмёт число из системы, которая ему назначена источником, и оно окажется неправильным. Сначала приводится в порядок владение данными между системами, потом выдаётся право записи. В обратном порядке проект даёт ускорение ошибок, а не работы.
Право записи стоит не столько, сколько стоит модель, а столько, сколько стоит возможность вернуть всё как было.
