乐于分享
好东西不私藏

OpenClaw 实战(五):自动化与定时任务

OpenClaw 实战(五):自动化与定时任务

真正的智能助手,不是等指令才动,而是知道什么时候该主动。

前几篇聊了 OpenClaw 的核心操作、Skills 系统、多 Agent 编排和记忆系统。有人问:”这些都挺好,但 AI 还是得我来唤醒。怎么能让它自己主动干活?”

这篇聊聊 OpenClaw 的自动化机制——让 AI 从”问答工具”变成”推进事情的助手”。


两个核心机制

OpenClaw 的自动化依赖两个机制:

  • Heartbeat(心跳)
    ——定期巡检,看情况提醒
  • Cron(定时任务)
    ——到点就执行,准时触发

用一个比喻区分:

Heartbeat = 巡逻员(定期巡检,没事不吵你)Cron = 闹钟(到点就响,不判断)

两者的区别在于是否需要”判断”:

特性
Heartbeat
Cron
触发方式
定期巡检(默认 30 分钟)
精确时间触发
执行逻辑
先看情况,再决定做不做
到点就执行,不判断
回复机制
没事回复 HEARTBEAT_OK(不通知)
每次都执行并通知
适用场景
周期性监控、抓异常
固定时间推送、一次性提醒

这两种自动化任务的设置,可以直接编辑配置文件(HEARTBEAT.md、openclaw.json),或者也可以跟 OpenClaw 对话,让它代劳。


Heartbeat 配置示例

Heartbeat 适合需要”判断局势”的场景。比如:有紧急邮件才提醒、数据波动超 20% 才通知。没事就不打扰。

场景 1:运营人员——数据巡检

用户:工作时间每小时帮我检查核心数据DAU、转化率、GMV这三个指标,      如果波动超过 20% 就提醒。OpenClaw:已配置 Heartbeat 巡检:✅ 每小时检查核心数据指标(DAU、转化率、GMV)✅ 对比昨日同期,波动超过 20% 则提醒工作时间(9:00-18:00)生效。

OpenClaw 写入的 HEARTBEAT.md:

# 运营巡检## 每小时检查(工作时间 9:00-18:00)- 检查核心数据指标(DAU、转化率、GMV)- 对比昨日同期,波动超过 20% 则提醒- 检查活动页面是否正常访问

Heartbeat 每小时触发一次,AI 读取这个文件执行检查。数据正常就不通知,异常才提醒。

场景 2:通用——邮箱监控

用户:帮我盯着邮箱,有紧急邮件就提醒我。     另外如果 2 小时内有会议,也提前说一下。OpenClaw:已配置 Heartbeat 巡检:        ✅ 检查邮箱,仅标记紧急邮件        ✅ 检查日历,2 小时内有会议则提醒        每 30 分钟巡检一次,有事才通知。

写入的 HEARTBEAT.md:

# HEARTBEAT.md## 每次检查- 检查邮箱,仅标记紧急邮件- 检查日历,2 小时内有会议则提醒

Cron 配置示例

Cron 适合”到点就执行”的场景。比如:每天早上提醒今日计划、每周五生成周报。不需要判断,到点就响。

场景 3:程序员——周报自动化

周五下午 5 点,别人还在回忆这周干了啥,周报已经躺在文件夹里了。

用户:每周五下午 5 点帮我生成周报,     内容基于本周在 GitLab 和 Jira 上的工作记录。OpenClaw:已创建定时任务:            17:00(每周五)- 生成周工作报告        ✅ 自动访问 GitLab 查询本周提交记录        ✅ 自动访问 Jira 查询本周任务状态        ✅ 汇总后输出到 workspace/reports/weekly-YYYY-MM-DD.md

OpenClaw 后台做了什么:

在做上述的对话后,OpenClaw会在openclaw.json中添加一条Cron任务

Cron 任务触发后,OpenClaw 会执行以下步骤:

  1. 访问 GitLab API
    ——查询本周的 commit 记录、PR 状态、代码审查情况
  2. 访问 Jira API
    ——查询本周完成的任务、进行中的任务、阻塞项
  3. 汇总分析
    ——将 Git 提交和 Jira 任务关联,生成结构化周报

生成的周报内容示例:

# 周工作报告 - 2026-04-20## 本周完成### 代码提交(GitLab)- feat: 用户登录模块重构(3 个 commit,review 已通过)- fix: 支付接口超时问题(1 个 commit,已合并到 main)- docs: API 文档更新(2 个 commit)### 任务完成(Jira)- PROJ-1234: 完成用户认证模块开发 ✅- PROJ-1235: 修复支付接口超时问题 ✅- PROJ-1236: 代码审查 2 个 PR## 进行中- PROJ-1237: 订单系统重构(进度 60%,预计下周三完成)## 阻塞项- 无## 下周计划- 完成订单系统重构- 参与 PROJ-1240 需求评审

OpenClaw 可以通过接口直接访问 GitLab 和 Jira,自动汇总本周的工作情况。只需要在第一次配置时授权访问这些工具。

