尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

OpenClaw 2026.3.31 授权报错与 exec 被拒:从 openclaw.json 到 exec-approvals.json 的排查与修复

发布时间:2026/9/26 16:14:23

资讯中心
01
ARTICLE

OpenClaw 2026.3.31 授权报错与 exec 被拒:从 openclaw.json 到 exec-approvals.json 的排查与修复

OpenClaw 2026.3.31 授权报错与 exec 被拒:从 openclaw.json 到 exec-approvals.json 的排查与修复
1. 升级完 OpenClaw 2026.3.31我的 exec 突然不干活了如果你刚把 OpenClaw 升到 2026.3.31然后发现原本跑得好好的 Cron 任务、心跳 Agent、自动化脚本集体罢工日志里反复刷exec approval required、exec denied、approval required这类字样那你不是一个人。这个版本把执行工具exec tool的安全策略收紧了一层很多老配置在新版本里只改了一半结果就是命令请求发出去了但主机侧根本不批。先说清楚这篇适合谁正在用 OpenClaw 跑自动化流程、被 2026.3.31 的授权报错卡住、想快速把 exec 恢复成可执行状态的人。核心检索词就三个——OpenClaw、授权报错、exec 被拒围绕openclaw.json和exec-approvals.json两个文件展开。我踩过的坑是这样的升级后第一反应是去openclaw.json里把tools.exec.security改成full、ask改成off改完重启结果ls、echo这种最普通的命令还是被拦。当时以为是 Gateway 没重启干净反复 stop/start 了三四次日志翻到底才发现问题根本不在 Agent 侧而在主机侧还有一道独立的审批策略在把关。OpenClaw 从 2026.3.31 开始采用双层策略模型只放开一层等于没放开。理解这个双层机制是排查的关键。你可以把它想成两道门第一道门在 Agent 侧由~/.openclaw/openclaw.json里的tools.exec控制决定 Agent 能请求执行什么第二道门在 Host 侧由~/.openclaw/exec-approvals.json控制是主机端真正执行前的最终把关而且它作为上限存在——哪怕 Agent 侧写的是full只要 Host 侧还是默认的allowlist或者ask: on-miss命令照样弹批准提示或者直接被拒。两层同时放开且语义一致exec 才能真正无限制运行。这个设计本身是合理的安全边界放在主机侧更稳妥只是升级文档没把要改两个文件这件事讲得足够显眼。下面按先配好前置、再复制配置、然后验证、最后排障的顺序走一遍每一步都给可复制的骨架和检查动作。2. 动手前的前置准备确认版本、路径与备份在改任何配置之前先把环境摸清楚避免改错文件或者改完发现版本对不上。第一步确认 OpenClaw 版本确实是 2026.3.31 或更高。低版本没有这套双层策略照本文改反而可能引入不认识的字段。openclaw --version输出里应该能看到2026.3.31这样的版本号。如果低于这个版本先升级再谈配置。第二步确认配置目录。Linux 和 macOS 默认都在~/.openclaw/下两个关键文件是ls -la ~/.openclaw/openclaw.json ls -la ~/.openclaw/exec-approvals.jsonopenclaw.json一般升级后已存在exec-approvals.json很可能压根不存在这是正常的需要你手动新建。Windows 用户的路径不在~下通常在用户目录的.openclaw文件夹里具体以官方文档为准本文命令以 Linux/macOS 为准。第三步备份整个配置目录。这一步别省改坏了能一键回滚。cp -r ~/.openclaw ~/.openclaw.bak.$(date %Y%m%d)备份完再动手心里踏实。接下来进入配置环节。3. 可复制配置openclaw.json 与 exec-approvals.json 双层骨架这一节是全文的核心两个文件都要改缺一不可。3.1 Agent 侧openclaw.json 的 tools.exec 配置打开~/.openclaw/openclaw.json找到tools下面的exec配置块。如果已经有tools但里面没有exec就新增如果tools下还有profile等其他子项合并保留别整个覆盖掉。{ tools: { exec: { security: full, ask: off } } }这里用 JSON5 格式写好处是支持注释方便你标注哪一行是为什么改的。security: full表示 Agent 侧允许请求所有命令执行ask: off表示 Agent 侧不再主动发起人工批准询问。注意这只是第一道门。3.2 Host 侧exec-approvals.json 的 defaults 配置如果~/.openclaw/exec-approvals.json不存在直接新建。这个文件的结构和 Agent 侧不一样它有一个defaults块作用于所有未单独指定的 Agent。{ version: 1, defaults: { security: full, ask: off }, agents: { // 需要针对特定 Agent 做更精细控制时在这里加例如 // your-agent-name: { // security: full, // ask: off // } } }defaults里的security: full表示主机侧允许所有命令执行ask: off表示无需人工批准。这两个值必须和 Agent 侧保持一致否则 Host 侧会作为更严格的上限把请求拦下来。agents块留空即可除非你有某个 Agent 需要单独收紧或放开。两个文件都改完后用表格对照一下两层的关键字段确认没有写反层级文件关键字段本文取值作用Agent 侧openclaw.jsontools.exec.securityfullAgent 能请求什么Agent 侧openclaw.jsontools.exec.askoff是否主动询问批准Host 侧exec-approvals.jsondefaults.securityfull主机实际执行上限Host 侧exec-approvals.jsondefaults.askoff是否需人工批准注意Host 侧是上限。哪怕 Agent 侧写了fullHost 侧只要还是allowlist或ask: on-missexec 依然会被拦。这是 2026.3.31 最容易踩的坑。3.3 重启 Gateway 让配置生效改完文件不重启配置不会加载。完整重启命令openclaw gateway stop openclaw gateway start更简洁的推荐写法openclaw gateway restart重启后确认状态openclaw gateway status状态里应该显示 Gateway 正常运行、没有配置解析报错。如果这里就报错多半是 JSON 语法问题先回去检查两个文件的括号和逗号。4. 验证 exec 是否恢复从单条命令到自动化流程配置生效后别急着上生产任务先用最小成本验证。先跑一条最简单的命令确认 exec 通道打通openclaw exec echo exec-ok如果返回exec-ok且没有任何 approval 提示说明双层策略已经放开。接着测文件读写和 Git 操作这类真实场景会用到的命令openclaw exec ls -la ~/.openclaw openclaw exec git status再回到你真正关心的场景——Cron 定时任务、心跳heartbeatAgent、自动化脚本。触发一次原本会报exec approval errors的流程观察日志里是否还有approval required字样。正常情况下这些提示应该完全消失命令直接执行。验证时可以顺手看一眼 Gateway 日志确认没有残留的拒绝记录openclaw gateway logs如果日志里 exec 相关条目显示的是执行成功而不是 denied那这一轮修复就算完成了。5. 本篇常见错排查改完还报错的六种情况即使按上面走了一遍仍可能遇到 exec 被拒。下面按出现频率排一下。第一种只改了openclaw.json没建exec-approvals.json。这是最高频的原因Host 侧用默认策略把请求拦了。检查文件是否存在cat ~/.openclaw/exec-approvals.json文件不存在就按 3.2 节新建。第二种两个文件都改了但值不一致。比如 Agent 侧full、Host 侧还是allowlist。逐字段对照 3.2 节的表格确保security和ask两层一致。第三种JSON 语法错误导致配置没加载。JSON5 虽然支持注释但括号、逗号写错照样解析失败。用诊断命令快速定位openclaw doctordoctor会把配置解析问题、路径问题一并列出来比人肉翻文件快。第四种Gateway 没重启成功。openclaw gateway status如果显示的还是旧进程或者异常状态配置不会生效。重新执行openclaw gateway restart再确认状态。第五种改错了文件路径。Windows 用户尤其容易踩~/.openclaw/在 Windows 上不是这个路径。确认你编辑的是 OpenClaw 实际读取的目录可以用openclaw doctor输出的路径为准。第六种针对特定 Agent 的覆盖规则在起作用。如果你在exec-approvals.json的agents块里给某个 Agent 单独设了更严格的策略那defaults对它不生效。检查agents块里有没有你正在测试的 Agent 名字。排查顺序建议先openclaw doctor看全局诊断再cat两个文件确认内容最后openclaw gateway logs看运行时拒绝原因。三步走下来基本能定位。安全提醒把security设为full、ask设为off会大幅提升权限等于让 Agent 在主机上无限制执行命令。请只在可信的本地或私有环境中这么配并确保机器本身有防火墙等基础防护。生产环境如果不需要全自动建议保留ask的批准环节只放开必要的命令范围。6. 授权链路打通后把模型接入也顺手理一遍exec 恢复之后OpenClaw 的自动化能力就回来了但 Agent 真正干活还得靠底层模型稳定输出。如果你在排查授权的同时也想把模型调用链路一起理顺可以走 TaoToken 的接入方式模型对话入口适合先验证模型响应是否正常API Keys 页面用来生成和管理调用凭证接入文档里有各语言的请求示例长期跑编码类 Agent 的话 Coding Plan 更划算。具体入口模型对话验证https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel_chatAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi_keys接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdocCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding_plan控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsoleAPI 基址不加 UTMhttps://taotoken.net/api配置时把 API Key 填进 OpenClaw 对应的模型 provider 配置里基址用上面的 API 地址先跑一条最小请求确认连通再交给 Agent 去执行任务。授权链路和模型链路都通了整套自动化才算真正跑起来。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。