乐于分享
好东西不私藏

你的 OpenClaw 助手也一直在走神?用 Heartbeat 机制让它像 Manus 一样持续工作

你的 OpenClaw 助手也一直在走神?用 Heartbeat 机制让它像 Manus 一样持续工作

记录一下我最近折腾 OpenClaw 的过程,给有同样困扰的朋友参考。

#OpenClaw  #Heartbeat 


起因:让它写文档,写着写着就没消息了

最近让 OpenClaw 写一套文档,15 个模块、几十个章节。任务发出去,它开始干,然后……就没有然后了。

过了很久我去问,它说"已完成前三个模块"。我再推一次,它又写几章,然后又消失。

一开始以为是 bug,后来才明白:OpenClaw 默认是反应式的——你不推,它不动。而且每次对话结束,它就"忘了"自己在做什么。下次会话是全新的,没人告诉它"你上次做到哪了"。但我记得它是有心跳机制可以自主运行的,应该是我哪里配置不对? 

试过的弯路

最开始我也试过口头交代:"你先把第一章写完,然后第二章……"结果写到第三章就断了,下次问它,说忘了写到哪了😅

后来意识到:把任务状态写到 HEARTBEAT 和 TODO.md 文件里,让它每次醒来能"看见"进度。

我的方案:TODO Manager + Heartbeat

TODO Manager(任务看板)

就是弄了个 TODO.md,把所有任务写清楚,并且制作成 SKILL,避免遗忘技能:

  • 优先级(P0/P1/P2)
  • 状态(⏳待开始 / 🟡进行中 / ✅已完成)
  • 产出位置

Heartbeat(定时唤醒)

配了个 HEARTBEAT.md,让它每 15 分钟自己醒来:

  1. 读 TODO.md,看还有多少 pending 任务
  2. 执行下一个任务
  3. 更新状态,汇报进度
  4. 没事就回 HEARTBEAT_OK,彻底静默

关键:todo-execution-state.json

这个状态文件记录"是否已汇报":

  • pending > 0 → 执行任务 → 汇报
  • pending = 0 且已汇报 → HEARTBEAT_OK(静默,不打扰)
  • pending = 0 且未汇报 → 发汇总报告 → 标记已汇报

效果就是:任务完成后它自己就安静了,不会反复发消息。只有新任务加入时,才会再次激活。

为什么有效

我自己的体会是:模型没有跨 session 的记忆,但文件系统有。把任务进度从"模型的脑子"移到"文件里",它每次醒来都能准确知道做到哪了。

现在这套方案跑下来,它能自己花几小时把几十个章节写完,全程不用我盯着。

顺手再一句话上传到夸克网盘,生成分享链接(原来创建好的 SKILL)


踩过的坑,顺便记录一下

  1. HEARTBEAT.md 别写太长,每次都会塞进 prompt
  2. 一次只加一条任务,跑通再加下一条
  3. 明确写"没事回 HEARTBEAT_OK",不然它可能空转也发消息
  4. 间隔别设太短,我用的 15 分钟,再短它容易"无聊地跟自己对话"

补充一下:我用的是阿里百炼的 Coding Plan,所以不是很在乎 token 消耗。如果你用的是按量计费的 API,可能需要注意下 HEARTBEAT.md 的长度和唤醒频率,尽量精简。


一点心得

Heartbeat 适合那种需要"主动发现"的事——比如长任务推进、收件箱监控、服务器状态检查。

如果你会主动去问的事,或者一次性任务,用 Cron 更合适。

我自己用下来的感受:它让 Agent 从"你推一下它动一下"变成"自己盯着,有进展才叫你"。配合任务文件做外部记忆,确实能像 Manus 一样持续工作。


有同样折腾经历的朋友,欢迎交流更好的方案~