Cron 任务能执行多步骤操作吗? 能。Cron 触发后,Agent 收到 --message 的内容,会自己决定怎么一步步完成–访问 API、读取文件、写入结果,都不需要额外创建 Skill。Agent 本身就是一个能调用工具的 AI,多步骤任务它自己就能拆解执行。只有当流程复杂到需要重复使用时,才建议封装成 Skill。

场景 4:产品经理——需求评审提醒

产品经理的日常:上午拉需求评审会,下午和开发对细节,晚上才想起来——评审纪要还没发,待办事项也没跟进。

用户:每天早上 9 点帮我检查当天的会议安排,     列出每个会议的会前准备事项,     每天下午 5 点检查本周待办事项有没有快到截止日期的。OpenClaw:已创建 2 个定时任务:        ✅ 09:00(每天)- 今日会议提醒        ✅ 17:00(每天)- 待办事项检查

OpenClaw 后台做了什么:

# 任务 1:每日会议提醒openclaw cron add \  --name "今日会议提醒" \  --cron "0 9 * * 1-5" \  --tz "Asia/Shanghai" \  --session main \  --message "检查今天日历中的需求评审会,列出每个会议的时间、参与人和需要准备的材料。"# 任务 2:待办检查openclaw cron add \  --name "待办检查" \  --cron "0 17 * * 1-5" \  --tz "Asia/Shanghai" \  --session main \  --message "提醒:检查本周待办事项,标记快到截止日期的。"

实际运行流程:

每天早上 9:00,OpenClaw 会执行以下步骤:

  1. 读取日历
    ——检查今天有哪些需求评审会,获取会议时间和参与人
  2. 输出提醒列表
    ——告诉你今天有哪些会议,需要准备什么

示例输出:

今日会议提醒(4 月 24 日 周五):📋 10:00 需求评审会(张三、李四)   需要准备:PRD v2.3、用户故事、原型图📋 14:00 客户需求讨论(王五)   需要准备:需求文档、历史反馈记录 2 个会议。

读取日历的工作可以通过skills或插件完成,提前设置好授权,openclaw会自行调用工具。

场景 5:实施工程师——项目进度日报

实施工程师手里同时有好几个项目在推进。A 客户部署到 UAT 阶段,B 客户在做数据迁移,C 客户刚签完合同准备进场。平时就可以用openclaw来协助处理各个项目上的问题,给出处理意见以及记录进展,然后就可以通过其记录的项目情况进行总结。

用户:每天早上 9 点帮我汇总手头所有项目的当前进度,     标记有阻塞项的项目,     每周五下午 4 点生成项目周报。OpenClaw:已创建 2 个定时任务:        ✅ 09:00(每天)- 今日项目进度汇总        ✅ 16:00(每周五)- 项目周报生成

OpenClaw 后台做了什么:

# 任务 1:每日项目进度汇总openclaw cron add \  --name "项目进度汇总" \  --cron "0 9 * * 1-5" \  --tz "Asia/Shanghai" \  --session main \  --message "检查 workspace/projects/ 下的项目状态文件,汇总各项目的当前阶段、进度百分比、阻塞项,输出今日项目进度列表。"# 任务 2:项目周报openclaw cron add \  --name "项目周报" \  --cron "0 16 * * 5" \  --tz "Asia/Shanghai" \  --session isolated \  --message "汇总本周各项目的实施进度、本周完成事项、下周计划、风险项,输出到 workspace/reports/project-weekly.md"

实际运行流程:

每天早上 9:00,OpenClaw 会:

  1. 读取项目状态文件
    ——从 workspace/projects/ 读取每个项目的进度记录
  2. 汇总当前状态
    ——列出各项目的阶段、进度、阻塞项
  3. 标记风险
    ——有阻塞项的项目会特别标注

示例输出:

