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

Что он делает

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

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

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

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

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

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

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

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

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

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

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