Встроенные инструменты

Режим повышенных прав

Что он делает

  • /elevated on выполняется на шлюзовом хосте и сохраняет подтверждения exec (так же, как /elevated ask).
  • /elevated full выполняется на шлюзовом хосте и автоматически подтверждает exec (пропускает подтверждения выполнения).
  • /elevated ask выполняется на шлюзовом хосте, но сохраняет подтверждения exec (так же, как /elevated on).
  • on/ask не принудительно устанавливают exec.security=full; по-прежнему применяется настроенная политика безопасности/запроса.
  • Изменяет поведение только когда агент находится в песочнице (в противном случае exec уже выполняется на хосте).
  • Формы директив: /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 внутри сообщения применяется только к этому сообщению.
  • Группы: В групповых чатах директивы повышенных прав учитываются только при упоминании агента. Сообщения только с командами, которые обходят требования к упоминанию, рассматриваются как упомянутые.
  • Выполнение на хосте: elevated принудительно запускает exec на шлюзовом хосте; full также устанавливает security=full.
  • Подтверждения: full пропускает подтверждения exec; on/ask соблюдают их, когда этого требуют правила allowlist/ask.
  • Агенты вне песочницы: не влияет на местоположение; влияет только на условия, логирование и статус.
  • Политика инструментов по-прежнему применяется: если exec запрещён политикой инструментов, режим повышенных прав использовать нельзя.
  • Отдельно от /exec: /exec корректирует параметры сеанса по умолчанию для авторизованных отправителей и не требует повышенных прав.

Порядок определения

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

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

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

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

  • Флаг функции: tools.elevated.enabled (по умолчанию может быть выключен через конфигурацию, даже если код его поддерживает).
  • Список разрешений отправителя: tools.elevated.allowFrom с отдельными списками для каждого провайдера (например, discord, whatsapp).
  • Записи в списке без префикса соответствуют только значениям идентификаторов в контексте отправителя (SenderId, SenderE164, From); поля маршрутизации получателя никогда не используются для авторизации повышенных прав.
  • Для изменяемых метаданных отправителя требуются явные префиксы:
    • name:<значение> соответствует SenderName
    • username:<значение> соответствует SenderUsername
    • tag:<значение> соответствует SenderTag
    • id:<значение>, from:<значение>, e164:<значение> доступны для явного указания идентификатора
  • Условие на агента: agents.list[].tools.elevated.enabled (опционально; может только дополнительно ограничивать).
  • Список разрешений на агента: agents.list[].tools.elevated.allowFrom (опционально; если установлен, отправитель должен соответствовать обоим спискам: глобальному и на агента).
  • Резервный вариант для Discord: если tools.elevated.allowFrom.discord опущен, используется список channels.discord.allowFrom в качестве резервного (устаревшее: channels.discord.dm.allowFrom). Установите tools.elevated.allowFrom.discord (даже []), чтобы переопределить. Списки разрешений на агента не используют резервный вариант.
  • Все условия должны быть выполнены; в противном случае режим повышенных прав считается недоступным.

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

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

Инструмент PDFИнструмент Exec