Tools

Режим повышенных привилегий

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

Директивы

Управляйте режимом повышенных привилегий для каждого сеанса с помощью команд с косой чертой:

Директива Действие
/elevated on Выполнять вне песочницы по настроенному пути хоста, сохраняя подтверждения
/elevated ask То же, что on (псевдоним)
/elevated full Выполнять вне песочницы по настроенному пути хоста и пропускать подтверждения, если политика подтверждения для режима/хоста уже разрешает это
/elevated off Вернуться к выполнению, ограниченному песочницей

Также доступно как /elev on|off|ask|full.

Отправьте /elevated без аргумента, чтобы увидеть текущий уровень.

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

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

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

    json5
    {  tools: {    elevated: {      enabled: true,      allowFrom: {        discord: ["user-id-123"],        whatsapp: ["+15555550123"],      },    },  },}
  • Установите уровень

    Отправьте сообщение, содержащее только директиву, чтобы задать значение по умолчанию для сеанса:

    Code
    /elevated full

    Или используйте её прямо в сообщении (применяется только к этому сообщению):

    Code
    /elevated on запусти скрипт развёртывания
  • Команды выполняются вне песочницы

    Когда режим повышенных привилегий активен, вызовы 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>.
    • Все условия должны быть выполнены; иначе режим повышенных привилегий считается недоступным

    Форматы записей списка разрешённых:

    Префикс Что сопоставляется
    (нет) Идентификатор отправителя, номер E.164 или поле From
    name: Отображаемое имя отправителя
    username: Имя пользователя отправителя
    tag: Тег отправителя
    id:, from:, e164: Явное указание идентичности

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

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

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

    Was this useful?
    On this page

    On this page