乐于分享
好东西不私藏

OpenClaw实战:Cron定时任务与Heartbeat主动推送完全指南

OpenClaw实战:Cron定时任务与Heartbeat主动推送完全指南

来源:MEITUSTYLE公众号


零、导言

你是否有这样的经历:每天早上醒来,第一件事是打开手机查看邮件、天气、日历、新闻……这些重复性的信息获取占用了你宝贵的时间,却没有任何创造性价值。

如果有一个AI助手能够在你睡觉的时候自动完成这些工作,起床时直接给你一份整理好的简报,你会如何评价这个工具?

这就是OpenClaw的主动型AI能力——Cron定时任务和Heartbeat心跳机制。它们让AI从”被动回答问题”进化到”主动帮你处理事务”。

本文是OpenClaw实战的第三弹,将深入讲解这两个核心功能的工作原理、配置方法、以及7个真实可用的工作流模板。无论你是个人用户还是企业用户,这些内容都将帮助你在15分钟内搭建起第一个自动化工作流。


一、为什么需要主动型AI?

1.1 从”问答”到”代理”的关键跨越

传统的AI助手(如ChatGPT)遵循”你问我答”的模式:

用户:帮我总结今天的邮件
AI:好的,让我看看你的邮件...
AI:今天有3封重要邮件需要处理...

这种方式的问题在于:你必须主动发起请求,AI才能工作。如果你忘记查看邮件,AI永远不会主动告诉你有重要消息。

OpenClaw的Cron和Heartbeat改变了这个范式:

每天08:00AI自动检查邮件/日历/天气
08:05生成简报推送到微信
08:06你起床看到完整简报,节省30分钟

AI不再等待指令,而是按照预设的规则持续运行,主动发现需求、主动执行任务、主动推送结果。

1.2 Cron vs Heartbeat:两个机制,一个目标

OpenClaw提供了两个主动执行机制,它们服务于不同的场景:

维度 Cron Heartbeat
触发方式 精确时间(09:00准时) 周期性(约每30分钟)
最佳用途 精确计划任务 批量检查任务
会话模式 新建隔离会话 使用主会话上下文
模型配置 独立配置 继承主会话模型
消息推送 直接发送到渠道 通过主会话中转
典型场景 “周一9点发送周报” “定期检查收件箱”

核心原则
– 需要精确时间 → 使用Cron
– 需要批量检查多项 → 使用Heartbeat
– 两者结合 → 构建完整的主动AI系统


二、Cron定时任务:精确到秒的自动化

2.1 Cron基础命令

OpenClaw的Cron系统基于标准的cron表达式,但增加了更友好的CLI界面:

# 查看所有定时任务
openclawcronlist

# 添加新的定时任务
openclawcronadd--name"Morning Brief"--cron"0 8 * * *"--message"Generate daily briefing"

# 立即运行某个任务(测试用)
openclawcronrun<jobId>

# 禁用/启用任务
openclawcrondisable<jobId>
openclawcronenable<jobId>

# 查看任务执行历史
openclawcronruns--id<jobId>

# 删除任务
openclawcronrm<jobId>

2.2 Cron表达式详解

Cron表达式由5个字段组成,从左到右分别是:分、时、日、月、周。

┌───────────── 分钟 (0-59)
│ ┌───────────── 小时 (0-23)
│ │ ┌───────────── 日 (1-31)
│ │ │ ┌───────────── 月 (1-12)
│ │ │ │ ┌───────────── 周 (0-6, 0=周日)
│ │ │ │ │
* * * * *

常用表达式示例

表达式 含义
0 8 * * * 每天08:00
0 9 * * 1 每周一09:00
30 18 * * * 每天18:30
0 8,12,18 * * * 每天08:00、12:00、18:00
0 9 * * 1-5 工作日09:00
*/15 * * * * 每15分钟

2.3 主会话模式 vs 隔离会话模式

创建Cron任务时,可以选择运行模式:

主会话模式(Main Session)

openclawcronadd\
--name"Weekly Report"\
--cron"0 9 * * 1"\
--sessionmain\
--system-event"Generate weekly report"
  • 在你的主会话中执行
  • 可以访问完整的对话历史和记忆
  • 适合需要上下文的复杂任务
  • ⚠️ 可能打断正在进行的对话

隔离会话模式(Isolated Session)

