Elevated 模式(/elevated 指令)

功能说明

  • /elevated on 在 Gateway 主机上运行,保留执行审批(与 /elevated ask 相同)。
  • /elevated full 在 Gateway 主机上运行并且自动批准执行(跳过执行审批)。
  • /elevated ask 在 Gateway 主机上运行,但保留执行审批(与 /elevated on 相同)。
  • on/ask 不会强制设置 exec.security=full;配置的安全策略和审批策略仍然生效。
  • 只在 Agent 处于 Sandbox 模式时改变行为(否则执行已经在主机上运行)。
  • 指令形式:/elevated on|off|ask|full/elev on|off|ask|full
  • 只接受 on|off|ask|full;其他任何输入会返回提示,不会改变状态。

控制范围(以及不控制什么)

  • 可用性门控tools.elevated 是全局基准。agents.list[].tools.elevated 可以进一步限制每个 Agent 的 elevated 权限(两者都必须允许)。
  • Session 状态/elevated on|off|ask|full 为当前 Session 设置 elevated 级别。
  • 内联指令:消息中的 /elevated on|ask|full 仅应用于该条消息。
  • 群组:在群聊中,只有当 Agent 被提及时,elevated 指令才会生效。绕过提及要求的纯命令消息会被视为已提及。
  • 主机执行:elevated 强制 exec 在 Gateway 主机上运行;full 还会设置 security=full
  • 审批full 跳过执行审批;on/ask 在白名单或审批规则要求时会保留审批。
  • 非 Sandbox Agent:对位置无影响;仅影响门控、日志和状态。
  • 工具策略仍然生效:如果 exec 被工具策略拒绝,则无法使用 elevated。
  • /exec 分离/exec 为授权发送者调整 Session 默认值,不需要 elevated。

解析优先级

  1. 消息上的内联指令(仅应用于该条消息)。
  2. Session 覆盖(通过发送纯指令消息设置)。
  3. 全局默认值(配置中的 agents.defaults.elevatedDefault)。

设置 Session 默认值

  • 发送一条仅包含指令的消息(允许空格),例如 /elevated full
  • 会收到确认回复(Elevated mode set to full... / Elevated mode disabled.)。
  • 如果 elevated 访问被禁用或发送者不在批准的白名单中,指令会回复可操作的错误,不会改变 Session 状态。
  • 发送 /elevated(或 /elevated:)不带参数可查看当前 elevated 级别。

可用性和白名单

  • 功能门控:tools.elevated.enabled(即使代码支持,默认也可以通过配置关闭)。
  • 发送者白名单:tools.elevated.allowFrom 包含各 Provider 的白名单(例如 discordwhatsapp)。
  • 单个 Agent 门控:agents.list[].tools.elevated.enabled(可选;只能进一步限制)。
  • 单个 Agent 白名单:agents.list[].tools.elevated.allowFrom(可选;设置后,发送者必须同时匹配全局和单个 Agent 的白名单)。
  • Discord 回退:如果省略 tools.elevated.allowFrom.discord,会使用 channels.discord.dm.allowFrom 列表作为回退。设置 tools.elevated.allowFrom.discord(即使是 [])可覆盖。单个 Agent 的白名单不会使用回退。
  • 所有门控都必须通过;否则 elevated 被视为不可用。

日志和状态

  • Elevated 执行调用会以 info 级别记录日志。
  • Session 状态包含 elevated 模式(例如 elevated=askelevated=full)。