心跳:让你的AI助手变聪明
分类: OpenClaw实战 标签: 心跳, 定时任务, 主动思考 日期: 2026-02-12 阅读时间: 3分钟
前几天跟朋友聊天,他说自己的AI助手"像个被动的应答机器"——有问才答,不问就死气沉沉的。
我说:你试试心跳机制。
三天后他回来告诉我:卧槽,这助手成精了。
今天聊聊这个让AI"活"过来的技巧。
别被名字吓到了,很简单。
心跳就是系统每隔一段时间(比如30分钟、1小时),给你发一条消息。你配置一个检查清单,AI看到这条消息,就按清单去检查事情,有结果就告诉你,没事就回个"HEARTBEAT_OK"。
本质上:主动检查代替被动等待。
我给小龙虾配了这样一份心跳清单(HEARTBEAT.md):
# 每次心跳检查
1. **邮箱** - 有重要邮件吗?
2. **日历** - 接下来2小时有安排吗?
3. **天气** - 要出门的话,带伞?
4. **待办** - 有什么快过期的deadline?
注意:晚上11点到早上8点别打扰我,除非紧急。
现在的日常是这样的:
- 早上7点:📧 “3封邮件,其中1封是老板催项目”
- 早上8点半:📅 “2小时后有产品会”
- 晚上10点:HEARTBEAT_OK(太晚了,不打扰)
- 早上9点:☀️ “今天30°C,记得涂防晒”
这不是被动的问答,是主动的提醒。AI不再是工具,变成了你的"私人管家"。
在OpenClaw的workspace目录创建HEARTBEAT.md:
cd ~/.openclaw/workspace
nano HEARTBEAT.md
写上你想检查的内容,比如:
# 我的心跳清单
## 邮件检查
- 未读邮件 > 0?告诉我数量和发件人
- 标记为"重要"的邮件?告诉我标题
## 日历检查
- 接下来2小时有安排?
- 如果有会议,提前30分钟提醒
## 工作相关
- GitHub有新的PR/Issue?
- Trello有变动?
## 生活便利
- 稍后要出门?查天气
- 记得喝水(每隔2小时提醒一次)
打开OpenClaw配置文件(~/.openclaw/openclaw.json),找到messages.heartbeat设置:
{
messages: {
heartbeat: {
enabled: true,
prompt: "Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.",
interval: 1800000, // 30分钟 = 1800000毫秒
},
},
}
几个关键参数:
- enabled:开关,true启用,false关闭
- prompt:心跳触发时的提示文本,告诉AI做什么
- interval:心跳间隔(毫秒),30分钟=1800000,1小时=3600000
openclaw gateway restart
搞定!
刚开始我设成每5分钟一次,结果:
- ✅ 响应很快
- ❌ 账号被限流(WhatsApp)
- ❌ AI疯狂输出token,费用爆炸
建议:30分钟到2小时,根据实际需求调整。重要的事情用心跳,普通事情用cron(定时任务,下篇文章聊)。
别写"检查一下我有什么事",AI不知道你要什么。
好的写法:
检查邮件:
- 未读邮件数量 > 0?
- 标记为"紧急"的邮件?告诉我标题和发件人
不好的写法:
检查一下我的邮件
心跳是给高频检查用的。低频的事情(比如"每周五早上9点提醒我交周报")用cron,别浪费心跳资源。
在HEARTBEAT.md里加上:
## 静默时段
- 晚上11点到早上8点:HEARTBEAT_OK
- 除非:老板发重要邮件、家里报警
这样AI就不会半夜吵你。
这两个功能容易混淆,简单区分一下:
用心跳(heartbeat):
- 需要结合最近的聊天上下文
- 时机可以稍微灵活(比如30分钟左右都行)
- 想减少API调用,把多项检查合并成一次
- AI需要"思考"判断该不该打扰你
用cron(定时任务):
- 需要精确时间(比如"每周一早上9点")
- 任务需要独立执行(不在主会话上下文里)
- 想用不同的模型或推理级别
- 一次性提醒(“提醒我20分钟后开会”)
- 需要结果直接发到某个频道(不经过主会话)
举个对比例子:
- ❌ 用心跳做:“每周一早上9点提醒我交周报”(太精确,用cron)
- ✅ 用心跳做:“每半小时检查一下有没有急事需要我处理”
- ✅ 用cron做:“每周一早上9点发送提醒消息”
## 工作日(周一到周五,9点-18点)
1. **Slack** - 有@我吗?来自谁?
2. **GitHub** - 我的PR有新评论吗?
3. **Jira** - 分配给我的Ticket有更新吗?
4. **会议** - 接下来1小时有会议?发会议链接
## 非工作时间
HEARTBEAT_OK
## 早上(6:00-12:00)
- 邮箱:有投资人邮件吗?
- 日历:今天的重要安排
- Twitter:品牌有负面舆情吗?
## 下午(12:00-18:00)
- 服务器:有报警吗?
- 数据:DAU有异常下降吗?
- 竞品:有新功能发布吗?
## 晚上(18:00-23:00)
- 邮箱:只看标记为"紧急"的
- 社群:有重要讨论吗?
## 深夜
HEARTBEAT_OK
每次心跳:
1. 邮件:未读 > 0?告诉我数量
2. 日历:2小时内有事?告诉我
如果都没事:HEARTBEAT_OK
A: 这是一个约定俗成的回复。OpenClaw收到这个回复,就知道心跳检查过了,没什么事。你也可以改成其他词,但保持一致就行。
A: 取决于你检查的内容。如果只是简单查询(邮件、日历),消耗很小。如果要复杂处理(分析趋势、生成报告),就会多一些。我的建议:心跳做轻量检查,重的任务交给cron或手动触发。
A: 不行,一个Gateway只有一个心跳配置。但你可以把多个检查项都写在HEARTBEAT.md里,AI会按顺序检查。
A: 在HEARTBEAT.md里加状态记录。比如:
## 每日检查(每天只做一次)
如果距离上次检查 < 24小时:
跳过
否则:
1. 检查服务器健康
2. 记录检查时间到 heartbeat-state.json
心跳这东西,乍一看像多此一举:有事儿直接问不就行了?
但用上两天你就明白差别了:
被动是工具,主动是伙伴。
工具需要你记住一切,伙伴会记住你的一切。
试试吧,你会发现AI突然"活"了。
下一步:
- 创建你的第一个
HEARTBEAT.md - 设置30分钟心跳间隔
- 观察3天,调整检查内容
- 加上静默时段,别被打扰
相关阅读:
喜欢这篇文章?订阅"小龙虾日报",每周推送OpenClaw技巧! 链接在右上角,免费订阅~ 🦞