乐于分享
好东西不私藏

OpenClaw 升级后 Agent 不听话?揭秘双层安全机制的真相

OpenClaw 升级后 Agent 不听话?揭秘双层安全机制的真相

2026.3.31 版本升级后,你的 Agent 突然"罢工"了?这篇文章帮你搞懂 OpenClaw 的安全设计哲学。

一、问题:升级后的"惊喜"

OpenClaw 2026.3.31 版本发布后,不少用户遇到了同一个问题:

  • • 定时任务突然不执行了
  • • 心跳 Agent 停止工作了
  • • 所有 shell 命令都需要手动批准

明明配置文件里设置了 security: "full",为什么还是弹窗要求批准?

这不是 bug,而是 OpenClaw 安全策略升级带来的"惊喜"。

二、真相:双层安全机制

OpenClaw 从 2026.3.31 开始,采用了双层安全策略设计。简单说就是:

  • • 第一层(Agent 侧):控制 Agent "能请求什么"
    • • 配置文件:openclaw.json
    • • 作用:说"我想执行这个命令"
  • • 第二层(Host 侧):控制主机"最终允许什么"
    • • 配置文件:exec-approvals.json
    • • 作用:说"我决定是否批准"

两层的关系:

Agent 侧(openclaw.json)→ 发送请求 → Host 侧(exec-approvals.json)→ 决定是否执行

为什么需要两层?

即使 Agent 侧设置为 full,如果 Host 侧仍然是限制模式,命令仍然会被拦截。两层独立控制,互相配合。

这就是为什么很多人只改了 openclaw.json 却问题依旧的原因。

三、解决方案:两步配置法

步骤 1:配置 Agent 侧

编辑 ~/.openclaw/openclaw.json

{
  "tools": {
    "exec": {
      "security": "full",
      "ask": "off"
    }
  }
}

步骤 2:配置 Host 侧

编辑 ~/.openclaw/exec-approvals.json(如不存在则新建):

{
  "version": 1,
  "defaults": {
    "security": "full",
    "ask": "off"
  },
  "agents": {}
}

步骤 3:重启服务

systemctl --user restart openclaw.service

四、安全提醒

将权限设置为 full 意味着:

  • • ✅ Agent 可以执行任意 shell 命令
  • • ✅ 无需人工批准,全自动运行
  • • ⚠️ 请确保在可信环境中使用
  • • ⚠️ 建议配置防火墙保护

适用场景:

  • • 本地开发环境
  • • 私有服务器
  • • 自动化脚本和定时任务
  • • 内网部署的 Agent

不适用场景:

  • • 公网可访问的服务器
  • • 多用户共享环境
  • • 处理敏感数据的系统

五、设计哲学:安全与便利的平衡

OpenClaw 的双层设计体现了"默认安全,显式开放"的原则:

  1. 1. 新安装默认限制:防止意外执行危险命令
  2. 2. 双层独立控制:Agent 和 Host 可以有不同的安全策略
  3. 3. 可精细化配置:可以针对特定 Agent 设置不同权限

这种设计虽然增加了配置复杂度,但大大提升了安全性。

六、总结

问题
原因
解决方案
只改 openclaw.json 无效
Host 侧仍有限制
同时配置 exec-approvals.json
命令执行被拦截
两层策略不一致
确保两层都设置为 full
需要手动批准
ask 仍为 on
两层都设置为 off

记住:安全不是阻碍,而是保护。理解了双层机制,你就能更好地掌控 OpenClaw 的安全边界。


#OpenClaw #AI-Agent #安全配置 #双层安全 #Agent配置 #技术教程 #Shell命令 #自动化 #系统管理 #开发环境