exec 命令会被限制在沙箱环境中。提升模式 允许代理突破沙箱,改为在沙箱外运行命令,并可配置审批门控。
只有当代理处于沙箱化状态时,提升模式才会改变行为。对于未沙箱化的代理,exec 本来就会在宿主机上运行。
指令
通过斜杠命令按会话控制提升模式:| 指令 | 作用 |
|---|---|
/elevated on | 在配置的宿主路径上于沙箱外运行,并保留审批 |
/elevated ask | 与 on 相同(别名) |
/elevated full | 在配置的宿主路径上于沙箱外运行,并跳过审批 |
/elevated off | 恢复为仅在沙箱内执行 |
/elev on|off|ask|full。
发送不带参数的 /elevated 可查看当前级别。
工作原理
解析顺序
- 消息中的内联指令(仅适用于该消息)
- 会话覆盖(通过发送仅包含指令的消息设置)
- 全局默认值(配置中的
agents.defaults.elevatedDefault)
可用性和允许列表
- 全局门控:
tools.elevated.enabled(必须为true) - 发送者允许列表:
tools.elevated.allowFrom,按频道分别配置列表 - 每个代理的门控:
agents.list[].tools.elevated.enabled(只能进一步限制) - 每个代理的允许列表:
agents.list[].tools.elevated.allowFrom(发送者必须同时匹配全局 + 每个代理的规则) - Discord 回退:如果省略
tools.elevated.allowFrom.discord,则使用channels.discord.allowFrom作为回退 - 所有门控都必须通过;否则 elevated 会被视为不可用
| 前缀 | 匹配内容 |
|---|---|
| (无) | 发送者 ID、E.164,或 From 字段 |
name: | 发送者显示名称 |
username: | 发送者用户名 |
tag: | 发送者标签 |
id:, from:, e164: | 显式身份标识目标 |
elevated 不控制的内容
- 工具策略:如果
exec被工具策略拒绝,elevated 无法覆盖。 - 宿主选择策略:elevated 不会将
auto变成可自由跨宿主覆盖的选项。它会使用已配置/会话的 exec 目标规则,仅当目标本身已经是node时才选择node。 - 与
/exec分离:/exec指令会为授权发送者调整每个会话的 exec 默认值,并不需要 elevated 模式。
bash 聊天命令(
! 前缀;/bash 别名)是一个独立门控,除了其自身的 tools.bash.enabled 标志外,还要求启用 tools.elevated。禁用 elevated 也会将 ! shell 命令一并锁定。相关内容
Exec 工具
来自代理的 Shell 命令执行。
Exec 审批
exec 的审批和允许列表系统。沙箱
Gateway 级别的沙箱配置。
沙箱 vs 工具策略 vs 提升模式
工具调用期间这三个门控如何组合。