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

Директивы

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

Как это работает

1

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

Режим повышенных прав должен быть включен в конфигурации, а отправитель должен быть в списке разрешенных:
{
  tools: {
    elevated: {
      enabled: true,
      allowFrom: {
        discord: ["user-id-123"],
        whatsapp: ["+15555550123"],
      },
    },
  },
}
2

Задайте уровень

Отправьте сообщение, состоящее только из директивы, чтобы задать значение по умолчанию для сеанса:
/elevated full
Или используйте ее внутри сообщения (применяется только к этому сообщению):
/elevated on run the deployment script
3

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

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

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

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

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

  • Глобальный шлюз: tools.elevated.enabled (должно быть true)
  • Список разрешенных отправителей: tools.elevated.allowFrom со списками для каждого канала
  • Шлюз для отдельного агента: agents.list[].tools.elevated.enabled (может только дополнительно ограничивать)
  • Список разрешенных для отдельного агента: agents.list[].tools.elevated.allowFrom (отправитель должен совпадать и с глобальным, и с агентским списком)
  • Резервный вариант для Discord: если tools.elevated.allowFrom.discord опущен, channels.discord.allowFrom используется как резервный вариант
  • Все шлюзы должны пройти проверку; иначе режим повышенных прав считается недоступным
Форматы записей списка разрешенных:
ПрефиксСовпадает с
(нет)ID отправителя, E.164 или поле From
name:Отображаемое имя отправителя
username:Имя пользователя отправителя
tag:Тег отправителя
id:, from:, e164:Явное указание идентичности

Чем режим повышенных прав не управляет

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

См. также

Инструмент Exec

Выполнение shell-команд агентом.

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

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

Песочница

Конфигурация песочницы на уровне Gateway.

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

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