默认本地
像你先看自己桌上的那本审批册。
Cli 导读
`openclaw approvals` 管理本地、网关和节点主机的 exec 审批文件,但生效结果由审批文件与 `tools.exec` 请求策略共同决定。先跑 `openclaw approvals get` 看三栏输出(请求策略、审批文件、生效结果),再决定用 `set` 改审批文件还是用 `exec-policy` 同步请求策略。最容易搞错的是:审批文件才是最终强制规则,请求策略只是意图,两者不一致时以审批文件为准。
先讲这一页到底在解决什么
`openclaw approvals` 管理本地、网关和节点主机的 exec 审批文件,但生效结果由审批文件与 `tools.exec` 请求策略共同决定。先跑 `openclaw approvals get` 看三栏输出(请求策略、审批文件、生效结果),再决定用 `set` 改审批文件还是用 `exec-policy` 同步请求策略。最容易搞错的是:审批文件才是最终强制规则,请求策略只是意图,两者不一致时以审批文件为准。
第一站
官方一上来就说清楚了:默认改的是本地审批簿。带上 --gateway 或 --node,你才是在改别人的门禁本。
像你先看自己桌上的那本审批册。
--gateway像走去总控室,翻 Gateway 那本施工许可表。
--node像点名某一台远端小工位,去看它自己的许可本。
先分清你是在管哪一本审批册。
第二站
get 和 set,像“翻现有批条子”和“整本换新批条子”这两个动作很像办公室日常:一个是先看现在怎么规定的,一个是拿一份新规则整本替换。
openclaw approvals get像把本地审批册翻开,看看现在哪些命令已经被门卫允许过。
openclaw approvals get --node <id|name|ip>像对着某台小工位说:“把你自己的批条子拿来我看看。”
openclaw approvals set --file ./exec-approvals.json像拿一整份新的审批模板过来,直接整本替换旧规定。
--gateway / --node像换规则时也要先说清楚,是换哪间办公室的规则本,不然默认只会改你自己桌上的那本。
第三站
如果你不想整本换,只想多放行一个具体命令,或者收回一个旧放行,就用 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 的审批册,再决定是整本替换规则,还是只给某个命令补一张白名单纸条。