乐于分享
好东西不私藏

OpenClaw是个大傻春:批次ID未回写、权限拒绝、文件缺失全纪录

OpenClaw是个大傻春:批次ID未回写、权限拒绝、文件缺失全纪录

What’s up, 大家!这是我的第 51 篇原创文章。

这是这组 OpenClaw / Hermes 多 Agent 调试复盘的第二篇。第一篇讲总时间线,第三篇讲 Hermes;这一篇只盯 OpenClaw,不把 Hermes 的任务委派、网关协议或飞书回执混进来。

OpenClaw 最让我抓狂的地方,不是它完全不能动,而是它总能动一点、停一点、偏一点,然后留下一个很像“已经努力过”的现场。我已经反复提醒要锁定批次、不要新建任务、不要口头保证、要讲清当前状态,它还是经常像没听懂一样在原地绕。

WF07 在这里只是压力测试工具。它步骤长、状态多、认证链复杂,很适合检查 OpenClaw 这种多 Agent 框架到底有没有执行边界。结果很明显:它最容易在“当前到底跑哪一批、卡在哪一步、谁负责继续”这几个问题上翻车。

OpenClaw 的七类现场问题

OpenClaw 的问题不是单点故障,而是一串现场问题叠在一起:批次未回写、权限边界、文件生成、Kanban 状态、微信认证、worker 中断、归档语义。单看任何一条都像能解释,合起来就会变成“系统看起来一直在干活,但我不知道到底完成了什么”。

       

         
           
           
         

现场问题 判断 证据口径
候选更新没有写入素材记录 主线硬槽点 2026-04-26 这批采集解析后有 33 条候选更新,但没有进入正式素材主清单
权限拒绝、NoNewPrivileges 权限/路径/同步风险 5 月到 6 月的排障记录多次出现 root-owned、服务权限和安全重载边界
正文文件缺口 文件生成必须验收 2026-06-07、2026-06-25 后续方案都把文章文件数量和正文来源标记写成门禁
Kanban blocked、无 current_run 远端状态硬槽点 2026-06-05 真实飞书业务卡经历 precheck、blocked、带警告通过和认证阻塞
wechat-login/二维码失败 认证链硬槽点 2026-05-18 到 2026-05-24 多次卡在微信认证、DNS、二维码可见性和同卡续跑
worker 中断/压缩失败 长任务入口风险 2026-06-05 前后需要把模型、session、worker timeout 和飞书回执分层看
archives 误判 语义/去重风险 2026-06-25 大批次复核里,merge gate、failure ledger、归档口径必须拆开

       

     

这七类问题里,0426 的主清单断点、0518 的认证/DNS 阻塞、0605 的前置检查阻塞是最硬的三条。权限、路径、正文文件和归档语义则更像慢性病:一次不一定致命,但会持续消耗我对系统的信任。

同样重要的是,只有问题分类还不够。凡是没有逐条证据、还残留占位符或空链接的版本,都不能当成正式复盘;这篇只保留能被批次、远端 run 或本地报告验证的槽点。

更重要的是,WF07 不是只跑了几个零散批次。本地执行率报告里能看到从 20260130 到 20260629 的一串历史批次:20260130、20260219、20260225、20260228、20260308、20260311、20260315、20260318、20260322、20260329、20260330、20260406、20260412、20260421、20260426、20260505、20260513、20260518、20260524、20260602、20260607、20260607_20260610、20260625、20260629。下面这张图先把 WF07 原始链路说清楚,后文提到 Step2、Step3、Step4,都是按这张图来理解。

这张批次表不是流水账,它只想说明三件事:WF07 在本地能闭环;OpenClaw 的问题出在远端接管长链路后的断点和回执;不同批次不能互相背锅。

       

         
           
           
         

批次 对 OpenClaw 篇的意义 不能误写成什么
20260421 成功基线:35 条新增、7 篇发布审核,证明 WF07 本地可闭环 不能说 WF07 这条流程天然不可执行
20260426 33 条候选更新未入主清单,是批次断链核心 不能写成只是采集命令没跑
20260513 98 条入批、61 条待加工、24 条发布审核记录 不能把本地基准误写成 OpenClaw 远端天然稳定
20260518 25 条素材、16 篇文档和 16 条发布记录,本地技术闭环完成 不能和远端 Step2 认证阻塞混成一个状态
20260524 认证和同卡续跑链密集,要求从原任务和原任务卡继续 不能新建批次、新建卡来掩盖断点
20260625 111 条素材、75 条待加工、37 篇文档和 37 条发布记录 不能漏掉大批次后还说已经全面复核
20260629 新批 27 条入库,同时发生本组三篇复盘 不能把同日 WF01 素材污染进 WF07 统计

       

     

