Управление AI-агентами: права, одобрения и журналы
Чат-бот, который отвечает на вопросы, может ошибиться. Агент, который отправляет письма, меняет записи и вызывает API, может ошибиться и действовать по этой ошибке. Управление агентами касается не столько модели, сколько того, к чему ей разрешено прикасаться.
Кратко
OWASP называет главный риск избыточной агентностью и сводит его к трём корням: слишком много функций, слишком много прав, слишком много самостоятельности. Меры следуют прямо из этого: дать агенту узкие инструменты вместо командной строки или открытого доступа в сеть; позволить ему действовать от имени пользователя с минимальными правами; проверять права в целевой системе, а не в инструкциях модели; требовать одобрения человека для действий с большими последствиями; вести журналы, по которым можно восстановить происшедшее. Журналы и ограничения частоты уменьшают ущерб, но не предотвращают его.
Три корня проблемы
| Корень | Как выглядит | Мера |
| Избыточные функции | У агента есть инструмент, который умеет гораздо больше, чем нужно для задачи: командная строка, универсальный HTTP-клиент, запись во весь почтовый ящик | Узкие инструменты под конкретное действие. Один инструмент на одно нужное задаче действие |
| Избыточные права | Инструмент работает под служебной учётной записью, которая может читать и менять всё | Минимальные права; действия в контексте конкретного пользователя; отдельная учётная запись для каждого агента |
| Избыточная самостоятельность | Действия с большими последствиями выполняются без чьего-либо подтверждения | Одобрение человека для действий, которые удаляют, платят, отправляют наружу или меняют доступы |
Это деление взято из статьи OWASP об избыточной агентности в его списке главных рисков для LLM-приложений, и с него удобнее всего начинать разбор архитектуры агента.
Проверка прав живёт в целевой системе
Самая частая ошибка проектирования: записать правила в промпт. Не удаляй записи, читай только данные этого клиента. Промпт это просьба, а не ограничение. Всё, что попадает в модель, в том числе текст внутри документа или письма, которое агент читает, может попытаться изменить его поведение.
Практическое правило: считайте, что агент рано или поздно попробует сделать всё, что позволяют его инструменты. Если такой исход недопустим, значит, проблема в инструменте или в его правах, что бы ни было написано в инструкциях.
Поэтому целевая система сама проверяет каждый запрос: кто пользователь, что ему разрешено, принадлежит ли ему эта запись. У учётной записи агента только те права, которые нужны для задачи. Это тот же принцип, что и проверка прав на сервере в любом приложении, просто применённый к новому типу клиента.
Какие действия требуют человека
| Действие | По умолчанию |
| Прочитать данные, которые пользователь и так может видеть | Агент действует сам |
| Подготовить письмо, запись или изменение | Агент действует сам; отправляет или сохраняет человек |
| Отправить что-либо за пределы организации | Одобрение человека |
| Удалить или перезаписать данные | Одобрение человека и возможность отменить |
| Платежи, возвраты, изменение кредитных лимитов | Одобрение человека и лимиты на стороне платёжной системы |
| Изменить права, настройки или выкладку | Одобрение человека; лучше, если агенту это вообще недоступно |
На шаге одобрения должно быть видно, что именно произойдёт на самом деле, а не пересказ агента. Человек, который одобряет пересказ, одобряет пересказ.
Журналы, по которым можно восстановить события
- Каждый вызов инструмента с входными и выходными данными, учётной записью и временем.
- Пользователь и разговор, которые привели к действию.
- Одобрения: кто что одобрил и что ему при этом показали.
- Ошибки и отказы, а не только успешные действия.
Проверка: после инцидента вы можете ответить, что агент сделал, от чьего имени, с какими правами и кто это разрешил. Если нет, журналы это украшение.
Чек-лист управления для каждого агента
- Записанное назначение и список действий, которые агенту разрешены.
- Инструменты, которые один к одному соответствуют этим действиям, и ничего сверх этого.
- Учётная запись и права, ограниченные назначением и отдельные от учётных записей людей.
- Проверка прав в системах, которые вызывает агент.
- Правила одобрения для действий с большими последствиями.
- Журналы, которые проходят проверку восстановлением.
- Владелец, который может отключить агента, и проверенный способ это сделать.
Частые вопросы
Что такое избыточная агентность AI-агента?
Термин OWASP для риска, что агент на основе LLM может совершить вредные действия, потому что у него слишком много функций, прав или самостоятельности. Он входит в список главных рисков OWASP для LLM-приложений.
Может ли системный промпт обезопасить AI-агента?
Нет. Инструкции в промпте это просьбы, и содержимое, которое агент читает, может попытаться их переопределить. Безопасность дают узкие инструменты, минимальные права и проверка прав в целевой системе.
Какие действия агента требуют одобрения человека?
Всё с большими последствиями: отправка за пределы организации, удаление или перезапись данных, платежи и возвраты, изменение прав и настроек. Одобряющий должен видеть само действие, а не пересказ.
Может ли AI-агент работать под общей служебной учётной записью?
Нет. У каждого агента должна быть своя учётная запись с правами, которые нужны для его назначения, и по возможности он должен действовать в контексте пользователя, которого обслуживает.
Достаточно ли журналов для управления агентом?
Нет. Журналы и ограничения частоты уменьшают и показывают ущерб, но не предотвращают его. Их нужно сочетать с минимальными правами, узкими инструментами и одобрением важных действий.