Перейти к основному содержанию

Повышенный режим (/elevated directives)

Что это делает

  • /elevated on выполняется на хосте шлюза Gateway и сохраняет подтверждения выполнения команд (то же, что /elevated ask).
  • /elevated full выполняется на хосте шлюза Gateway и автоматически подтверждает выполнение команд (пропускает подтверждения).
  • /elevated ask выполняется на хосте шлюза Gateway, но сохраняет подтверждения выполнения команд (то же, что /elevated on).
  • on/ask не принуждают exec.security=full; настроенная политика безопасности/запросов по‑прежнему применяется.
  • Изменяет поведение только когда агент sandboxed (в противном случае выполнение уже происходит на хосте).
  • Формы директив: /elevated on|off|ask|full, /elev on|off|ask|full.
  • Принимаются только on|off|ask|full; всё остальное возвращает подсказку и не меняет состояние.

Что он контролирует (и чего не контролирует)

  • Шлюзы доступности: tools.elevated — глобальная базовая настройка. agents.list[].tools.elevated может дополнительно ограничивать повышенный режим для каждого агента (оба условия должны разрешать).
  • Состояние на сеанс: /elevated on|off|ask|full задаёт уровень повышенного режима для текущего ключа сеанса.
  • Встроенная директива: /elevated on|ask|full внутри сообщения применяется только к этому сообщению.
  • Группы: в групповых чатах директивы повышенного режима учитываются только при упоминании агента. Сообщения, состоящие только из команды и обходящие требование упоминания, считаются упоминанием.
  • Выполнение на хосте: повышенный режим принудительно включает exec на хосте шлюза Gateway; full также устанавливает security=full.
  • Подтверждения: full пропускает подтверждения выполнения команд; on/ask учитывают их, когда этого требуют правила allowlist/ask.
  • Агенты без sandbox: no-op для места выполнения; влияет только на шлюзы, логирование и статус.
  • Политика инструментов сохраняется: если exec запрещён политикой инструмента, повышенный режим использовать нельзя.
  • Отдельно от /exec: /exec настраивает значения по умолчанию на сеанс для авторизованных отправителей и не требует повышенного режима.

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

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

Установка значения по умолчанию для сеанса

  • Отправьте сообщение, состоящее только из директивы (допускаются пробелы), например /elevated full.
  • Отправляется подтверждающий ответ (Elevated mode set to full... / Elevated mode disabled.).
  • Если доступ к повышенному режиму отключён или отправитель не находится в утверждённом списке разрешённых, директива отвечает прикладной ошибкой и не меняет состояние сеанса.
  • Отправьте /elevated (или /elevated:) без аргумента, чтобы увидеть текущий уровень повышенного режима.

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

  • Функциональный флаг: tools.elevated.enabled (значение по умолчанию может быть выключено через конфиг, даже если код поддерживает функцию).
  • Глобальный allowlist отправителей: tools.elevated.allowFrom с allowlist’ами по провайдерам (например, discord, whatsapp).
  • Шлюз для агента: agents.list[].tools.elevated.enabled (необязательно; может только дополнительно ограничивать).
  • Allowlist для агента: agents.list[].tools.elevated.allowFrom (необязательно; при наличии отправитель должен соответствовать и глобальному allowlist, и allowlist’у агента).
  • Резерв для Discord: если tools.elevated.allowFrom.discord опущен, используется список channels.discord.dm.allowFrom как резерв. Установите tools.elevated.allowFrom.discord (даже []), чтобы переопределить. Allowlist’ы для агента резерв не используют.
  • Все шлюзы должны пройти проверку; иначе повышенный режим считается недоступным.

Логирование + статус

  • Вызовы выполнения команд в повышенном режиме логируются на уровне info.
  • Статус сеанса включает повышенный режим (например, elevated=ask, elevated=full).