exec ограничены средой песочницы. Режим повышенных привилегий позволяет агенту выйти из неё и выполнять команды за пределами песочницы с настраиваемыми условиями подтверждения.
Режим повышенных привилегий изменяет поведение, только когда агент работает в песочнице. Для агентов без песочницы exec уже выполняется на хосте.
Директивы
Управляйте режимом повышенных привилегий для каждого сеанса с помощью команд с косой чертой:
Также доступно как
/elev on|off|ask|full.
Отправьте /elevated без аргумента, чтобы увидеть текущий уровень.
Принцип работы
1
Проверьте доступность
Режим повышенных привилегий должен быть включён в конфигурации, а отправитель должен находиться в списке разрешённых:
2
Установите уровень
Отправьте сообщение, содержащее только директиву, чтобы задать значение по умолчанию для сеанса:Или используйте её прямо в сообщении (применяется только к этому сообщению):
3
Команды выполняются вне песочницы
Когда режим повышенных привилегий активен, вызовы
exec выполняются за пределами песочницы. По умолчанию фактическим хостом является
gateway, либо node, если настроенной или сеансовой целью exec является
node. В режиме full подтверждения exec пропускаются, если политика подтверждения для определённых режима и хоста
уже полностью разрешительная (безопасность full,
запрос off); в противном случае по-прежнему применяется обычная политика подтверждения. В режимах
on/ask настроенные правила подтверждения применяются всегда.Порядок разрешения
- Встроенная директива в сообщении (применяется только к этому сообщению)
- Переопределение сеанса (задаётся отправкой сообщения, содержащего только директиву)
- Глобальное значение по умолчанию (
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.
Песочница, политика инструментов и режим повышенных привилегий
Как три условия сочетаются при вызове инструмента.