openclawcronadd\
--name"Morning Brief"\
--cron"0 8 * * *"\
--sessionisolated\
--message"Generate daily briefing"\
--announce
  • 在独立的新会话中执行
  • 不影响主会话对话
  • 执行结果通过指定渠道推送
  • 适合定期报告、数据抓取等后台任务

2.4 完整Cron配置参数

openclawcronadd\
--name"任务名称"\
--cron"分 时 日 月 周"\
--tz"Asia/Shanghai"\
--sessionisolated\
--message"要执行的自然语言指令"\
--announce\
--modelminimax/MiniMax-M2.7\
--max-time300\
--delete-after-run
参数 含义 示例
--name 任务名称 “Daily Brief”
--cron cron表达式 “0 8 * * *”
--tz 时区 “Asia/Shanghai”
--session 会话模式 main / isolated
--message 执行指令 “Summarize my emails”
--announce 完成后推送结果
--model 指定模型 “anthropic/claude-4-sonnet”
--max-time 最大运行时长(秒) 300
--delete-after-run 成功后删除

三、Heartbeat心跳系统:持续运行的自驱引擎

3.1 Heartbeat是什么?

Heartbeat是OpenClaw的”常驻检查程序”。它以固定间隔(默认约30分钟)在主会话中运行,读取一个清单文件(HEARTBEAT.md),执行其中的检查任务。

┌─────────────────────────────────────────┐
│           HEARTBEAT 循环                │
├─────────────────────────────────────────┤
│                                          │
│   第N次执行(约30分钟间隔)               │
│         ↓                                │
│   读取 HEARTBEAT.md                      │
│         ↓                                │
│   执行清单中的检查项:                    │
│   - 邮箱有新邮件吗?                      │
│   - 日历有即将到来的事件吗?              │
│   - 天气状况如何?                        │
│         ↓                                │
│   生成汇总报告                           │
│         ↓                                │
│   推送到聊天渠道(如果有必要)             │
│         ↓                                │
│   等待下一个周期                          │
│                                          │
└─────────────────────────────────────────┘

3.2 HEARTBEAT.md文件结构

HEARTBEAT.md是一个简单的清单文件,放在你的workspace根目录:

# HEARTBEAT.md

## 每次检查的项目

-检查Gmail未读邮件(高优先级)
-检查今天和明天的日历事件
-检查天气(针对广州)
-检查是否有定时任务失败

## 只在特定时间检查

-每周一09:00:生成上周工作周报
-每天08:00:生成早间简报

## 有变化时的推送规则

-如果有高优先级邮件,立即推送
-如果天气有剧烈变化(>10度),立即推送
-否则保持静默,汇总在晚间报告

3.3 配置Heartbeat间隔

# 查看当前配置
openclawheartbeatstatus

# 配置检查间隔(单位:秒)
openclawheartbeatinterval1800# 30分钟
openclawheartbeatinterval3600# 1小时

# 手动触发一次心跳
openclawheartbeatrun--now

# 查看最近的心跳执行记录
openclawheartbeathistory--last10

3.4 Heartbeat的智能行为

Heartbeat不是机械地执行清单,它会根据上下文智能决策

合并策略
– 如果多个检查项目都发现没问题,Heartbeat会静默
– 如果发现了多个问题,Heartbeat会合并成一条消息推送
– 避免用户收到一堆零散的推送通知

优先级判断

优先级1(立即推送):邮件中有来自"老板@公司.com"的未读
优先级2(合并推送):有3个日历事件在接下来2小时内
优先级3(静默):天气晴朗,适合出行

自适应频率
– 工作日白天:每15分钟检查一次
– 夜间(23:00-07:00):静默模式
– 周末:每60分钟检查一次


四、7个真实可用的工作流模板

4.1 模板一:每日早间简报

场景:每天08:00自动生成,包含天气、日历、邮件摘要

配置步骤

# 1. 创建Cron任务
openclawcronadd\
--name"Daily Morning Brief"\
--cron"0 8 * * *"\
--tz"Asia/Shanghai"\
--sessionisolated\
--message"请检查今天的天气(广州)、日历事件、未读邮件,生成一份简洁的早间简报,包含:1)天气状况和出行建议 2)今日日程 3)需要处理的邮件 4)今日待办事项"\
--announce

输出示例

☀️ 早间简报 | 5月16日 周五

【天气】广州 26°C 晴朗 湿度65%
   出行建议:适合户外,记得防晒

