
想象一个场景
病房里,一个病人刚做完手术。床边的生命体征监护仪在实时监测:心率、血压、血氧。机器每隔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、任务状态、进行中的步骤,全部看不见。
所以,即使Heartbeat每30分钟准时醒来一次——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:true省token;多步骤长任务进行中用false;任务完成后切回true。
五、验证配置是否生效
创建一个多步骤测试任务,执行第一步后故意不回复,等待60分钟。如果心跳正确触发并自动执行了第二步,说明配置生效。
如果心跳在隔离模式,它会回复HEARTBEAT_OK然后安静——这说明isolatedSession还在true,检查配置是否已正确保存。
六、最后
OpenClaw是水,不是墙。你不能控制它往哪流,但你可以学会顺水而行。
isolatedSession:true就像在大水里建坝——你以为自己控制住了,实际上只是把水堵在错误的地方,等它决堤。真正的用法不是控制,是导流。
上善若水——给它一个方向,然后让它自己流。上善若水不是什么都不做,是做了正确的事情之后,让系统自己运作。
"最好的配置不是最省钱的,不是最全的,是你在理解了OpenClaw的开放性之后,找到了那个最不费力的点——让系统跑起来,让自己真正放手。"
你有没有遇到过AI助手中途停下来、却怎么也推不动的情况?你当时的解决方案是什么?欢迎在评论区聊聊。
附录:完整配置方案
核心配置两步:增加HEARTBEAT任务巡检并设置isolatedSession、lightContext为false,agents.md添加update_plan强制规则,完整配置步骤已移至评论区置顶。
------
关注我,一个只分享 AI 实战记录的人类
夜雨聆风