今日项目进度(4 月 24 日 周五):📋 A 客户 - UAT 阶段(进度 75%   当前:用户验收测试中   阻塞:客户侧测试环境不稳定📋 B 客户 - 数据迁移(进度 40%   当前:历史数据清洗中   阻塞:无📋 C 客户 - 项目启动(进度 15%   当前:需求调研已完成,准备进场   阻塞:无⚠️ 1 个项目有阻塞项(A 客户)

调整配置

设置好后,想改时间或取消任务,直接说就行:

用户:把周报时间改到周五下午 4 点OpenClaw:已将"周报生成"任务从 17:00 调整为 16:00用户:取消会议纪要提醒OpenClaw:已删除"会议纪要提醒"任务。用户:查看我有哪些定时任务OpenClaw:当前有 3 个定时任务:        ✅ 09:00- 今日客户日程提醒(已启用)        ✅ 16:00- 客户实施周报(已启用)        ✅ 17:45- 下班收尾(已启用)

Cron参数说明: –message 和 –system-event 的区别

创建 Cron 任务时,有两个常用参数:--message 和 --system-event。它们有什么区别?

–message

AI 会像处理用户消息一样处理它。可以执行复杂操作:读取文件、调用 API、生成报告等。

openclaw cron add \  --name "周报生成" \  --cron "0 17 * * 5" \  --session isolated \  --message "根据本周 workspace/daily-log.md 的内容,生成一份周报。"

适用场景: 需要 AI 执行操作(读取数据、生成内容、调用工具)。

–system-event

系统提醒类通知。AI 直接输出预设的提醒文本,不执行复杂操作。

openclaw cron add \  --name "日报提醒" \  --cron "0 18 * * 1-5" \  --session main \  --system-event "提醒:现在是 18:00,请提交今日工作日报。"

适用场景: 简单的提醒通知,不需要 AI 读取数据或执行操作。

选择建议

需求
用哪个
示例
读取日历/文件/API
--message
“检查今天日历中的会议”
生成报告/汇总数据
--message
“生成今日工作日报”
检查待办/任务状态
--message
“检查本周待办事项”
简单提醒
--system-event
“提醒:现在是 18:00,请提交日报”

简单原则: 需要 AI “干活”用 --message,只需要 AI “喊你”用 --system-event。显然 “干活” 需要消耗更多的token。


Heartbeat 的 token 消耗

Heartbeat 是定期巡检机制,每次触发都会消耗 token。配置不当,成本会很高。

一组参考数据:

Heartbeat 频率
每天触发次数
每次消耗 token
每天总消耗
15 分钟
96 次
800 token
77,000 token
30 分钟
48 次
800 token
38,000 token
60 分钟
24 次
800 token
19,000 token

77,000 token 接近很多大模型的上下文窗口上限。一天跑下来,光 Heartbeat 就能消耗大量 token。

节约 token 的几个要点

1. 频率间隔别太低

30 分钟是推荐的默认值。除非需要实时监控服务器,否则别设 15 分钟。

2. HEARTBEAT.md 要精简

HEARTBEAT.md 是每次巡检的指令,越长消耗越多。

❌ 太长:

# HEARTBEAT.md## 每次检查- 检查邮件(列出所有未读邮件,按优先级排序,标记重要邮件,摘要内容)- 检查日历(列出今天所有会议,包括会议标题、时间、参与人、需要准备的材料)- 检查待办(列出所有未完成待办,按截止日期排序,标记即将到期的)

✅ 精简:

# HEARTBEAT.md## 每次检查- 检查邮箱,仅标记紧急邮件- 检查日历,2 小时内有会议则提醒

指令短,消耗少。AI 判断没事就回 HEARTBEAT_OK,不消耗额外 token。

3. 重巡检用 Cron 替代

有明确固定时间的任务,能用 Cron 就不要用 Heartbeat ,可以节约 token:

用户:每天下午 6 点帮我生成日报OpenClaw:已创建定时任务:        ✅ 18:00 - 生成今日工作日报

这样不需要 Heartbeat 反复检查”现在是不是 18:00″。

4. 非工作时间关闭

HEARTBEAT.md 里设置非工作时间不检查:

# HEARTBEAT.md## 工作时间(周一至周五 9:00-18:00)- 检查邮箱,仅标记紧急邮件- 检查日历,2 小时内有会议则提醒## 非工作时间- 直接回复 HEARTBEAT_OK

晚上和周末几乎不消耗 token。

成本对比

配置方式
每天 token 消耗
月成本(按 0.003 元/千 token)
15 分钟 + 详细 HEARTBEAT.md
150,000
13.5 元
30 分钟 + 精简 HEARTBEAT.md
15,000
1.35 元
30 分钟 + 仅工作时间
7,500
0.68 元
Cron 替代大部分巡检
3,000
0.27 元

Heartbeat 不是越勤越好。30 分钟 + 精简 HEARTBEAT.md + 非工作时间关闭,是大多数人的最优配置。


避坑指南:自动化配置的常见问题

问题一:Heartbeat 负载过重

现象: 每次巡检都执行大量检查项,token 消耗高、通知频繁。

原因: 把所有任务都塞给 Heartbeat,包括重任务(如生成报告、数据分析)。

解决: 重任务用 Cron,轻巡检用 Heartbeat。Heartbeat 只负责”看情况、抓异常”。

问题二:Cron 任务过密

现象: 频繁收到通知,被打断工作节奏。

原因: Cron 设得过密,任务设置的太多太频繁。

解决: 从每天 1-2 个工作关键节点开始,有必要再逐步增加。

问题三:时区配置错误

现象: “早上 9 点”的任务在北京时间 17 点才执行。

原因: Cron 默认使用 UTC 时间,未配置时区。

解决: 对话时说明时区,OpenClaw 会自动加上 --tz "Asia/Shanghai"


最后

Heartbeat 解决的是”主动发现”的问题,Cron 解决的是”准时执行”的问题。

两者配合好,AI 助手就能从”被动应答”变成”主动推进”——设置一次,受益很久。

自动化不是让 AI 做更多的事,而是让正确的事在正确的时间自动发生。

(完)
下一篇,聊聊OpenClaw 的最佳实践、安全设置以及性能优化——如何做到更安全、更高效、更稳定。