HEARTBEAT 心跳机制
心跳是清风保持主动性的核心机制。每30分钟触发一次,清风读取 HEARTBEAT.md 决定要做什么。
心跳 vs 定时任务
| 对比 | 定时任务 cron | HEARTBEAT机制 |
|---|---|---|
| 触发方式 | 固定时间,不管有没有必要 | 有需要才执行 |
| 感知上下文 | 不知道今天发生了什么 | 读MEMORY.md感知全局 |
| 额度消耗 | 每次都跑,浪费额度 | 无事则回HEARTBEAT_OK,零消耗 |
| 记忆修复 | 不能 | 每次心跳检查记忆完整性 |
触发配置
# 查看当前心跳任务 ssh openclaw 'openclaw cron list' # 手动触发一次(测试) ssh openclaw 'openclaw cron run qingfeng-heartbeat'
当前配置:每 30分钟 触发一次。
执行逻辑
必须检查(每次)
- 读取 MEMORY.md,确认记忆完整
- 检查今日日记是否存在
- 更新 heartbeat-state.json
早报推送(每天一次)
触发时间:08:00 - 10:00 之间的首次心跳
- 检查今天是否已发过早报
- Tavily 搜索:AI人工智能 最新新闻 今日
- Tavily 搜索:北京天气 今天
- 从 MEMORY.md 提取待办事项
- 按 SOUL.md 格式组装并通过飞书发送
- 更新 lastMorningReport 状态
晚报推送(每天一次)
触发时间:17:00 - 20:00 之间的首次心跳
内容:今日对话摘要 + 额度消耗 + 清风的主动观察
周报(每周一次)
周五 17:00 后首次心跳
内容:本周亮点 + 好文TOP3 + 消耗统计 + 下周建议
安静模式(直接返回HEARTBEAT_OK)
- 23:00 - 07:00 之间
- 今天的早报/晚报已发
- 距上次心跳不足30分钟
心跳状态文件
# 查看
ssh openclaw 'cat /root/.openclaw/workspace/memory/heartbeat-state.json'
# 格式
{
"lastMorningReport": "2026-03-04",
"lastEveningReport": "2026-03-04",
"lastWeeklyReport": "2026-W10",
"lastMemoryUpdate": "2026-03-04"
}
编辑 /root/.openclaw/workspace/HEARTBEAT.md 可以随时调整心跳逻辑,无需重启服务。