解决 OpenClaw 2026.3.31 版本 exec 授权/批准问题(exec approval 错误)
-
Agent 侧策略(openclaw.json):控制 Agent 端能请求什么。
-
Host 侧策略(~/.openclaw/exec-approvals.json):主机端实际执行的最终把关策略,作为上限存在。
只有两层策略同时放开且一致,exec 工具才能真正无限制运行(适用于 Cron 任务、心跳 Agent、自动化 脚本等场景)。
参考 GitHub Issue #1517 的官方说明。
修复步骤(修改两个文件)
- 修改 Agent 侧策略:~/.openclaw/openclaw.json
找到(或新增)tools.exec 配置块,设置为完全放开:
{
"tools": {
"exec": {
"security": "full",
"ask": "off"
}
}
}
提示:如果你的配置文件 中 tools 下面还有其他子项(如 profile 等),请合并保留。推荐使用 JSON5 格式(支持注释)。
- 修改 Host 侧策略:~/.openclaw/exec-approvals.json
如果文件不存在,请新建它。添加默认策略(defaults)并确保与 Agent 侧一致:
{
"version": 1,
"defaults": {
"security": "full",
"ask": "off"
},
"agents": {
// 这里可以针对特定 Agent 做更精细控制,例如:
// "your-agent-name": {
// "security": "full",
// "ask": "off"
// }
}
}
说明:
-
defaults 会应用到所有未特别指定的 Agent。
-
security: “full” 表示允许所有命令执行。
-
ask: “off” 表示无需人工批准(适合全自动场景)。
-
Host 侧策略是更严格的上限,即使 Agent 侧设置为 full,如果 Host 侧仍是默认的 allowlist 或 ask: on-miss,仍然会弹出批准提示。
应用配置并重启 Gateway
修改完两个文件后,必须完整重启 OpenClaw Gateway,让配置生效:
openclaw gateway stop && openclaw gateway start
或者使用简洁的重启命令(推荐):
openclaw gateway restart
重启后,建议检查 Gateway 状态:
openclaw gateway status
验证效果
-
运行需要执行 shell 命令的 Agent(Cron 任务、心跳检测、自动化脚本等)。
-
之前常见的 “exec approval errors” 或 “approval required” 提示应该完全消失。
-
测试命令如 ls、echo、Git 操作、文件读写等,均可正常执行。
已测试场景:
-
Cron 定时任务
-
心跳(heartbeat)Agent
-
各类需要主机执行命令的自动化流程
注意事项与安全提醒
-
安全性:将 security 设置为 “full” 并关闭 ask 会大幅提升权限。请仅在可信的本地/私有环境中使用,并确保机器有良好的防火墙保护。
-
配置文件路径:默认都在 ~/.openclaw/ 目录下(Linux/macOS)。Windows 用户路径可能略有不同,请参考官方文档。
-
如果仍失败:
-
检查两个文件是否语法正确(JSON 格式)。
-
确认重启 Gateway 成功,无报错。
-
查看 Gateway 日志:openclaw gateway logs 或对应日志文件。
-
尝试运行 openclaw doctor 进行诊断。
更多推荐

所有评论(0)