先说一个真实场景
我认识一个公众号运营者,他每天晚上要做三件事:检查当天草稿有没有写完、看看有没有待回复的留言、想着明天发什么选题。
用了 OpenClaw 心跳之后,这三件事变成了自动的:每天晚上 8 点,AI 自动检查草稿更新、扫描留言、推送当日运营摘要到飞书。他不用再自己盯着,AI 盯完直接汇报。
这就是心跳的价值——让 AI 不用你发消息,主动帮你把该做的事做了。
一、什么是心跳?
心跳是 OpenClaw 内置的定时检查循环。
每隔一段时间,AI 会自动「醒过来」,读一个叫 HEARTBEAT.md 的文件,然后按文件里的内容执行检查或操作。整个过程不需要你发消息触发。
默认间隔是 30 分钟。你可以改成 15 分钟、1 小时,按需调整。
二、心跳和 Cron 的区别
Cron 是你自己定义「几点几分做什么」,任务固定、时间固定、提前写死。比如「每天早上 8 点推送资讯」。
心跳 是让 AI 自己判断「这次醒来该检查什么」。AI 根据当前状态决定要不要通知你,不是机械执行预设清单。
还有一个关键区别:心跳运行在主会话里,AI 记得你们之前聊过什么。Cron 通常运行在独立会话,每次都是全新开始。
简单说:Cron 适合明确定义的定时任务,心跳适合需要 AI 主动观察和判断的事。
三、如何配置心跳
默认已开启
安装 OpenClaw 后心跳默认启用,间隔 30 分钟,大多数情况不需要改。
调整间隔
在 openclaw.json 里配置:
{
"gateway": {
"heartbeat": {
"interval": "1h"
}
}
}
30m 是 30 分钟,1h 是 1 小时,15m 是 15 分钟。
建议不低于 15 分钟。太频繁会增加 API 消耗。
四、HEARTBEAT.md 怎么写
这是心跳的核心。AI 每次醒来都会读这个文件,按里面的内容执行检查。
下面是我实际在用的一个心跳配置,拿来当例子:
## 🔧 系统状态检查
运行 `tail -100 /tmp/clawdbot/*.log | grep -i "error\|fail\|warn"`,如果发现新的错误,整理成摘要发给我。
## 📋 任务看板
读取 TASKS.md,检查:
1. 有没有任务卡住超过 3 天
2. 有没有等待中的任务结果回来了
3. 有没有今天应该完成但没完成的任务
如果发现以上情况,主动告诉我。
## 📚 学习项检查
检查 .learnings/ 目录:
- 有没有标记为「高优先级」但还没处理的学习项
- 有没有重复出现的错误记录
如果发现,整理摘要汇报给我。
AI 每次心跳按顺序执行这些检查项,发现问题就主动通知,没问题就安静待着。
五、实战场景
场景 1:公众号运营者
每天定时检查草稿更新,推送当日运营状态:
## 📝 草稿检查
检查 ~/Works/news/drafts/ 目录下所有 .md 文件的更新时间。
如果发现过去 24 小时有新建或修改的草稿,列出文件名和修改时间。
## 📊 今日数据
检查 notes/publish-log.md,记录一下:
- 今天发布了几篇文章
- 阅读量有没有异常波动
如果有问题需要我关注,直接发飞书消息。
场景 2:开发者
监控服务日志,发现错误立即告警:
## 🚨 日志告警
运行以下命令检查错误:
`tail -200 /var/log/myapp/error.log | grep "$(date +%Y-%m-%d)"`
如果发现新的 ERROR 级别日志:
1. 提取错误信息和时间戳
2. 简单判断是什么类型的错误
3. 整理成一条消息发给我,说明严重程度
如果只是新的 WARNING,不紧急,先记着,等我下次问再说。
场景 3:知识管理
定期整理笔记本,更新知识库状态:
## 📚 笔记整理
检查 ~/notes/ 目录下最近 7 天修改过的文件。
如果发现有文件超过了 2 周没打开过,在笔记列表里标记为「待回顾」。
统计一下目前「待回顾」的文件有多少,如果超过 10 个,提醒我抽时间整理。
场景 4:习惯追踪
帮自己养成好习惯:
## 🌱 习惯检查
检查 habits.md:
- 每天的复盘记录有没有写
- 「每周运动 3 次」这个目标完成没有
- 有没有连续超过 5 天没记录的情况
如果发现哪个习惯连续中断超过 3 天,发消息提醒我。
如果一切都正常,不用汇报,安静待着就行。
场景 5:多智能体协作状态监控
## 🤖 子 Agent 状态
运行 `openclaw subagents list`,检查:
- 有没有卡住超过 30 分钟的子 Agent
- 有没有失败状态的任务
如果发现异常,尝试重启:运行 `openclaw subagents kill <id>`
如果重启失败,汇报给我。
六、心跳配置的几个建议
加条件判断,不要每次都汇报
AI 每次心跳如果都给你发消息,很快就会变成骚扰。
正确的方式是:只在发现问题时通知你,没问题就安静待着。
比如「如果发现 ERROR 级日志就通知我」,而不是「每次都把日志内容发给我」。
不要放重型任务
心跳是高频执行的(默认 30 分钟一次),如果每次心跳都要跑一个好几分钟的任务,会消耗大量资源。
重型任务放到 Cron 里单独跑,心跳只做快速检查。
间隔不是越短越好
15 分钟是最低建议值。再短的话,AI 还没处理完上一次心跳,下一次又来了,容易乱。
一般用途:30 分钟到 1 小时是合理的区间。
心跳和 Cron 配合使用
它们不是替代关系,是互补的。
心跳负责「主动观察,有情况就通知」,Cron 负责「到点就执行固定任务」。
比如「每天早上 8 点推送资讯」用 Cron,「随时检查日志有没有新错误」用心跳。
说白了,心跳就是让 AI 主动帮你盯着事。它每隔一段时间醒过来,按你写的检查清单过一遍,有情况就找你,没情况你根本感觉不到它的存在。
配得好,你的 AI 助手就从被动的问答机器,变成了主动帮你盯项目的数字同事。
本文所有 HEARTBEAT.md 配置均来自实际使用,直接复制修改即可。
夜雨聆风