系列 · OpenClaw超简单 11/ 15

OpenClaw超简单11:Heartbeat 定时任务

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

最近更新于 2026年3月25日

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

一、Heartbeat 是什么

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

典型使用场景:

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

二、两种定时机制

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

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

三、Heartbeat:轻量定时巡检

基本配置

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

---
every: 30m
target: last
lightContext: true
isolatedSession: false
showOk: false
showAlerts: true
---

## 检查清单

- 检查是否有重要邮件或消息需要我处理
- 如果没有需要处理的事情,回复 HEARTBEAT_OK
- 如果发现需要关注的内容,用中文简要说明

关键配置项说明

参数说明示例值
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。

创建一次性定时任务

在指定时间执行一次:

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

创建循环定时任务

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

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

查看和管理 Cron Job

# 查看所有定时任务
openclaw cron list

# 删除一个任务(先用 list 找到 ID)
openclaw cron remove <job-id>

# 立即触发一次(测试用)
openclaw system event --text "测试:整理今日待办" --mode now

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


五、实用示例

每天早报

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

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

---
every: 1h
target: last
lightContext: true
showOk: false
showAlerts: true
activeHours: "09:00-23:00"
---

检查以下内容:
- 如果一切正常,回复 HEARTBEAT_OK
- 如果发现任何异常或需要关注的内容,用简短的中文说明

周报汇总

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

六、省 Token 的小技巧

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

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

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

OpenClaw超简单12:配置文件深度解析 OpenClaw超简单10:联网搜索