0426:最关键的问题不是采集,而是入主清单断了

0426 这次非常典型。我后来反复追问“到底昨天这些 agent 在干嘛”,原因很简单:OpenClaw 跑了很久,但没有把“当前断点”说清楚。

后来复盘出来的事实是:采集已经有结果,解析也形成了 33 条候选更新,但入库动作没有把这 33 条写入主清单。也就是说,真正续跑点不是重新采集,而是补写 33 条素材记录,再只针对这 33 条继续分析、生产和审核。

0426 正确续跑策略:
1. 备份主清单
2. 从采集解析结果里读取 33 条候选更新
3. 精确匹配本地正文文件
4. 生成 33 条素材记录
5. 更新批次字段到 20260426 的入库断点
6. 只对这 33 条跑后续分析、生产和审核
7. 更新执行率报告和状态表

这个结论出来之前,现场绕了太多弯。最让我愤怒的点,不是某条命令写成 update --update-only,而是 agent 分析没有重点:到底为什么断、怎么接着做、接哪一步,它说不清楚。

OpenClaw 的第一类坑:主 Agent 像单干户

OpenClaw 这类框架最容易出现一种错位:架构上写的是多 Agent 协作,执行上主 Agent 仍然把自己当成唯一操作者。它能调用 skill,就懒得分配;它分不清边界,就把任务往自己身上揽。

WF07 这种任务最怕这个。采集、解析、入库、分析、审核本来就应该各自有明确边界。结果主 Agent 一单干,就会出现下面这种情况:

       

         
           
           
         

应该发生的动作 实际容易变成 后果
只处理 0426 的 33 条 扫全局 WF07 原始素材 旧批次混进来
补写 33 条素材记录 重新纠结采集命令 断点判断跑偏
失败后回传原因 写一段泛泛总结 我继续追问
子 agent 回写字段 只做计划和审议 状态不前进
执行率报告闭环 报告停在首版 无法验收

       

     

这也是为什么我会骂得那么狠。不是因为讨厌自动化,而是因为我在 Windows 本地已经跑顺过,到了 OpenClaw 反而变成“谁都像在干活,谁都没把完整链路交出来”。

OpenClaw 的第二类坑:批次状态像流沙

WF07 的核心是批次。没有批次,所有素材都是一锅粥。

0426 的断点本来非常明确:33 条没有进入主清单。可后面现场又出现“主清单回到 20260421 的旧断点”“昨天干的是 wf07-analyze 不是新采集批次”“最后主批次号仍不是 20260426”的混乱。这种混乱不是小问题,它会直接决定后续分析、生产和审核处理的是正确对象还是旧对象。

这个图就是 OpenClaw 0426 的关键问题:它不是完全没跑,而是在“解析出候选更新 → 写入素材记录”这个关键转接处断了。后面再说分析、成文、审核,前提都已经歪了。

OpenClaw 的第三类坑:权限、路径、同步像三把小刀

我后来还追问过:服务器上到底有多少个 research 项目?是不是写到另一个目录去了?这不是无理取闹,因为当一个系统长期出现路径变量、权限、同步问题时,我自然会怀疑它到底在改哪一份文件。

本地复盘记录里能看到多次相关问题:权限污染、路径变量、同步冲突、Windows 与 Ansible 与 OpenClaw 三端 hash、.from_windows 历史残留、磁盘空间、中文路径编码等。任何一个单点看起来都能解释,但加在一起,给我的体验就是“这个系统不稳,证据还不够硬”。

权限拒绝和文件缺失不是比 0426 这个入库断点更核心的主线,但它们会放大我的不信任:你到底读的是不是正式 env,写的是不是正式目录,生成的是不是正式正文文件,最后有没有清单能证明。这些问题一旦说不清,我自然会怀疑所谓多 Agent 只是在换地方制造待排查现场。

**操作流程:**定位权威目录 → 核批次字段 → 核素材数量 → 核执行率报告 → 核三端同步 → 再允许恢复定时

详细步骤:

       

         
           
           
         

# 操作 说明
1 锁定唯一主目录 先确认 OpenClaw 服务器实际使用的 research 根目录
2 检查批次状态 批次号、当前步骤、最后完成步骤必须指向同一批
3 对比素材数 采集解析得到的候选更新数量必须等于主清单新增数量
4 查执行率报告 报告不能停在“首版”,必须写到当前断点
5 做三端 hash Windows、Ansible、OpenClaw 对关键文件一致
6 恢复定时 只有无人值守 canary 通过后才算稳定

       

     

**验证检查:**如果主清单、报告、远端 run、三端 hash 任何一个指向不同批次,就禁止写“已跑通”。

0518:远端记录显示 Step2 就卡住

远端记录更直观。0518 的运行状态显示:先有微信认证阻塞,后续又进入分析、生产和审核的续跑状态。记录里还有两个关键信息:我扫码时提示系统错误,重试二维码时又遇到 mp.weixin.qq.com DNS 失败。

这说明 OpenClaw 在这里不是“业务跑完了”,而是采集前的认证链就没过去。正确行为应该是:同线程请求我补认证,保留断点,修复网络或 DNS 后从同一任务继续。错误行为是:写一段泛泛总结,或者让我重新发新任务,把原任务现场冲掉。

0518 远端状态能读出四层意思:
1. 任务没有进入业务分析,而是卡在登录认证阶段。
2. 飞书任务卡处在阻塞状态,需要我补认证动作。
3. 前一次扫码提示系统错误,不是我没有配合。
4. 后续重试又遇到微信域名解析失败,说明网络和认证链都没有闭环。

这类证据对我很重要。它把“感觉没跑通”变成了“采集前认证和 DNS 阻塞”,下一步动作才有方向。

0520:二维码没加载全,是严重反馈不是小插曲

0520 的远端飞书任务里,我的反馈非常重,核心意思只有一句:二维码都没加载全,现在到底是怎么发二维码的。公开稿不照抄原始粗口,但这个现场必须写,因为它说明 OpenClaw 的认证链路没有把“生成二维码、发送二维码、看到完整二维码、扫码成功、认证成功”拆开。

如果系统只记录“二维码已发送”,却没有证明图片完整送达、扫码成功、认证成功回传,那我看到的就是一张可能坏掉的二维码和一句含糊的等待。这不是体验细节,这是采集前认证链的硬阻塞。

二维码链路应该分层:
生成二维码 -> 发到飞书 -> 我能看到完整图片 -> 等待扫码 -> 认证成功或认证失败

OpenClaw 在这里傻春的地方,是把“我把二维码发出去了”当成了“认证流程正在正常推进”。我骂得重,正是因为这一步把责任推回给了扫码的人,而系统自己没有证明图片真的可用。

0524 到 0528:同卡续跑靠约束硬拽回来

0524/0528 这一段也不能漏。远端历史显示,后续指令一直在强调:沿原任务和原任务卡从认证与采集断点续跑,不得新建任务编号,不得新建 Kanban 任务卡,不得另起批次。也就是说,系统不是天然守住了断点,而是靠我这边反复纠正和补丁不断把它拉回原链路。

这类问题和 0426 是同一种病:长任务一旦断了,恢复动作必须绑定原批次、原卡、原证据目录。只要新建一个看似干净的任务,历史问题就会被盖住,后面再做本地/远端对账或发布审核就全乱。

更傻春的是,0524 远端记录里还能看到两类强反馈:一类是我追问系统是不是没停、为什么不继续、不报错、现在在干嘛;另一类是我追问“不要只口头说”,要求系统回顾中间实际做过什么、当前到底有哪些任务。对应记录里有多次“后台还有心跳、但最终回执没回来”的情况,也有当前追问卡、WF07 正式业务卡和后台执行器缺最终回执的核查结果。

0605:不是模型问题,是旧批次和磁盘前置不通过

0605 的远端证据要分阶段看。早期有前置检查失败、旧批次未终态和磁盘空间高风险;后续同卡又出现带警告通过、等待微信认证阻塞、不能继续执行等状态。也就是说,这不是一句“模型坏了”或“旧批次入库断点未终态”就能讲完,而是同卡多轮前置检查、阻塞、运行和认证阻塞叠在一起。

这次如果硬写成“模型又坏了”,就是错判。真正的问题是 OpenClaw 没有在进入业务前把前置条件讲清楚、回传清楚、收口清楚。磁盘、旧批次、入库断点未终态,都是可以解释的阻塞;不能解释的是阻塞之后我还得自己追问。

0607:起跑线补齐,不等于 WF07 已经跑完

到 0607,本地记录显示已经完成三段同步、扩容和服务复核:Windows 到 Ansible、Ansible 到 OpenClaw、OpenClaw 服务状态、Hermes 看板、网关健康状态等都做了检查。扩容后根盘空间恢复,服务也处于可用状态。

但这只能叫“起跑线补齐”,不能叫 WF07 全新飞书任务完成。真正的验收仍然要看:飞书新消息是否自动接单,是否建卡,前置检查是否通过,关键步骤是否都有证据记录,最终结果或错误是否自动回同线程。

这就是 OpenClaw 给我的核心教训:别把准备完成当业务完成。

0625 和 0629:不能只挑好写的批次复盘

我后来专门提醒:不止跑了表格里那几个批次。这个提醒是对的。20260625 的执行率报告明确写到,这一批一共有 111 条素材,后续复核到 75 条待加工、37 条文档和 37 条发布记录。它不是小插曲,而是一次大批量 WF07 实践。

0625 的价值在于,它证明系统已经进入“批量、报告、合并门禁、失败明细账、Dashboard”这些真实工程细节。只写 0426、0605、0607,会让读者误以为问题只出在早期试跑。实际情况是:越到后面,批次窗口、证据清单、去重、失败明细、发布审核边界越重要。

0629 也一样。当天 WF07 新批有 27 条候选更新,后续修过“同日 WF01 6 条污染”的统计口径;这和本组三篇 WF01 复盘发生在同一天,更需要分清工作流边界。

0627/0628:二维码已发出,不等于认证成功

0627 的远端会话里,我追问“到底是暂停了还是扫描失败了,我确实已经扫描了”。Hermes/OpenClaw 的回复里承认:历史只看到二维码已发出或等待扫码,没有看到新的完成记录或认证成功回传;二维码已发出只表示系统把图片发出来了,不等于我已经完成扫码,更不等于公众号认证成功。

这个判断本身终于说对了,但它也暴露了前面的问题:为什么要我追问到这一步,系统才把状态拆清楚?如果每次认证恢复都主动说明“二维码已发出、等待扫码、认证成功、认证失败”这几个状态,我就不会被迫猜“现在到底暂停了还是失败了”。

几个特别傻春的对话现场

       

         
           
           
         

时间 对话现场的公开转述 说明了什么
2026-04-26 我追问跑了一天到底做了什么、为什么没有说清断点 候选更新写入素材记录这一步断了,但系统没有第一时间锁定续跑点
2026-05-20 我强烈反馈二维码没加载全,质疑系统怎么发二维码 二维码完整可见性没有被当作验收项
2026-05-24 上午 我追问系统是不是没停、为什么不继续、不报错、现在在干嘛 后台心跳不等于最终回执
2026-05-24 中午 我追问不要只口头说,要求列出中间做过什么和当前任务 系统需要被逼问才把任务卡、运行记录、阻塞原因和任务清单讲明白
2026-06-05 我纠正批次号不该让我判断 执行契约字段被反推给我,框架职责边界错位
2026-06-27 我追问到底暂停还是扫描失败 状态回执没有把“二维码已发送”和“认证成功”分清

       

     

这些对话的共同点是:我不是在要求系统永不失败,而是在要求系统失败时别装糊涂。OpenClaw 真要像一个调度入口,第一职责就是把状态讲清楚。

我对 OpenClaw 的最低要求

OpenClaw 可以失败,但失败必须留下人能看懂的证据。批次号要回写,权限问题要说清楚,正文文件要能数出来,任务卡阻塞要能追到当前执行,微信认证失败要保留断点,后台执行中断要能区分是模型、会话还是执行层。

公开复盘可以有火气,但不能只有火气。没有证据链的吐槽,只会让下一次排障继续从头猜。

我的建议:把 OpenClaw 当调度入口,不要当万能主脑

OpenClaw 不是完全没价值。它能当入口,能接飞书,能组织任务,能把文件和证据落盘。但至少在 WF07 这种长链路上,它不能被当成“全自动主脑”。

我现在更认可“虾和马单独养”的路线:每个 Agent 各自有清楚边界;采集只采集,分析只分析,写作只写作,审核只审核;统一入口只负责任务契约、状态推进和回执,不要让一个主 Agent 又当老板又当员工又当审计。

       

         
           
           
         

改造点 目标 验收标准
批次契约 防止跑错对象 每次运行都固定批次、白名单、断点
子任务边界 防止主 Agent 单干 每个子任务有输入、输出和失败回传
错误回执 防止我追问 阻塞、错误和最终回执自动回飞书
同步口径 防止改错文件 三端 hash 和权威目录一致
无人值守试跑 防止陪跑幻觉 不人工介入跑通一次

       

     

龙虾可以很会爬,野马也能跑天涯;别让它们乱拉车,路就不会塌。

如果你也被 OpenClaw、自动化工作流、批次状态和多 Agent 协作折腾过,欢迎在公众号后台回复「多agent」交流。成功经验通常很光鲜,失败现场才最有信息量。


历史文章,请看这里:

2026-05-09:你被骗了!OpenClaw是真的很难用!

2026-04-20:看完教程说部署只需一天?我花了六周才真正搞懂这套AI框架