Управление AI-агентами: права, одобрения и журналы

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

Кратко

OWASP называет главный риск избыточной агентностью и сводит его к трём корням: слишком много функций, слишком много прав, слишком много самостоятельности. Меры следуют прямо из этого: дать агенту узкие инструменты вместо командной строки или открытого доступа в сеть; позволить ему действовать от имени пользователя с минимальными правами; проверять права в целевой системе, а не в инструкциях модели; требовать одобрения человека для действий с большими последствиями; вести журналы, по которым можно восстановить происшедшее. Журналы и ограничения частоты уменьшают ущерб, но не предотвращают его.

Три корня проблемы

КореньКак выглядитМера
Избыточные функцииУ агента есть инструмент, который умеет гораздо больше, чем нужно для задачи: командная строка, универсальный HTTP-клиент, запись во весь почтовый ящикУзкие инструменты под конкретное действие. Один инструмент на одно нужное задаче действие
Избыточные праваИнструмент работает под служебной учётной записью, которая может читать и менять всёМинимальные права; действия в контексте конкретного пользователя; отдельная учётная запись для каждого агента
Избыточная самостоятельностьДействия с большими последствиями выполняются без чьего-либо подтвержденияОдобрение человека для действий, которые удаляют, платят, отправляют наружу или меняют доступы

Это деление взято из статьи OWASP об избыточной агентности в его списке главных рисков для LLM-приложений, и с него удобнее всего начинать разбор архитектуры агента.

Проверка прав живёт в целевой системе

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

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

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

Какие действия требуют человека

ДействиеПо умолчанию
Прочитать данные, которые пользователь и так может видетьАгент действует сам
Подготовить письмо, запись или изменениеАгент действует сам; отправляет или сохраняет человек
Отправить что-либо за пределы организацииОдобрение человека
Удалить или перезаписать данныеОдобрение человека и возможность отменить
Платежи, возвраты, изменение кредитных лимитовОдобрение человека и лимиты на стороне платёжной системы
Изменить права, настройки или выкладкуОдобрение человека; лучше, если агенту это вообще недоступно

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

Журналы, по которым можно восстановить события

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

Проверка: после инцидента вы можете ответить, что агент сделал, от чьего имени, с какими правами и кто это разрешил. Если нет, журналы это украшение.

Чек-лист управления для каждого агента

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

Частые вопросы

Что такое избыточная агентность AI-агента?

Термин OWASP для риска, что агент на основе LLM может совершить вредные действия, потому что у него слишком много функций, прав или самостоятельности. Он входит в список главных рисков OWASP для LLM-приложений.

Может ли системный промпт обезопасить AI-агента?

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

Какие действия агента требуют одобрения человека?

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

Может ли AI-агент работать под общей служебной учётной записью?

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

Достаточно ли журналов для управления агентом?

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

С чего начать

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

Написать мне

По теме: Политика AI-ассистентов в разработке, Управление AI