Tools
Режим повышенных прав
Когда агент работает внутри песочницы, его команды exec ограничены средой
песочницы. Режим повышенных прав позволяет агенту выйти за ее пределы и вместо этого выполнять команды
вне песочницы, с настраиваемыми шлюзами подтверждения.
Директивы
Управляйте режимом повышенных прав для каждого сеанса с помощью slash-команд:
| Директива | Что делает |
|---|---|
/elevated on |
Выполняет вне песочницы по настроенному пути на хосте, сохраняя подтверждения |
/elevated ask |
То же, что on (псевдоним) |
/elevated full |
Выполняет вне песочницы по настроенному пути на хосте и пропускает подтверждения |
/elevated off |
Возвращает выполнение, ограниченное песочницей |
Также доступно как /elev on|off|ask|full.
Отправьте /elevated без аргумента, чтобы увидеть текущий уровень.
Как это работает
Проверьте доступность
Режим повышенных прав должен быть включен в конфигурации, а отправитель должен быть в списке разрешенных:
{ tools: { elevated: { enabled: true, allowFrom: { discord: ["user-id-123"], whatsapp: ["+15555550123"], }, }, },}Задайте уровень
Отправьте сообщение, состоящее только из директивы, чтобы задать значение по умолчанию для сеанса:
/elevated fullИли используйте ее внутри сообщения (применяется только к этому сообщению):
/elevated on run the deployment scriptКоманды выполняются вне песочницы
При активном режиме повышенных прав вызовы exec выходят за пределы песочницы. Эффективный хост —
gateway по умолчанию или node, когда настроенная/сеансовая цель exec —
node. В режиме full подтверждения exec пропускаются. В режиме on/ask
настроенные правила подтверждения по-прежнему применяются.
Порядок разрешения
- Встроенная директива в сообщении (применяется только к этому сообщению)
- Переопределение сеанса (задается отправкой сообщения, состоящего только из директивы)
- Глобальное значение по умолчанию (
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 по умолчанию для авторизованных отправителей и не требует режима повышенных прав.