提升模式
提升模式(/elevated 指令)
功能说明
/elevated on在 Gateway 宿主机上运行并保留 exec 审批(与/elevated ask相同)。/elevated full在 Gateway 宿主机上运行并自动批准 exec(跳过 exec 审批)。/elevated ask在 Gateway 宿主机上运行但保留 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仅应用于该条消息。 - 群组:在群聊中,提升模式指令仅在代理被提及时才被执行。绕过提及要求的纯命令消息被视为已提及。
- 宿主执行:提升模式强制
exec在 Gateway 宿主机上运行;full还会设置security=full。 - 审批:
full跳过 exec 审批;on/ask在允许列表/审批规则要求时遵守审批。 - 非沙箱代理:对位置无影响;仅影响门控、日志记录和状态。
- 工具策略仍然适用:如果
exec被工具策略拒绝,则无法使用提升模式。 - 与
/exec分离:/exec为已授权发送者调整每会话默认值,不需要提升模式。
解析顺序
- 消息上的内联指令(仅应用于该条消息)。
- 会话覆盖(通过发送纯指令消息设置)。
- 全局默认值(配置中的
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:匹配SenderNameusername:匹配SenderUsernametag:匹配SenderTagid:、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)。
