前面几篇讲的都是"你问 Bot 答"。但 OpenClaw 还有一个更有意思的能力:Heartbeat——让 Bot 按照设定的节奏主动运行,不需要你发消息触发。

一、Heartbeat 是什么

Heartbeat 是 OpenClaw 的定时任务系统。你可以告诉 Bot “每天早上 8 点醒来看一眼有没有什么需要处理的事”,它就会按时自动运行,必要时主动发消息通知你。

典型使用场景:

  • 早报推送:每天早上自动搜索当天重要新闻,发到 Telegram
  • 服务器监控:每小时检查一次日志或指标,有异常立刻通知
  • 定时提醒:每周一提醒你本周的待办清单
  • 数据汇总:每天下班前整理当天的工作记录

二、两种定时机制

OpenClaw 的定时能力分两种,适合不同场景:

机制说明适合场景
Heartbeat轻量、低成本,运行在主会话里日常巡检、简单提醒
Cron Job独立会话、可发送通知到指定 Channel复杂任务、需要推送的场景

三、Heartbeat:轻量定时巡检

基本配置

在你的工作目录下创建 HEARTBEAT.md 文件,Bot 启动时会自动读取它,按照里面定义的节奏运行:

markdown
 1---
 2every: 30m
 3target: last
 4lightContext: true
 5isolatedSession: false
 6showOk: false
 7showAlerts: true
 8---
 9
10## 检查清单
11
12- 检查是否有重要邮件或消息需要我处理
13- 如果没有需要处理的事情,回复 HEARTBEAT_OK
14- 如果发现需要关注的内容,用中文简要说明

关键配置项说明

参数说明示例值
every运行间隔30m1h6h
target把结果发到哪里:last(最近的对话)、none(不发送)last
lightContext只加载 HEARTBEAT.md,减少 token 消耗true
isolatedSession使用独立会话,不污染主对话true
showOk正常时是否发消息(设为 false 可以减少打扰)false
showAlerts有需要处理的事情时发消息true
activeHours限定活跃时间段,避免深夜打扰"08:00-22:00"

重要:HEARTBEAT_OK 约定

在 HEARTBEAT.md 的检查清单里,必须告诉 Bot 没有异常时回复 HEARTBEAT_OK。这是 OpenClaw 识别"一切正常、无需通知"的信号,否则它每次运行都会发消息。


四、Cron Job:定时推送任务

Cron Job 比 Heartbeat 更灵活,可以设定精确时间、发送到指定 Channel。

创建一次性定时任务

在指定时间执行一次:

bash
1openclaw cron add \
2  --name "周一提醒" \
3  --at "2026-03-30T09:00:00+08:00" \
4  --session main \
5  --system-event "今天是周一,请帮我整理本周的待办事项并发给我"

创建循环定时任务

每天早上 8 点运行,结果推送到 Telegram:

bash
1openclaw cron add \
2  --name "每日早报" \
3  --cron "0 8 * * *" \
4  --tz "Asia/Shanghai" \
5  --session isolated \
6  --message "搜索今天最重要的科技新闻,用中文整理成早报发给我" \
7  --announce \
8  --channel telegram \
9  --to "你的telegram_user_id"

查看和管理 Cron Job

bash
1# 查看所有定时任务
2openclaw cron list
3
4# 删除一个任务(先用 list 找到 ID)
5openclaw cron remove <job-id>
6
7# 立即触发一次(测试用)
8openclaw system event --text "测试:整理今日待办" --mode now

Cron Job 的配置保存在 ~/.openclaw/cron/jobs.json,重启 Gateway 后自动恢复,不会丢失。


五、实用示例

每天早报

bash
1openclaw cron add \
2  --name "每日早报" \
3  --cron "0 8 * * *" \
4  --tz "Asia/Shanghai" \
5  --session isolated \
6  --message "联网搜索今天的科技新闻,整理出3-5条最重要的,用中文发给我" \
7  --announce \
8  --channel telegram \
9  --to "你的user_id"

每小时服务检查(HEARTBEAT.md 方式)

markdown
 1---
 2every: 1h
 3target: last
 4lightContext: true
 5showOk: false
 6showAlerts: true
 7activeHours: "09:00-23:00"
 8---
 9
10检查以下内容:
11- 如果一切正常,回复 HEARTBEAT_OK
12- 如果发现任何异常或需要关注的内容,用简短的中文说明

周报汇总

bash
1openclaw cron add \
2  --name "周报" \
3  --cron "0 17 * * 5" \
4  --tz "Asia/Shanghai" \
5  --session isolated \
6  --message "今天是周五,请帮我整理本周的工作亮点,生成一份简短的周报摘要" \
7  --announce \
8  --channel telegram \
9  --to "你的user_id"

六、省 Token 的小技巧

Heartbeat 每次运行都会消耗 token,长期下来有一定费用。几个省 token 的设置:

markdown
1---
2every: 1h
3lightContext: true      ← 只加载 HEARTBEAT.md,不加载完整上下文
4isolatedSession: true   ← 独立会话,不带入历史对话
5showOk: false           ← 正常时不发消息,减少无效运行
6---

lightContext: true + isolatedSession: true 组合,每次 Heartbeat 运行大约只消耗 2000–5000 tokens,是最省钱的配置。

第二阶段完结!到这里,你已经掌握了 OpenClaw 的扩展能力:Skills 插件、联网搜索、定时任务。如果想进一步深入,可以继续看后续的进阶配置篇。