用过OpenClaw的朋友都知道,它不只是一个聊天机器人——它是一个能"主动干活"的AI代理。今天这篇文章,聊聊OpenClaw最被低估的能力之一:定时任务(Cron)系统。
一、什么是OpenClaw的定时任务?
简单说,就是你告诉OpenClaw:"在某个时间,自动执行某个任务"。比如:
- 每天早上8点,发一条天气预报
- 每周一上午9点,总结上周工作
- 提前5分钟提醒你开会
- 每隔2小时检查一次邮件
这些都不需要你手动触发,OpenClaw会自己在后台默默完成。
二、两种定时模式
OpenClaw的定时任务有两种触发方式:
1. Heartbeat(心跳检查)
这是一个更"自然"的模式。OpenClaw每隔一段时间醒来一次,检查有没有需要做的事情。适合:
- 多个检查批量处理(邮件+日历+天气一起查)
- 不需要精确时间的周期性任务
- 需要对话上下文的场景
你可以在工作目录下的HEARTBEAT.md文件中写一个检查清单,OpenClaw每次醒来就会按清单逐项执行。
2. Cron(精确调度)
需要精确时间的任务,用Cron更合适。比如"每周一早上9点整"发送周报。Cron支持:
- 一次性任务:在某个具体时间点执行
- 周期任务:用cron表达式设定循环规则
- 自定义时区:不用算UTC时间差
三、实际使用场景举例
场景1:每日天气播报
设定每天早上7:30,OpenClaw自动获取你所在城市的天气,然后通过你常用的平台(Telegram、微信、Discord)发给你。
场景2:会议提前提醒
在日历事件开始前20分钟,自动发一条提醒消息。OpenClaw会检查你的日历,找到即将到来的事件,然后定时推送。
场景3:周期性报告
每周五下午5点,自动汇总本周的工作进展、git提交记录、待办事项,生成一份简洁的周报。
场景4:状态监控
每30分钟检查一次服务器状态、网站是否正常,发现问题立即通知你。
四、Cron vs Heartbeat:怎么选?
这是最常见的问题。简单判断:
- 用Heartbeat:多个检查可以合在一起,时间不需要太精确,想减少API调用次数
- 用Cron:时间必须精确(比如9:00整),任务需要隔离执行,一次性提醒
实际使用中,两者可以混搭。把周期性的轻量检查放进Heartbeat清单,把精确时间的任务交给Cron。
五、定时任务背后的技术细节
OpenClaw的定时系统支持两种payload类型:
- systemEvent:向主会话注入一条系统消息,适合简单的提醒和通知
- agentTurn:启动一个独立的AI会话来执行复杂任务,适合需要推理、搜索、计算的工作
对于需要发送结果的任务,OpenClaw支持多种投递方式:
- announce:直接发到你的聊天频道
- webhook:通过HTTP推送到外部系统
- none:静默执行,不打扰你
六、最佳实践
1. 合理利用Heartbeat清单:把多个轻量检查放在HEARTBEAT.md里,每次醒来批量处理,节省资源
2. 智能静默时段:在Heartbeat检查中设定"夜间安静模式"(比如23:00-08:00不主动打扰),除非有紧急事件
3. 任务文本要清晰:给定时任务写描述时,要让AI能准确理解要做什么。比如"检查邮件"不如"检查邮箱中最近2小时内的未读邮件,如果有紧急邮件就通知我"
4. 定期清理:不再需要的定时任务及时删除,保持系统整洁
5. 上下文很重要:如果是重要提醒,把最近的相关对话作为上下文加进去,AI会做出更好的判断
七、总结
OpenClaw的定时任务系统,让AI从"被动应答"变成"主动服务"。它不只是回答你的问题,而是能在你开口之前就帮你把事情办了。
如果你已经在用OpenClaw,强烈建议尝试一下定时任务功能。从一个简单的每日天气提醒开始,你会发现AI助手的体验完全不一样了。
下一篇我会详细介绍如何开发OpenClaw的技能(Skill),让你的AI助手拥有更多专属能力。敬请期待!
以上内容基于OpenClaw最新版本编写,所有功能均可通过简单配置实现,无需编写代码。