5.1 设置定时提醒
上一章,你学会了让 OpenClaw 帮你做各种事——看文件、写代码、处理数据。
但这些都是你主动找它。
现在你可能会想:能不能让它主动帮我?
比如每天早上7点,自动查邮件、看日程、搜新闻,你醒来就能看到摘要?
这就是 OpenClaw 的两个核心机制:Heartbeat(心跳) 和 Cron(定时任务)。
这一节,我们用5分钟,让 OpenClaw 从“你找它”变成“它主动找你”。
两种机制的区别
| 机制 | 怎么工作 | 适合什么场景 |
|---|---|---|
| Heartbeat | 每隔一段时间自动检查 | 持续监控、定期巡查 |
| Cron | 到指定时间执行 | 精准定时、一次性提醒 |
简单记:需要定期检查用 Heartbeat,需要精准执行用 Cron。
试一试:设置一次性提醒
最简单的,让它20分钟后提醒你开会。
直接在聊天里说:
20分钟后提醒我开会
它会自动创建一个定时任务。时间到了,主动给你发消息:
提醒:该开会了!
你也可以说:
- “明天早上9点提醒我开会”
- “下周一8点提醒我写周报”
不用背命令,直接说人话就行。
试一试:设置周期性任务
比如每天早上7点,让它帮你生成今日摘要。
在聊天里说:
每天早上7点,帮我生成今日摘要: 检查邮件、看日程、查天气、搜新闻 然后发到我的Telegram
它会创建一个周期性任务,每天早上7点自动执行。
你也可以用命令:
bash
openclaw cron add \
--name "每日早报" \
--cron "0 7 * * *" \
--tz "Asia/Shanghai" \
--session isolated \
--message "生成今日摘要:邮件、日程、天气、新闻" \
--announce参数说明:
--cron “0 7 * * *”:每天7点(分 时 日 月 周)--tz “Asia/Shanghai”:时区,这行不能省--session isolated:到点直接执行,不依赖心跳--announce:执行后发送通知
试一试:设置心跳检查
如果你希望它每隔一段时间自动检查一些事,可以用 Heartbeat。
工作区(默认路径:~/.openclaw/workspace)默认创建了 HEARTBEAT.md 文件:
在聊天里说:
定期帮我检查客服消息,重要紧急的立马通知我: 监控服务器报警,随时提醒 定期检查今天的待办事项看看完成了没有 把上面的内容写入HEARTBEAT.md
它会自动在 HEARTBEAT.md 文件下追加以下信息:
markdown
# 心跳检查清单
- 检查客服消息,有紧急的就通知我
- 检查服务器状态,有报警就通知我
- 检查今天的待办事项默认每30分钟,它会自动醒来检查一遍。有事情就通知你,没事情就静默。
常用命令速查
bash
# 查看所有定时任务
openclaw cron list
# 立即测试某个任务
openclaw cron run <任务ID> --force
# 删除任务
openclaw cron remove <任务ID>
# 检查Gateway状态(任务需要Gateway运行)
openclaw gateway status遇到问题怎么办?
任务没按时执行 → 检查三件事:
- Gateway在运行吗?
openclaw gateway status - 时区对吗?确保加了
--tz “Asia/Shanghai” - 用的是
--session isolated吗?Main模式需要等心跳触发
想晚上不打扰 → 在配置里设置活动时段:activeHours: { start: “08:00”, end: “22:00” }
这一节,你做了什么
| 学了什么 | 核心理解 |
|---|---|
| Heartbeat | 定期检查,适合持续监控 |
| Cron | 精准执行,适合定时任务 |
| 一次性提醒 | “20分钟后提醒我...” |
| 周期性任务 | “每天早上7点...” |
关键是:从“你找它”变成“它主动找你”。
下一节
定时任务学会了。
下一节,我们来聊聊记忆系统——让它记住重要信息,下次不用你重复说。