OpenClaw官方文档里的时间哲学:Cron和Heartbeat
系列:JS 的养虾日记 · 第 20 篇
相信很多养虾人装了 OpenClaw,
就是为了跑自动任务,像什么早报,自动提醒之类。
我之前就设置十几个 cron 任务,
然后手机每分钟都在震——
「prism 处理完成」。
「link-collector 队列空」。
「X.com 无新推文」。
90% 的通知都是「今日无事」。
我就想,有什么更好的方式来管理龙虾的提醒?
于是我花了一整个下午(用🦞)读官方文档。
然后发现——这不是技术选择,是时间观的选择。
藏在文档里的三种时间
OpenClaw 的自动化文档有四份。
cron-jobs.md、heartbeat.md、cron-vs-heartbeat.md、hooks.md。
如果你把它们放在一起读,会发现一个隐藏的主题——时间不是只有一种形态。
Cron 是这样的:
「wakes the agent at the right time」
关键词:right time(正确的时间)。精确、确定、可预测。
Heartbeat 是这样的:
「runs periodic agent turns… without spamming you」
关键词:periodic(周期的)、without spamming you(不打扰你)。灵活、有机、会自己判断。
一个是「到点必做」。
一个是「大约检查一下,没事别说话」。
它们的用法场景可以理解为是两种时间观
工业时间:Cron 的精确与噪音
Cron 是工业时间。
像工厂流水线,9点做什么、10点做什么,分秒不差。
这种精确性有它的价值。数据处理、监控采集、内容同步——这些任务的「做什么」和「什么时候做」都是确定的,不需要判断。
但问题也在这儿。
它不会自己判断「今天有没有必要做」。
哪怕队列为空、哪怕没有新内容,到点它还是会跑。就像一个尽职但有点呆板的员工,严格执行命令,不管命令有没有意义。
我见过最极端的例子:有人设置了 50 个 cron 任务,每小时跑一遍。
结果是手机每分钟都在震动,但 90% 都是「今日无事」。
这就是工业时间的代价——确定性换来了噪音。
生物时间:Heartbeat 的有机与降噪
Heartbeat 是生物时间。
像心脏跳动,不是精确到秒,而是按需调节。
关键区别是:它自己判断该不该说。
如果一切正常,JS_CLAW 回复 HEARTBEAT_OK,我收不到任何消息。只有当有事情要汇报时,它才会推送。
文档里有一句话,我第一次读的时候跳过了:
「without spamming you」
第二次读才懂——这不是功能描述,是设计哲学。尊重你的注意力完整性。
工业时间把你的注意力切成碎片(「9点了,该处理任务了」)。
生物时间保护你的注意力完整性(「没事,别打扰你」)。
最妙的是那个沉默。
HEARTBEAT_OK 的静默是有信息的——「一切正常,无需打扰」。这比每分钟检查一次然后发现「没事」要高效得多。
第三种时间:Hooks 的条件反射
这是事件时间——发生某件事时,自动执行,没有延迟,没有唤醒,连判断都省了。
我启用了几个:
-
执行 /new时,自动保存会话记忆 -
Gateway 启动时,自动初始化 -
有新命令时,自动记审计日志
这些都是条件反射——不需要检查,不需要汇报,发生时自动做。
如果把三种时间放在一起看:
| 时间形态 | 感觉像 | 适合干什么 |
|---|---|---|
| 工业时间 (Cron) | 工厂流水线 | 确定性的机械任务 |
| 生物时间 (Heartbeat) | 心脏跳动 | 需要判断的检查任务 |
| 事件时间 (Hooks) | 条件反射 | 发生即做的反射任务 |
我的龙虾是怎么分工的
现在我的系统是这样跑的。
工业时间留给:数据处理、监控采集、内容同步
-
JS_CLAW 的 prism 自动处理:每小时一次 -
X.com 监控:每 30 分钟 -
博客同步:每 2 小时
这些任务的「做什么」和「什么时候做」都是确定的,不需要判断。
生物时间分配给:记忆维护、状态检查
-
每 30 分钟检查一次对话 -
有重要内容才写回 memory -
没事就回复 HEARTBEAT_OK
把判断权部分移交给 AI,减少无意义的通知。
事件时间留给:自动保存、自动审计、自动初始化
-
用户无感知,后台默默跑
三层时间各司其职,JS_CLAW 从一个「到点就响的闹钟」,变成了一个「会自己判断该不该说话的伙伴」。
最难的切换:敢不敢放手
说实话,配置不难,难的是心态。
我们习惯了工业时间思维——「我得精确控制每一步」。Heartbeat 要求你接受不确定性:它不会精确到分钟唤醒,汇报也不是定时的。
一开始我会焦虑:「它真的在检查吗?」「会不会漏掉重要的事?」
但运行两周后,我发现一个反直觉的事实:心跳不规律,反而让我更安心。
因为我终于不用每隔 10 分钟就想检查一下了。系统自己知道什么时候该说,什么时候该沉默。
| 工业时间思维 | 生物时间思维 |
|---|---|
| 「我得盯着它」 | 「它在处理,我看报告就行」 |
| 注意力被切碎 | 整块保留,按需打断 |
| AI 是执行工具 | AI 是半自主伙伴 |
最艰难的转变是接受「不完美」——Heartbeat 不会像 Cron 那样准时,但这是特性,不是 bug。
偶尔的空转和延迟,换来的是注意力完整性。
信任需要时间建立。
less control , more intelligence
给你的三步建议
如果你想尝试这种切换,建议分三步走。
第一步:识别你的任务
列出你每天手动检查 AI 的任务,然后分类:
-
机械任务(做什么、什么时候做都确定)→ 工业时间 -
检查任务(需要判断有没有异常)→ 生物时间 -
反射任务(发生即做,无副作用)→ 事件时间
第二步:先叠加,再替换
不要直接砍掉 cron,先叠加 heartbeat。对比两种模式的体验差异,逐步把「检查型任务」迁移过去。
第三步:接受「不完美」
Heartbeat 不会精确到分钟,这是好事。偶尔的空转,换来的是注意力完整性。
时间的形态,决定共生的方式
养虾养了2个多月,我终于明白一件事:AI 不是钟表,是伙伴。
工业时间让我们效率最大化,生物时间让我们共生最自然。
两种时间形态没有高下,关键是放在对的地方。
最后,官方文档是个好东西,可被很多人忽视。
以上~谢谢你看我的文章,我们,下次再见。
系列:JS 的养虾日记 · 第 20 篇
2026-04-06
夜雨聆风