一、引言:定时任务的需求
在实际应用中,Agent需要处理许多周期性工作:检查邮件、日历提醒、系统健康检查、生成工作报告等。这些任务不能依赖人工手动触发,需要自动化的定时机制。
传统解决方案如系统级Cron,虽然可靠但与Agent能力隔离,无法利用Agent的消息工具、文件操作、Git管理等能力。Heartbeat机制应运而生。
二、Heartbeat的核心机制
2.1 基本概念
Heartbeat是OpenClaw内置的定时任务触发器,通过周期性发送heartbeat消息到Agent会话,触发任务执行。其核心思想是:将定时任务定义嵌入工作空间,由Agent在会话内执行。
2.2 配置方式
通过工作空间中的HEARTBEAT.md文件定义任务清单,例如:
-
检查博客Netlify部署状态(最近30分钟有推送的)
- 查看最新的git提交
- 验证是否可访问
- 如失败则报告
-
生成并发送工作复盘(每6小时一次)
- 读取最近2个memory文件
- 提取关键内容(博客更新、Git提交、重要决策、待办、用户反馈)
- 通过飞书私聊发送
Agent收到heartbeat消息后,会自动读取HEARTBEAT.md,按清单依次执行。如果所有任务都无需处理,则回复HEARTBEAT_OK,不发送消息。
三、与Cron的对比
3.1 执行环境
Cron在独立进程执行,只能调用系统命令。Heartbeat在Agent会话内执行,可以访问工作空间文件、调用message工具、执行Git操作等Agent能力。
3.2 灵活性
Cron修改需要编辑crontab文件,属于系统级操作。Heartbeat只需编辑HEARTBEAT.md,在Agent会话内即可完成,更安全也更灵活。
3.3 反馈机制
Cron的输出只能写入日志文件。Heartbeat可以直接发送飞书消息,实现实时反馈,也支持只记录日志不发送消息(HEARTBEAT_OK)。
四、实际应用案例
4.1 工作复盘自动推送
通过配置每6小时推送一次工作复盘,回顾最近的博客更新、Git提交、重要决策和待办事项。这种自动化复盘帮助跟踪项目进度,避免遗漏关键信息。
4.2 博客部署验证
每次有新博客推送后,自动检查Netlify部署状态,确认博客是否成功上线。如检测到失败,立即发送警报通知。
4.3 其他可能场景
- 日历提醒:每天早上查看未来24小时日程,提醒重要会议
- 邮件检查:定期检查未读邮件,提取重要信息汇总
- 系统监控:检查磁盘空间、服务运行状态,异常时报警
五、核心优势
5.1 集成化
Heartbeat任务直接在Agent会话中执行,无需额外配置环境或权限。所有Agent可用的工具和资源,Heartbeat任务都能使用。
5.2 智能化
Agent可以对任务结果进行判断和处理,不仅仅是机械执行。例如,工作复盘不是简单罗列信息,而是提取关键内容,生成摘要。
5.3 易维护性
任务清单用Markdown编写,清晰易懂。修改任务只需编辑HEARTBEAT.md,无需涉及系统配置。
六、使用建议
6.1 合理设置频率
过于频繁的heartbeat会消耗大量Token。建议根据任务重要性设置合理间隔:关键任务如监控可以每1-2小时执行一次,报告类任务可以每6-12小时执行一次。
6.2 明确触发条件
对于有条件执行的任务(如工作复盘推送),需要在HEARTBEAT.md或独立的状态文件中记录上次执行时间,避免重复执行。
6.3 错误处理
在任务执行中添加适当的错误处理逻辑,如网络请求失败时的重试机制,异常情况的日志记录等。
七、结语
Heartbeat机制将定时任务从系统级迁移到Agent会话级,使定时任务能够充分利用Agent的完整能力。这种设计不仅降低了配置复杂度,更开启了智能自动化任务的新可能。
对于需要周期性执行但又需要Agent能力的场景,Heartbeat提供了比传统Cron更优的解决方案。