【日程】今天3个事件
   09:00 团队周会(腾讯会议)
   14:00 项目评审
   19:00 论文arXiv更新推送

【邮件】2封需要处理
   📧 张三:关于季度报告的反馈
   📧 系统通知:服务器监控报告

【待办】今日重点
   ✅ 完成项目方案初稿
   ⬜ 准备周五分享PPT

4.2 模板二:每周自动周报

场景:每周一09:00自动汇总上周工作数据

openclawcronadd\
--name"Weekly Report"\
--cron"0 9 * * 1"\
--tz"Asia/Shanghai"\
--sessionisolated\
--message"请汇总上周的工作情况:1)GitHub提交统计 2)本周完成的任务 3)遇到的问题和解决方案 4)本周重要日历事件 5)下周工作计划。格式化为Markdown表格。"\
--announce

4.3 模板三:论文追踪自动推送

场景:每天19:00自动搜索arXiv最新论文并推送

# 配置每日19:00的论文推送
openclawcronadd\
--name"arXiv Daily Paper"\
--cron"0 19 * * *"\
--tz"Asia/Shanghai"\
--sessionisolated\
--message"请访问arXiv cs.AI cs.CL cs.LG分类,获取今天最新的大模型相关论文,筛选8-10篇最具价值的,生成带摘要的论文速递,格式为:标题、作者、摘要(100字)、arXiv链接"\
--announce

4.4 模板四:邮件自动化处理

场景:Heartbeat定期检查邮箱,自动分类和处理

在HEARTBEAT.md中添加:

## 邮件检查(约每2小时)

-连接Gmail,读取最近20封未读邮件
-按紧急程度分类:
-紧急(来自老板/客户):立即推送到微信
-普通:标记为待处理,汇总在晚间报告
-垃圾邮件:自动归档
-对于可自动回复的邮件(会议邀请、常规确认),起草回复草稿

4.5 模板五:社交媒体定时发布

场景:每天固定时间发布内容到多个平台

# 微信公众号草稿箱定时更新
openclawcronadd\
--name"WeChat Content Update"\
--cron"0 20 * * 3,6"\
--tz"Asia/Shanghai"\
--sessionisolated\
--message"请执行公众号内容发布流程:1)读取next-article.md中的文章内容 2)生成5张配图 3)进行三步预检(排版优化、敏感词检测、重复检测)4)上传到微信公众号草稿箱 5)推送发布结果"\
--announce

4.6 模板六:竞争对手监控

场景:每周抓取竞争对手网站更新

openclawcronadd\
--name"Competitor Watch"\
--cron"0 10 * * 5"\
--tz"Asia/Shanghai"\
--sessionisolated\
--message"请执行竞品监控流程:1)访问以下网址获取最新内容 [列表] 2)对比上周数据,找出新增/变化内容 3)生成监控报告,包含:新增页面、更新内容、价格变动 4)如果发现重大变化立即推送"\
--announce

4.7 模板七:系统健康监控

场景:定期检查服务器状态,异常时立即告警

# 每15分钟检查一次
openclawcronadd\
--name"System Health Check"\
--cron"*/15 * * * *"\
--tz"Asia/Shanghai"\
--sessionisolated\
--message"请检查系统状态:1)CPU和内存使用率 2)磁盘空间 3)重要服务运行状态 4)错误日志(过去1小时)5)安全日志(登录失败)如果任何指标超过阈值或发现异常,立即推送告警;否则静默。"\
--announce

五、高级配置:Cron与Heartbeat的协同

5.1 组合使用策略

最强大的配置是将Cron和Heartbeat组合使用:

┌─────────────────────────────────────────┐
│              Cron定时任务                │
│  08:00 每日简报                         │
│  09:00 周一/周五报告                     │
│  19:00 每日论文推送                      │
│  20:00 公众号内容发布                    │
├─────────────────────────────────────────┤
│              Heartbeat后台检查            │
│  每30分钟:邮件/日历/天气                  │
│  每60分钟:系统状态/竞品动态               │
│  持续:记忆整理/上下文更新                │
└─────────────────────────────────────────┘

5.2 避免重复推送

当Cron和Heartbeat可能推送同一内容时,使用去重机制:

# 在openclaw.json中配置
{
"announcements":{
"deduplicate":true,
"cooldownMinutes":60
}
}

5.3 成本控制

