Cli 导读

审批文件、请求策略、生效规则,三件事一次讲清

`openclaw approvals` 管理本地、网关和节点主机的 exec 审批文件,但生效结果由审批文件与 `tools.exec` 请求策略共同决定。先跑 `openclaw approvals get` 看三栏输出(请求策略、审批文件、生效结果),再决定用 `set` 改审批文件还是用 `exec-policy` 同步请求策略。最容易搞错的是:审批文件才是最终强制规则,请求策略只是意图,两者不一致时以审批文件为准。

先讲这一页到底在解决什么

审批文件、请求策略、生效规则,三件事一次讲清

`openclaw approvals` 管理本地、网关和节点主机的 exec 审批文件,但生效结果由审批文件与 `tools.exec` 请求策略共同决定。先跑 `openclaw approvals get` 看三栏输出(请求策略、审批文件、生效结果),再决定用 `set` 改审批文件还是用 `exec-policy` 同步请求策略。最容易搞错的是:审批文件才是最终强制规则,请求策略只是意图,两者不一致时以审批文件为准。

原文共 9 节,先看 Start Here 路径:/cli/approvals 查看官方原文

第一站

🏠 先分清 3 个地方:本地门卫、Gateway 门卫、Node 门卫

官方一上来就说清楚了:默认改的是本地审批簿。带上 --gateway--node,你才是在改别人的门禁本。

🏠

默认本地

像你先看自己桌上的那本审批册。

🌉

--gateway

像走去总控室,翻 Gateway 那本施工许可表。

🛰️

--node

像点名某一台远端小工位,去看它自己的许可本。

📌

一句话

先分清你是在管哪一本审批册。

第二站

👀 getset,像“翻现有批条子”和“整本换新批条子”

这两个动作很像办公室日常:一个是先看现在怎么规定的,一个是拿一份新规则整本替换。

openclaw approvals get

像把本地审批册翻开,看看现在哪些命令已经被门卫允许过。

openclaw approvals get --node <id|name|ip>

像对着某台小工位说:“把你自己的批条子拿来我看看。”

openclaw approvals set --file ./exec-approvals.json

像拿一整份新的审批模板过来,直接整本替换旧规定。

--gateway / --node

像换规则时也要先说清楚,是换哪间办公室的规则本,不然默认只会改你自己桌上的那本。

第三站

✅ allowlist helpers 像“往白名单里加一张通行纸条”

如果你不想整本换,只想多放行一个具体命令,或者收回一个旧放行,就用 allowlist helpers。

allowlist add "~/Projects/**/bin/rg"

像给某类常用工具开一张白名单纸条,以后见到它就别再层层请示。

👷

--agent main

像说这张纸条只发给某个工位,不是人人都能拿。

🌐

--agent "*"

像一张全楼通用的批条子,默认就是这样。

allowlist remove ...

像把旧纸条收回来,以后再遇到这把工具要重新审批。

第四站

🗃️ 它把审批册放在哪?就像每台机器自己抽屉里都有一本

官方最后这几条注释很实用,因为它告诉你这本表不是一张天上飘着的规则,而是每台主机各有一本。

~/.openclaw/exec-approvals.json

像每台机器抽屉里那本审批册的默认放置地点。

--node 解析方式

你可以用 id、name、ip、id 前缀去找那台机器,像报门牌号、报小名、报地址都行。

主机也得会这个能力

如果 node 主机自己根本不会提供 system.execApprovals.get/set,你就像在找一个根本没设门卫台的小屋。

🎈 一句话

approvals 管的是“以后能不能动工具”,不是“现在立刻去施工”。

最后总结

🎈 把 openclaw approvals 压成一句话

openclaw approvals 就像门卫手里的施工许可表:先分清是在看本地、Gateway 还是 node 的审批册,再决定是整本替换规则,还是只给某个命令补一张白名单纸条。