乐于分享
好东西不私藏

OpenClaw 心跳与定时:让 AI 自动化执行任务

OpenClaw 心跳与定时:让 AI 自动化执行任务

【原文】
 【一、什么是心跳机制?】
 OpenClaw 的心跳(Heartbeat)是一个定期执行的检查任务。可以理解为”定时巡检”——每隔一段时间,AI 助手会自动醒来,检查有没有需要处理的事情。
 【二、配置心跳任务】
 在 Agent 目录下创建 HEARTBEAT.md:
 markdown
 HEARTBEAT.md
 【心跳检查项】
 - 检查邮件:每 30 分钟一次
 - 检查日历:每 2 小时一次
 - 发送早报:每天 8:00
 【执行时间】
 - interval: 30m  (30分钟检查一次)
 - cron: “0 8 * * *” (每天早上8点执行特定任务)
 【三、HEARTBEAT.md 模板说明】
 markdown
 留空则跳过心跳 API 调用
 添加任务时:
 【检查项】
 - 任务描述
 【四、定时任务(Cron)】
 使用 Cron 表达式精确控制执行时间:
 yaml
 cron:
   – name: “发送早报”
     schedule: “0 8 * * *”  # 每天 8:00
     action: “send_daily_brief”
   – name: “健康检查”
     schedule: “0 */2 * * *”  # 每2小时
     action: “health_check”
   – name: “周报总结”
     schedule: “0 18 * * 5”  # 每周五 18:00
     action: “weekly_summary”
 【五、心跳 vs 定时任务的区别】
 | 特性 | 心跳(Heartbeat) | 定时任务(Cron) |
 |——|——————|—————–|
 | 触发方式 | 周期性轮询 | 精确时间调度 |
 | 适用场景 | 多项检查可批量处理 | 精确时间点执行 |
 | 灵活性 | 高,可根据上下文决定是否行动 | 低,必须执行 |
 | 精度 | 分钟级(一般 30 分钟) | 秒级 |
 【六、实际应用示例】
 场景:每天早上 8 点推送日报
 yaml
 cron:
   – name: “晨间推送”
     schedule: “0 8 * * *”
     action: |
       1. 获取当天天气
       2. 获取今日日程
       3. 生成早报文本
       4. 发送到 QQ 群
 场景:每隔 30 分钟检查新邮件
 markdown
 HEARTBEAT.md
 每 30 分钟检查一次邮件,有重要邮件时通知
 【七、注意事项】
 1. 避免过于频繁:心跳间隔太短会增加 API 消耗
 2. 夜间静音:建议 23:00-08:00 不执行非紧急任务
 3. 结果缓存:相同检查短时间内不重复执行
 4. 超时处理:心跳执行超过设定时间会自动终止,避免阻塞