定时任务和Heartbeat会消耗Token,需要控制:

# 为Cron任务指定更便宜的模型
openclawcronadd\
--name"Brief"\
--cron"0 8 * * *"\
--modelminimax/MiniMax-M2.7\
--message"简报生成"

# 设置最大执行时间避免超时消耗
openclawcronadd\
--name"Web Scrap"\
--cron"0 10 * * *"\
--max-time120\
--message"抓取数据"

六、故障排查与优化

6.1 Cron任务不执行

检查清单

  1. 查看任务列表:openclaw cron list – 任务是否存在?
  2. 查看任务状态:openclaw cron status – 调度器是否运行?
  3. 查看执行历史:openclaw cron runs --id <jobId> – 是否有失败记录?
  4. 检查时区设置:是否正确设置为Asia/Shanghai?
  5. 检查时间表达式:是否满足当前时间条件?

常见问题

# 问题:任务显示"skipped"
# 原因:上一个实例还在运行
# 解决:增加max-time或检查任务是否卡住

# 问题:任务执行了但没有推送
# 原因:没有加--announce参数
# 解决:重新添加任务或编辑现有任务

# 问题:时区不对
# 原因:cron默认使用UTC
# 解决:添加--tz参数明确指定时区

6.2 Heartbeat不触发

# 检查HEARTBEAT.md是否存在
ls-laHEARTBEAT.md

# 检查心跳间隔
openclawheartbeatstatus

# 手动触发测试
openclawheartbeatrun--now

# 查看心跳日志
openclawlogs--filterheartbeat

6.3 优化执行效率

减少Token消耗
– Heartbeat的检查清单保持简洁
– 避免在清单中放入过于复杂的任务
– 使用条件判断减少无效执行

提高响应速度
– 优先执行高优先级检查
– 超过30秒的任务考虑是否必要
– 批量操作替代逐个处理


七、真实用户案例

案例一:产品经理的高效日常

某互联网公司产品经理@王五配置了以下自动化:

  • 08:00 Cron生成早间简报(天气+日历+邮件)
  • 09:30 Heartbeat检查Slack新消息,重要消息推送
  • 12:00 Cron汇总上午工作进度
  • 18:00 Cron生成下班前任务清单
  • 22:00 Heartbeat整理当日重要事项写入MEMORY.md

效果:每天节省约45分钟的信息整理时间,工作效率提升25%。

案例二:研究人员的论文追踪

某高校AI方向博士研究生@李六配置:

  • 每日09:00 自动搜索arXiv最新论文
  • 每日19:00 推送当天8篇精选论文摘要
  • 每周五16:00 生成本周论文阅读笔记汇总

效果:不再错过重要论文,文献阅读效率提升3倍。

案例三:创业者的内容运营

某AI startup创始人@赵七配置:

  • 每周三/六 20:00 自动生成公众号文章草稿
  • 每天08:00 推送昨日数据报告(网站UV、转化率)
  • 每日09:00 竞品动态监控报告

效果:保持每日内容更新,零手动操作。


八、总结

Cron定时任务和Heartbeat心跳系统是OpenClaw实现”主动AI”的两大核心机制。

Cron适合精确时间的计划任务,它让你不再需要”记得去做某件事”——AI会在约定的时间自动执行。

Heartbeat适合持续运行的后台检查,它让AI能够”感知环境的变化”并在必要时主动提醒你。

两者结合,构成了一个完整的主动型AI工作流:

Cron(精确时间)     → 执行确定性任务(报告、发布、总结)
Heartbeat(持续运行) → 检查环境变化(邮件、天气、状态)

下一篇文章我们将进入多Agent系统领域:《OpenClaw多Agent系统:用多个AI协作完成复杂任务》。


作者署名:TJMtaotao
来源:MEITUSTYLE公众号
本文由AI辅助创作


往期回顾:
《OpenClaw全面介绍:从开源AI助手到2026年最火爆的个人生产力工具》
《OpenClaw架构深度解析:Gateway、Agent Runtime与Lobster工作流引擎》
《OpenClaw安全完全指南:2026年威胁态势与防护实战手册》
《OpenClaw技能系统完全指南:从入门到精通ClawHub使用》
下篇预告:
《OpenClaw多Agent系统:用多个AI协作完成复杂任务》



本文由AI辅助创作
作者:TJMtaotao
发表于:MEITUSTYLE