Appearance
openclaw approvals 工具控制着系统命令执行(Exec)的白名单和安全拦截策略。你可以利用它分别管理本地客户端、Gateway 服务端或是远程工作节点(Node)的审批规则,甚至可以将其设置为免提示模式(YOLO 模式)以适应纯自动化容器环境。
openclaw approvals
管理本地主机、Gateway 主机或 Node 主机上的 exec 审批。 默认情况下,命令作用于磁盘上的本地审批文件。使用 --gateway 指向 Gateway,或使用 --node 指向特定节点。
别名:openclaw exec-approvals
相关文档:
- Exec 审批:Exec approvals
- Nodes:Nodes
常用命令
bash
openclaw approvals get
openclaw approvals get --node <id|name|ip>
openclaw approvals get --gatewayopenclaw approvals get 现在会显示本地、gateway 和 node 目标的有效 exec 策略:
- 请求的
tools.exec策略 - 主机审批文件策略
- 应用优先级规则后的有效结果
优先级规则的用意:
- 主机审批文件是可执行的真实来源
- 请求的
tools.exec策略可以缩窄或扩宽意图,但有效结果仍从主机规则派生 --node结合了 node 主机审批文件和 gateway 的tools.exec策略,因为两者在运行时都适用- 如果 gateway 配置不可用,CLI 会回退到 node 审批快照,并注明无法计算最终运行时策略
从文件替换审批配置
bash
openclaw approvals set --file ./exec-approvals.json
openclaw approvals set --stdin <<'EOF'
{ version: 1, defaults: { security: "full", ask: "off" } }
EOF
openclaw approvals set --node <id|name|ip> --file ./exec-approvals.json
openclaw approvals set --gateway --file ./exec-approvals.jsonset 接受 JSON5,不仅限于严格 JSON。使用 --file 或 --stdin,不能同时使用。
免审批(YOLO)配置示例
对于永远不需要暂停 exec 审批的主机,将主机审批默认值设为 full + off:
bash
openclaw approvals set --stdin <<'EOF'
{
version: 1,
defaults: {
security: "full",
ask: "off",
askFallback: "full"
}
}
EOFNode 版本:
bash
openclaw approvals set --node <id|name|ip> --stdin <<'EOF'
{
version: 1,
defaults: {
security: "full",
ask: "off",
askFallback: "full"
}
}
EOF这只修改主机审批文件。要保持请求的 OpenClaw 策略一致,还需设置:
bash
openclaw config set tools.exec.host gateway
openclaw config set tools.exec.security full
openclaw config set tools.exec.ask off为什么此示例使用 tools.exec.host=gateway:
host=auto仍然表示"有沙盒时使用沙盒,否则使用 gateway"。- YOLO 是关于审批的,不是关于路由的。
- 如果你希望即使配置了沙盒也使用主机 exec,请用
gateway或/exec host=gateway明确主机选择。
白名单辅助命令
bash
openclaw approvals allowlist add "~/Projects/**/bin/rg"
openclaw approvals allowlist add --agent main --node <id|name|ip> "/usr/bin/uptime"
openclaw approvals allowlist add --agent "*" "/usr/bin/uname"
openclaw approvals allowlist remove "~/Projects/**/bin/rg"通用选项
get、set 和 allowlist add|remove 都支持:
--node <id|name|ip>--gateway- 共享 node RPC 选项:
--url、--token、--timeout、--json
目标说明:
- 无目标标志表示磁盘上的本地审批文件
--gateway针对 gateway 主机审批文件--node在解析 id、name、IP 或 id 前缀后针对单个 node 主机
allowlist add|remove 还支持:
--agent <id>(默认为*)
注意事项
--node使用与openclaw nodes相同的解析器(id、name、ip 或 id 前缀)。--agent默认为"*",适用于所有 agent。- Node 主机必须暴露
system.execApprovals.get/set(macOS 应用或无头 node host)。 - 审批文件按主机存储于
~/.openclaw/exec-approvals.json。
常见问题
Q: 为什么我在 tools.exec 中关掉了 ask,执行还是会弹审批窗?
A: 主机的 exec-approvals.json 文件才是权限放行的最终判定者。客户端配置(tools.exec.ask=off)只是客户端的请求意图,如果宿主机上的审批文件要求弹窗拦截,该命令仍会被拦截。你必须用 openclaw approvals set 同步更新宿主机的配置。
Q: 如果我把机器配成了免审批(YOLO)模式,Agent 能不能执行 rm -rf / 这样的危险命令?
A: 可以。免审批模式下 OpenClaw 会完全放权给大模型,模型给出的任何命令都会被直接传递给 Shell 执行。这非常危险,请绝对不要在你个人的工作电脑或存有重要数据的宿主机上开启 YOLO 模式,仅限于沙盒(Sandbox)和随用随抛的容器内使用。