Skip to main content
Когда агент работает внутри песочницы, его команды exec ограничены средой песочницы. Режим повышенных привилегий позволяет агенту выйти из неё и выполнять команды за пределами песочницы с настраиваемыми условиями подтверждения.
Режим повышенных привилегий изменяет поведение, только когда агент работает в песочнице. Для агентов без песочницы exec уже выполняется на хосте.

Директивы

Управляйте режимом повышенных привилегий для каждого сеанса с помощью команд с косой чертой: Также доступно как /elev on|off|ask|full. Отправьте /elevated без аргумента, чтобы увидеть текущий уровень.

Принцип работы

1

Проверьте доступность

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

Установите уровень

Отправьте сообщение, содержащее только директиву, чтобы задать значение по умолчанию для сеанса:
Или используйте её прямо в сообщении (применяется только к этому сообщению):
3

Команды выполняются вне песочницы

Когда режим повышенных привилегий активен, вызовы exec выполняются за пределами песочницы. По умолчанию фактическим хостом является gateway, либо node, если настроенной или сеансовой целью exec является node. В режиме full подтверждения exec пропускаются, если политика подтверждения для определённых режима и хоста уже полностью разрешительная (безопасность full, запрос off); в противном случае по-прежнему применяется обычная политика подтверждения. В режимах on/ask настроенные правила подтверждения применяются всегда.

Порядок разрешения

  1. Встроенная директива в сообщении (применяется только к этому сообщению)
  2. Переопределение сеанса (задаётся отправкой сообщения, содержащего только директиву)
  3. Глобальное значение по умолчанию (agents.defaults.elevatedDefault в конфигурации)

Доступность и списки разрешённых

  • Глобальное условие: tools.elevated.enabled (должно быть true)
  • Список разрешённых отправителей: tools.elevated.allowFrom со списками для каждого канала
  • Условие для агента: agents.list[].tools.elevated.enabled (может только дополнительно ограничивать; глобальное условие и условие для агента должны иметь значение true)
  • Список разрешённых для агента: agents.list[].tools.elevated.allowFrom (отправитель должен соответствовать как глобальному списку, так и списку для агента)
  • Резервный список разрешённых от канала: плагины каналов могут при необходимости предоставлять резервный список разрешённых через перехватчик адаптера SDK; он используется, когда tools.elevated.allowFrom.<provider> не настроен. Сейчас ни один встроенный канал не реализует этот перехватчик, поэтому на практике каждому провайдеру требуется явная запись tools.elevated.allowFrom.<provider>.
  • Все условия должны быть выполнены; иначе режим повышенных привилегий считается недоступным
Форматы записей списка разрешённых:

Что не контролирует режим повышенных привилегий

  • Политика инструментов: если exec запрещён политикой инструментов, режим повышенных привилегий не может переопределить запрет.
  • Политика выбора хоста: режим повышенных привилегий не превращает auto в свободное переопределение между хостами. Он использует настроенные или сеансовые правила цели exec, выбирая node, только когда целью уже является node.
  • Отдельно от /exec: директива /exec настраивает для авторизованных отправителей сеансовые значения exec по умолчанию (хост, безопасность, запрос, Node) и не требует режима повышенных привилегий.
Команда чата bash (префикс !; псевдоним /bash) управляется отдельным условием: помимо собственного флага tools.bash.enabled, требуется включить tools.elevated. Отключение режима повышенных привилегий также блокирует команды оболочки !.

Связанные материалы

Инструмент Exec

Выполнение команд оболочки агентом.

Подтверждения Exec

Система подтверждений и списков разрешённых для exec.

Песочница

Настройка песочницы на уровне Gateway.

Песочница, политика инструментов и режим повышенных привилегий

Как три условия сочетаются при вызове инструмента.