更新完 OpenClaw 3.31,你是不是也发现了一个让人血压飙升的问题——随便执行个命令,系统就弹出"Approval required"。
连 echo "hello" 都要审批。
这不是 bug,是 OpenClaw 官方的"零信任"安全升级。但对我们这种本地跑 Agent 的用户来说,这体验简直是灾难。
到底发生了什么
OpenClaw 从 3.31 版本开始,对安全模型做了一次大刀阔斧的改造。官方的说法是"从默认信任切换到零信任架构",翻译成人话就是:以前系统觉得你是自己人,现在系统觉得所有人都可疑。
具体到 exec(命令执行)这块,3.31 引入了一个叫"语义审批类"的机制。只有最窄范围的只读操作(读文件、搜索)才能自动通过,其他所有涉及执行的操作,一律要求审批。
问题在于,就算你在配置文件里写了tools.exec.ask: "off" 和 tools.exec.security: "full",系统照样拦你。
GitHub 上的 Issue #58691 下面炸了锅,一堆人反馈定时任务全挂、自动化工作流全断。
有个哥们的评论特别到位:"给人一种新版本完全没测试就发布了的感觉。"

为什么配置了还不生效
3.31 搞了一个双层配置体系:
- Agent 层
:就是你在 openclaw.json里配的tools.exec - Host 层
:一个新文件 ~/.openclaw/exec-approvals.json
Host 层是上限。你 Agent 层配得再宽松,Host 层不放行,照样被拦。
而升级 3.31 后,这个 Host 层文件可能残留了旧版本的严格策略,或者压根没配对,导致你的设置被静默覆盖。
解决办法(四行命令)

如果你跟我一样,本地跑 Agent 不需要这套审批机制,直接执行:
openclaw config set tools.exec.host gatewayopenclaw config set tools.exec.security fullopenclaw config set tools.exec.ask offopenclaw gateway restart
搞定。
不过有个坑要注意:重启网关之前,先删掉 ~/.openclaw/exec-approvals.json 这个文件。这就是前面说的 Host 层残留配置,不删的话它会继续作为上限覆盖你的设置,审批问题可能还是会出现。
# macOS/Linuxrm ~/.openclaw/exec-approvals.json#Windowsdel %USERPROFILE%.openclaw\exec-approvals.json
删完再重启网关,才算彻底干净。
喜欢审批的可以忽略
说句公道话,OpenClaw 做这个安全升级的出发点没问题。如果你的 Agent 对外提供服务、连了一堆设备、跑在公网上,审批机制确实能防住不少风险。
但如果你就是本地用用,自己的机器自己的 Agent,这套零信任属实是大炮打蚊子。
按需选择就好。
小结
OpenClaw 3.31 的安全升级初衷是好的,执行有点粗暴——默认全部收紧,也不给个清晰的迁移提示。官方已经在 PR #58792 里修复相关问题,后续版本应该不需要这么折腾。
但在修复版本发布之前,上面四行命令 + 删文件,是目前最干脆的解法。
我会持续关注 OpenClaw 的版本更新和踩坑经验,感兴趣的话关注一下,有新动态第一时间分享。
夜雨聆风