提权模式
当一个 Agent 在沙箱中运行时,其 exec 命令被限制在沙箱环境内。Elevated 模式允许 Agent 突破普通的 Agent 配置沙箱,转而在沙箱之外运行命令,并带有可配置的审批门控。创建者角色要求沙箱化的会话无法使用 Elevated 模式逃逸。
Info
Elevated 模式仅在 Agent 处于沙箱化状态时改变行为。对于未沙箱化的 Agent,exec 本来就在主机上运行。
指令¶
通过斜杠命令按会话控制 elevated 模式:
| 指令 | 作用 |
|---|---|
/elevated on |
在配置的主机路径上于沙箱外运行,保留审批 |
/elevated ask |
与 on 相同(别名) |
/elevated full |
在配置的主机路径上于沙箱外运行,并且当模式/主机的审批策略已经较为宽松时跳过审批 |
/elevated off |
恢复为沙箱受限执行 |
也可使用 /elev on|off|ask|full。
发送不带参数的 /elevated 可查看当前级别。
工作原理¶
1. 检查可用性
必须在配置中启用 Elevated,并且发送者必须在允许列表中:
{
tools: {
elevated: {
enabled: true,
allowFrom: {
discord: ["user-id-123"],
whatsapp: ["+15555550123"],
},
},
},
}
2. 设置级别
发送一条仅包含指令的消息来设置会话默认值:
或者以内联方式使用(仅作用于该消息):
3. 命令在沙箱外运行
启用 elevated 后,exec 调用会离开沙箱。生效的主机默认为 gateway;当配置/会话的 exec 目标为 node 时则为 node。在 full 模式下,如果解析后的 exec 模式/主机审批策略已完全宽松(security 为 full,ask 为 off),则会跳过 exec 审批;否则仍应用正常的审批策略。在 on/ask 模式下,始终应用已配置的审批规则。
解析顺序¶
- 消息内的内联指令(仅作用于该消息)
- 会话覆盖(通过发送仅含指令的消息设置)
- 全局默认值(配置中的
agents.defaults.elevatedDefault)
可用性与允许列表¶
- 全局门控:
tools.elevated.enabled(必须为true) - 发送者允许列表:
tools.elevated.allowFrom,包含按渠道划分的列表 - 每个 Agent 的门控:
agents.entries.*.tools.elevated.enabled(只能进一步限制;全局与每个 Agent 的门控都必须为true) - 每个 Agent 的允许列表:
agents.entries.*.tools.elevated.allowFrom(发送者必须同时匹配全局和每个 Agent 的列表) - 渠道提供的回退允许列表:渠道插件可以选择通过 SDK 适配器钩子提供回退允许列表,当
tools.elevated.allowFrom.<provider>未配置时使用。目前没有任何内置渠道实现该钩子,因此实际上每个提供商都需要显式配置tools.elevated.allowFrom.<provider>条目。 - 所有门控都必须通过;否则 elevated 将被视为不可用
允许列表条目格式:
| 前缀 | 匹配内容 |
|---|---|
| (无) | 发送者 ID、E.164 或 From 字段 |
name: |
发送者显示名称 |
username: |
发送者用户名 |
tag: |
发送者标签 |
id:、from:、e164: |
显式身份定位 |
Elevated 不控制的内容¶
- 工具策略:如果
exec被工具策略拒绝,elevated 无法覆盖。 - 必需的角色沙箱化:如果经过身份验证的会话创建者的操作员角色要求沙箱,则 elevated 模式无法在 Gateway 或节点上运行命令。
- 主机选择策略:elevated 不会将
auto变成自由跨主机覆盖。它使用配置/会话的 exec 目标规则,仅在目标已是node时选择node。 - 与
/exec相互独立:/exec指令为授权发送者调整每个会话的 exec 默认值(host、security、ask、node),且不需要 elevated 模式。
Note
bash 聊天命令(! 前缀;/bash 别名)是独立的门控,除了自身的 tools.bash.enabled 标志外,还要求启用 tools.elevated。禁用 elevated 同样会锁定 ! shell 命令。
相关文档¶
从 Agent 执行 shell 命令。
exec 的审批与允许列表系统。
Gateway 级别的沙箱配置。
工具调用期间三个门控如何组合生效。
每个 Agent 的沙箱与工具限制。
elevated 运行所使用的推理预算。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw