跳转至

提权模式

当一个 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. 设置级别

发送一条仅包含指令的消息来设置会话默认值:

/elevated full

或者以内联方式使用(仅作用于该消息):

/elevated on run the deployment script

3. 命令在沙箱外运行

启用 elevated 后,exec 调用会离开沙箱。生效的主机默认为 gateway;当配置/会话的 exec 目标为 node 时则为 node。在 full 模式下,如果解析后的 exec 模式/主机审批策略已完全宽松(security 为 full,ask 为 off),则会跳过 exec 审批;否则仍应用正常的审批策略。在 on/ask 模式下,始终应用已配置的审批规则。

解析顺序

  1. 消息内的内联指令(仅作用于该消息)
  2. 会话覆盖(通过发送仅含指令的消息设置)
  3. 全局默认值(配置中的 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 命令。

Exec 工具

从 Agent 执行 shell 命令。

Exec 审批

exec 的审批与允许列表系统。

沙箱化

Gateway 级别的沙箱配置。

沙箱 vs 工具策略 vs Elevated

工具调用期间三个门控如何组合生效。

多 Agent 沙箱与工具

每个 Agent 的沙箱与工具限制。

思考级别

elevated 运行所使用的推理预算。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw