乐于分享
好东西不私藏

9小时!我排查了AI助手长任务中断所有原因——最后发现是我自己改的配置

9小时!我排查了AI助手长任务中断所有原因——最后发现是我自己改的配置

想象一个场景

病房里,一个病人刚做完手术。床边的生命体征监护仪在实时监测:心率、血压、血氧。机器每隔30秒扫描一次。

如果指标正常,监护仪安静工作。如果指标下滑,监护仪会立刻报警,叫来护士。

这套系统有效的前提只有一个:监护仪和病人在同一个病房里,能看到真实数据。

但如果监护仪在隔壁房间——每次报警前,它只能看一张纸条,而那张纸条只在病人清醒时才会更新——这套系统就完全失效了。病人指标掉了,监护仪还在显示"一切正常"

听起来很荒谬?但这就是我的AI助手9小时里实际发生的事情。

一、那个真实的9小时

任务很简单:生成7张图表,嵌入Word文档,然后交付。

图表在凌晨0:40分开始执行,1:19发现任务中断了两次。早上8:10查看,文件都在,大小正常,但AI助手停下来了——它向我汇报"图表已生成",然后等待下一条指令。

最终9个小时,8次催促。每次我问"怎么停了",它认真分析原因,给出建议,然后继续等待。技术完全正常:Python能跑,脚本能写,文件能保存。问题不在技术。

问题在于:AI助手在等待,而没有任何机制强制它继续往下走。

我花了几个小时,把OpenClaw的核心文档全部读了一遍——包括session管理、context压缩、heartbeat机制、commitments系统、update_plan工具、Task Flow工具的官方文档。最后"震惊"的发现:哪个都不是主动执行的,哪个都没起作用。

但后来我发现,这不是我一个人的问题。

OpenClaw是一个极度开放的平台——它给你足够的空间,但几乎没有任何引导。你配置对了,它是你用过最顺手的AI助手。你配置错了,或者根本没配置,它就是一个"看起来能用但关键时刻掉链子"的空壳。想用好实在坑太多,不用又舍不得。这是所有认真用过OpenClaw的人,心里都清楚、但没人说出来的那个纠结。

二、OpenClaw"自由陷阱"

先说我的故事。

几个月前,我为了节省API成本,把Heartbeat调成了省Token模式:

isolatedSession: true心跳在隔离的新会话中运行lightContext: true心跳只加载HEARTBEAT.md,不加载其他文件

单次心跳Token消耗从约37,500骤降至约3,000,节省超过90%。看起来很完美,对吧?

但代价是:心跳再也看不到主会话里发生了什么。每次Heartbeat触发,AI助手在全新的空会话里醒来,只看得到HEARTBEAT.md那张纸条,主会话里的update_plan、任务状态、进行中的步骤,全部看不见。

所以,即使Heartbeat30分钟准时醒来一次——18次心跳,没有一次发现那条"等待嵌入文档"的任务。我亲手关掉了最后一道防线。

这不只是我的配置失误——这是OpenClaw的底层逻辑。

OpenClaw不是一个"装好就能用"的应用。它是一个骨架,给你空间,但不给方向;给你机制,但要求你主动配置才能生效。

update_plan是声明工具,不是追踪器。Heartbeat是框架,不是自动机。TaskFlow是引擎,不是预设任务。每一个机制都真实有效,但每一个都需要你主动理解它、配置它、然后才能指望它在你需要时出现。

这不是bug,这是OpenClaw的设计哲学:高自由度=高配置成本。你愿意付这个成本,它给你无限可能。你不愿意,它就是一片沉默的空壳。

我选择省成本,结果亲手制造了9小时的失控。

三、OpenClaw的五道"防线",为什么都没起作用

update_plan:声明步骤链,但不追踪完成状态

关键洞察:解决的是"透明"问题,不是"推进"问题。AI停下来,它不知道步骤1是否真的完成了。

Heartbeat:被我的isolatedSession配置关掉了

关键洞察:在isolatedSession=true下,Heartbeat在隔离会话里醒来,看不到主会话的上下文——是我亲手废掉了它。

上下文压缩:保存笔记,但依赖AI主动执行

关键洞察:Compaction提醒是给"还在跑"AI用的,不是给"已经停"AI用的。AI已停止,就不会收到提示。

Commitments:解决"记忆跟进"而非"任务推进"

关键洞察:它记得"你说过要跟进什么",不记得"update_plan的步骤2还没执行完"。两者职责边界不同。

TaskFlow:持久化编排,但需要主动配置触发

关键洞察:这是真正抗中断的机制,但需要从一开始就设计为"跨会话任务"才能发挥作用——不是临时任务的中途救星。

四、闭环方案:让OpenClaw真正为你工作

两层方案。个人层面和平台层面同时到位,缺一不可。

第一层:让Heartbeat能看到主会话

isolatedSession改为false,让心跳回到主会话运行;把lightContext改为false,让心跳加载完整上下文。

isolatedSession: false在主会话运行,能看到update_planlightContext: false加载完整上下文

代价:单次心跳Token消耗从约3,000增至约37,500。以每60分钟一次计算,日均从约14万增至约180万。算算你的任务中断成本——如果超过几美元,这个配置划算。

第二层:告诉Heartbeat醒来时做什么

心跳能看到主会话了,但需要被明确告知"检查什么"。在HEARTBEAT.md加入任务继续规则:有in_progress的步骤,立即执行,不停下来等指令。

按需切换:日常维护用isolatedSession:truetoken;多步骤长任务进行中用false;任务完成后切回true

五、验证配置是否生效

创建一个多步骤测试任务,执行第一步后故意不回复,等待60分钟。如果心跳正确触发并自动执行了第二步,说明配置生效。

如果心跳在隔离模式,它会回复HEARTBEAT_OK然后安静——这说明isolatedSession还在true,检查配置是否已正确保存。

六、最后

OpenClaw是水,不是墙。你不能控制它往哪流,但你可以学会顺水而行。

isolatedSession:true就像在大水里建坝——你以为自己控制住了,实际上只是把水堵在错误的地方,等它决堤。真正的用法不是控制,是导流。

上善若水——给它一个方向,然后让它自己流。上善若水不是什么都不做,是做了正确的事情之后,让系统自己运作。

"最好的配置不是最省钱的,不是最全的,是你在理解了OpenClaw的开放性之后,找到了那个最不费力的点——让系统跑起来,让自己真正放手。"

你有没有遇到过AI助手中途停下来、却怎么也推不动的情况?你当时的解决方案是什么?欢迎在评论区聊聊。

附录:完整配置方案

核心配置两步:增加HEARTBEAT任务巡检并设置isolatedSession、lightContext为false,agents.md添加update_plan强制规则,完整配置步骤已移至评论区置顶。

------

关注我,一个只分享 AI 实战记录的人类

相关学习资料