七千二百袋水泥
七千二百袋水泥
发布于 2026-04-03 / 17 阅读

OpenClaw 审批无反应?可能是“双配置未同步”!

在使用 OpenClaw 时,不少用户会遇到一个典型问题:

执行 /approve <id> allow-always 后 没有任何反应,网络查询依然反复提示需要审批。

本文将帮助你定位原因,并给出完整解决方案。

一、典型报错现象

微信弹出审批提示:

Approval required.

Run:
/approve 0bcf506d allow-once

Other options:
/approve 0bcf506d allow-always
/approve 0bcf506d deny

执行审批后却出现:

❌ Failed to submit approval: GatewayClientRequestError: unknown or expired approval id

或者仍然提示:

抱歉,网络查询功能还需要您的审批才能执行 😓

即使使用 allow-always 也无效。

二、核心原因:OpenClaw 有 “两套配置”,必须同时修改

OpenClaw 的 exec 权限体系由两份配置共同决定:

  1. exec-approvals.json

  2. openclaw.json 中的 tools.exec

只修改其中一个,另一个会用默认值覆盖你的设置,导致审批永远不生效。

两者必须都配置,并且字段必须完整。

三、第一套配置:exec-approvals.json

位置示例:

  • Docker Compose:宿主机 ~/.openclaw/exec-approvals.json

  • 容器内:/home/node/.openclaw/exec-approvals.json

示例内容:

{
  "version": 1,
  "socket": {
    "path": "/home/node/.openclaw/exec-approvals.sock",
    "token": "XXXXXXXXXXXX"
  },
  "defaults": {
    "security": "full",
    "ask": "off",
    "askFallback": "full",
    "autoAllowSkills": true
  },
  "agents": {
    "main": {
      "security": "full",
      "ask": "off",
      "askFallback": "full",
      "autoAllowSkills": true
    }
  }
}

四、第二套配置:openclaw.json → tools.exec

路径示例:

/home/cloudphone/media/0/openclaw/openclaw.json

必须包含:

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

重点:ask 字段必须显式写出来。

缺失时,gateway 会使用严格默认值,覆盖掉你的 exec-approvals.json 设置。