✋ Подтверждения оператора
Что это. Механизм, при котором агент не выполняет опасный навык сам, а останавливается и спрашивает разрешения у сотрудника.
Когда нужно. Когда цена ошибки выше, чем выигрыш от автоматизации: сменить статус или приоритет обращения, дёрнуть внешнюю систему, оформить возврат. Модель предлагает, человек решает.
Здесь — подтверждения навыков агента сценария: их решают там, где работает агент, — в переписке с клиентом. Действия, которые предлагает ИИ-клиент, подключённый к Fixorix MCP, подтверждаются по ссылке, которую ИИ-клиент получает в ответе и показывает в своём чате, см. Действия, которые видят клиенты.
Подтверждение включается тумблером «Спрашивать подтверждение оператора» в карточке навыка-блока, а у инструмента MCP — режимом: «Каждый вызов», «Один раз за разговор» или «Без подтверждения». Для части вызовов — навыка «HTTP запрос», инструментов MCP с персональными данными в запросе и других — оно обязательно. Такой вызов обрывает пачку действий агента: прогон паркуется, а запрос уходит в очередь подтверждений проекта.
📷 Скриншот: врезка «Агент ждёт вашего решения» над полем ввода (будет добавлен).
Где находится
| Что видно | Что означает |
|---|---|
| Янтарная метка «Агент ждёт» у чата в списке диалогов | Подсказка — «Агент ждёт решения оператора — откройте диалог» |
| Врезка «Агент ждёт вашего решения» над полем ввода в переписке | Здесь принимают решение. Карточки отсортированы по сроку истечения |
| Статус «Ждёт подтверждения» и сегмент «ждёт подтверждения оператора» на вкладке «Трейс» страницы запуска | Прогон стоит на подтверждении; само решение принимается в диалоге |
Очередь обновляется сама примерно раз в 15 секунд и показывает до 200 записей.
Что написано в карточке
| Что видно | Что означает |
|---|---|
| «Агент хочет выполнить» и название блока | Какое действие предлагает модель |
| «Агент хочет выполнить» и «сервер · инструмент» | Навык — инструмент MCP: например, «CRM · find_customer» |
| Бейдж «внешний сервис» | Инструмент стороннего MCP-сервера. Подсказка — «Вызов уйдёт во внешний сервис: проверьте аргументы — в них могут оказаться данные клиента.» |
| «Псевдоним навыка» | Имя, под которым навык выдан агенту |
| «Аргументы» | С какими значениями будет вызван навык. Длинный список сворачивается кнопками «Показать целиком» и «Свернуть» |
| «В запросе персональные данные: телефон, email…» | В аргументах вызова внешнего сервиса нашлись телефон, email, номер карты, паспорт, СНИЛС или IBAN. Такой вызов оператор подтверждает всегда, в любом режиме навыка |
| «Агент уже получил в этом разговоре ответ внешнего сервиса — …» | После чужого текста в разговоре каждый такой вызов подтверждает оператор, см. ниже |
| Кнопка «Разрешить до конца разговора» вместо «Подтвердить» | Навык с режимом «Один раз за разговор». Подсказка — «Разрешение действует до конца этого разговора: дальше агент вызывает этот навык без вопросов, с любыми аргументами. Запросы с персональными данными клиента всё равно придут на подтверждение.» |
| «Без аргументов» | Навык вызывается без параметров |
| «Аргументы не удалось прочитать» | Модель прислала значения, которые не разбираются |
| «Истекает через …» и «запрошено …» | Сколько осталось до истечения срока и когда пришёл запрос. За 5 минут до истечения таймер краснеет |
| «Комментарий» | Необязательное поле над кнопками, подпись — «Комментарий увидит нейросеть» |
| «После решения модель выбирает действие заново — навык может не выполниться» | Ключевая оговорка, см. ниже |
| «Решать может редактор проекта и выше» | Видно вместо поля комментария и кнопок тем, у кого роль ниже «Редактора» |
| «Запрос больше не существует» и кнопка «Обновить» | Запрос удалён, пока карточка была открыта |
Как принять решение
- Откройте диалог с меткой «Агент ждёт».
- Прочитайте карточку во врезке «Агент ждёт вашего решения»: какой навык и с какими аргументами предлагает вызвать модель.
- При желании заполните в карточке поле «Комментарий» — его увидит нейросеть и при подтверждении, и при отказе.
- Нажмите «Подтвердить», если действие уместно. Появится сообщение «Подтверждено — решение отправлено агенту». У навыка с режимом «Один раз за разговор» кнопка называется «Разрешить до конца разговора», а сообщение — «Разрешено до конца разговора — решение отправлено агенту».
- Нажмите «Отклонить», если нет. Откроется окно «Отклонить вызов навыка» с обязательным полем «Причина отказа» — до 2000 символов, туда переносится текст комментария. Пока причина пустая, кнопка «Отклонить» неактивна, а подсказка объясняет зачем: «Без причины модель не поймёт, что было не так».
- Подтвердите отказ. Появится сообщение «Отклонено — решение отправлено агенту».
Отказ приходит модели формулировкой в духе «оператор отказал, не повторяй вызов — предложи другой путь или эскалируй», поэтому причина действительно влияет на то, что агент сделает дальше.
Что происходит после решения
После вашего решения ничего не выполняется автоматически. Агент получает вердикт и выбирает действие заново: разговор мог уйти вперёд, пока запрос ждал ответа. Подтверждённый навык может так и не быть вызван — карточка честно предупреждает об этом строкой «После решения модель выбирает действие заново — навык может не выполниться».
Подтверждение действует только на вызов с теми же аргументами: если модель вызовет навык с другими значениями, появится новый запрос. У инструмента MCP оно ещё и привязано к версии инструмента: если сервер успел изменить инструмент, разрешение на старую версию не сработает.
«Разрешить до конца разговора» действует на все вызовы этого навыка этим агентом до конца разговора — с любыми аргументами, той же версии инструмента. Не покрывает оно только вызовы, которые оператор подтверждает всегда: с персональными данными в запросе и, у сервера с секретом, после ответа внешнего сервиса в разговоре. Для них придёт отдельная карточка с кнопкой «Подтвердить».
Что реально произошло, видно в трассе прогона: шаг «Подтверждение» показывает запрос и решение, а следующий шаг «Ход модели» — что агент выбрал после него.
Если никто не ответил
Срок ожидания задаёт лимит «Ждать подтверждения оператора» в настройках агента: по умолчанию 1 час, потолок — 4 часа.
Когда срок вышел, агент получает ещё один ход без этого навыка: ему сообщают, что время ожидания истекло, и он сам решает, как закончить, — обычно извиняется и уходит в исход эскалации. Порт «Лимит исчерпан» при этом не срабатывает.
Запрос помечается истёкшим (проверка идёт раз в минуту), карточка подписана «Истекло — агент продолжил без подтверждения», а кнопки на ней становятся неактивны. Если решение отправили в последний момент, появится «Решение не применено: запрос истёк» и кнопка «Обновить».
Если решают двое одновременно
Запрос принимает ровно одно решение. Если два сотрудника нажали кнопки одновременно, применится решение того, кто успел первым, а второй увидит «Решение не применено: на этот запрос уже ответили» и кнопку «Обновить». Перезапрашивать и переигрывать ничего не нужно — решение уже ушло агенту.
Когда подтверждение требуется принудительно
Навык «HTTP запрос» уходит на подтверждение независимо от того, что выбрано в тумблере, если:
- метод запроса — любой, кроме
GET; - в запросе есть авторизация;
- модели открыты поля метода, заголовков или типа авторизации.
У инструмента MCP режим подтверждения не опускается ниже допустимого для инструмента: например, инструмент, который сервер пометил как удаляющий, — не ниже «Один раз за разговор», а действие Fixorix, которое увидит клиент, подтверждается каждый раз.
Кроме того, оператор подтверждает именно этот вызов — в любом режиме навыка и даже после «Разрешить до конца разговора», — если:
| Причина | Почему нужен человек |
|---|---|
| В аргументах вызова внешнего сервиса — телефон, email, номер карты, паспорт РФ, СНИЛС или IBAN | Данные клиента уходят в чужую систему — это решает человек. Карточка называет, что нашлось |
| Агент в этом разговоре уже получил ответ внешнего сервиса, а инструмент работает с секретом проекта или меняет данные в Fixorix | Модель прочитала чужой текст, который мог содержать указания, и не должна сама распоряжаться доступом проекта |
Вызов, которому нужен оператор, не уходит в сервис, пока оператор его не подтвердит. Отключить подтверждение для таких вызовов нельзя.
Очередь подтверждений управляется настройкой всего сервиса и по умолчанию включена. Если её выключат, навык с включённым тумблером «Спрашивать подтверждение оператора» (у MCP-навыка — с режимом, отличным от «Без подтверждения») невозможно будет опубликовать, а навык, которому подтверждение нужно принудительно, во время прогона модели не предлагается: агент его просто не видит.
Ограничения
- Решение по запросу принимается один раз и не отменяется.
- Подтверждение не гарантирует выполнения: модель выбирает действие заново.
- Подтверждение одного вызова привязано к аргументам: вызов с другими значениями потребует нового решения. Разрешение до конца разговора к аргументам не привязано, но не покрывает вызовы с персональными данными в запросе.
- Если клиент напишет, пока запрос висит, агент ответит ему в обычном порядке. Запрос при этом остаётся в очереди, и решение по нему агент получит позже.
- Максимальный срок ожидания — 4 часа.
- «Причина отказа» обязательна; и причина, и комментарий — не длиннее 2000 символов.
- Настроить, кому именно приходит запрос, нельзя: он виден всем участникам проекта.
Кто что может
| Действие | Минимальная роль |
|---|---|
| Видеть метку «Агент ждёт», врезку и карточки запросов | По умолчанию |
| Нажимать «Подтвердить» и «Отклонить», писать комментарий | Редактор |
| Включать и выключать «Спрашивать подтверждение оператора» у навыка | Редактор |
| Выбирать режим подтверждения MCP-навыка не ниже, чем на сервере | Редактор |
| Ставить MCP-навыку режим ниже, чем на сервере | Администратор |
| Менять режим подтверждения инструмента на сервере | Администратор |
| Менять лимит «Ждать подтверждения оператора» | Редактор |
Карточка показывает аргументы дословно, а среди них могут оказаться данные клиента — имя, контакты, содержимое обращения. Видеть карточку может любой участник проекта, даже с уровнем «По умолчанию»; ограничить круг тех, кто видит запросы, нельзя. Учитывайте это, когда открываете модели поля с персональными данными.
→ Агентский режим · Навыки агента · MCP-серверы для агентов · Участники и роли · Работа с обращениями