2.2 时间的感知:Heartbeat与Cron
上一节我们聊了六个引导文件,它们定义了AI的"灵魂"。
这一节,我们来聊OpenClaw如何让AI拥有"时间感"——主动帮你做事的能力。
传统AI的时间盲区
用过ChatGPT、Claude、DeepSeek的人都知道:
你不去问它,它就什么都不做。
它不知道现在是几点,不知道什么时候该提醒你,不知道你昨天说过什么待办事项。
它就像一个"睡眠中的助手"——只有你叫醒它,它才会工作。
但现实生活中,我们需要的是:
- 每天早上7点自动查邮件、看日程
- 每周五下午生成周报
- 20分钟后提醒我开会
- 持续监控某个任务的状态
传统AI做不到这些,因为它没有"时间感"。
OpenClaw的解决方案:Heartbeat + Cron
OpenClaw给了AI两种"时间感知"能力:
Heartbeat(心跳):周期性"醒"来看看有没有事要做
Cron(定时任务):在精确的时间点执行任务
这两个机制,让AI从"被动响应"变成了"主动服务"。
Heartbeat:让AI有"存在感"
什么是Heartbeat?
Heartbeat是OpenClaw的周期性感知机制。
默认情况下,每30分钟,AI会自己"醒"来一次:
- 读取
HEARTBEAT.md检查清单(如果存在) - 检查有没有需要关注的事项
- 如果有,发送通知给你
- 如果没有,回复
HEARTBEAT_OK(不会打扰你)
配置Heartbeat
在~/.openclaw/openclaw.json中配置:
{
agents: {
defaults: {
heartbeat: {
every: "30m", // 心跳间隔
target: "last", // 通知发送到哪里
// activeHours: { // 可选:活跃时间段
// start: "08:00",
// end: "22:00"
// }
}
}
}
}间隔设置:
- 默认:
30m(30分钟) - 使用Anthropic OAuth时:
1h(60分钟) - 可自定义:支持
5m、10m、1h等 - 禁用:设置为
0m
HEARTBEAT.md检查清单
创建一个HEARTBEAT.md文件,告诉AI每次"醒来"要检查什么:
# Heartbeat检查清单
- 检查邮件,看有没有紧急的未读消息
- 检查今天的待办事项,提醒我该做的事
- 如果后台任务完成了,总结结果
- 如果闲置超过8小时,发送简短的问候AI会按照清单逐一检查,在一次轮次中处理所有项目。
智能抑制机制
Heartbeat有一个重要特性:智能抑制。
- 如果检查后没有需要关注的事项,AI回复
HEARTBEAT_OK HEARTBEAT_OK不会投递任何消息给用户- 只有发现重要事项时,才会发送通知
这意味着:Heartbeat不会每30分钟都打扰你,只在有重要事项时才会通知。
Heartbeat vs 人工查询
没有Heartbeat时:
- 你要主动打开各个App查邮件、看日程
- 可能错过重要事项
- 耗费时间和精力
有Heartbeat时:
- AI主动帮你监控
- 有重要事项时主动通知
- 你可以专注于当前工作
这就像有一个24小时在线的助理,每隔一段时间帮你扫一眼各个渠道,有急事才叫你。
Cron:让AI有"时间感"
什么是Cron?
Cron是OpenClaw的精确调度机制。
如果说Heartbeat是"每30分钟检查一次",Cron就是"在精确的时间点做某事"。
比如:
- "每天早上7点生成日报"
- "每周五下午5点总结本周工作"
- "20分钟后提醒我开会"
- "3天后跟进这个客户"
Cron的核心特性
1. 持久化存储
Cron任务存储在~/.openclaw/cron/目录下,重启不会丢失。
2. 两种执行模式
- 主会话模式:将任务加入队列,在下一次Heartbeat时运行
- 隔离会话模式:在独立的会话中运行,可配置是否发送结果通知
3. 标准Cron表达式
使用标准的Linux Cron表达式:
* * * * *
│ │ │ │ │
│ │ │ │ └─── 星期几 (0-7, 0和7都是周日)
│ │ │ └───── 月份 (1-12)
│ │ └─────── 日期 (1-31)
│ └───────── 小时 (0-23)
└─────────── 分钟 (0-59)常用示例:
0 7 * * *:每天早上7点0 9 * * 1:每周一上午9点*/5 * * * *:每5分钟0 0 1 * *:每月1号午夜
创建Cron任务
命令行方式:
# 每天早上7点生成日报
openclaw cron add \
--name "每日早报" \
--cron "0 7 * * *" \
--tz "Asia/Shanghai" \
--session isolated \
--message "生成今日摘要:邮件、日程、天气、新闻" \
--announce
# 20分钟后提醒
openclaw cron add \
--name "会议提醒" \
--at "2026-03-09T10:00:00Z" \
--session main \
--message "提醒:10分钟后有会议" \
--wake now让AI帮你创建:
你也可以直接对AI说:
"每天早上7点帮我生成一份摘要,包括邮件、日程、天气"
AI会自动帮你创建Cron任务。
Cron任务管理
# 查看所有任务
openclaw cron list
# 立即运行一次(测试用)
openclaw cron run <job-id> --force
# 查看运行历史
openclaw cron runs --id <job-id> --limit 10
# 修改任务
openclaw cron edit <job-id> --cron "0 8 * * *"
# 删除任务
openclaw cron remove <job-id>Heartbeat vs Cron:怎么选?
| 场景 | 推荐 | 原因 |
|---|---|---|
| 每30分钟检查收件箱 | Heartbeat | 可与其他检查批量处理 |
| 每天早上9点准时发报告 | Cron | 需要精确定时 |
| 监控日历中即将到来的事件 | Heartbeat | 天然适合周期性感知 |
| 20分钟后提醒我 | Cron(--at) | 一次性精确提醒 |
| 后台项目健康检查 | Heartbeat | 搭载在现有周期上 |
核心区别:
- Heartbeat:周期性感知,固定间隔,批量处理,有上下文
- Cron:精确调度,精确时间点,独立任务
最佳实践:两者结合使用
- Heartbeat处理常规监控(收件箱、日历、通知)
- Cron处理精确调度(每日报告、一次性提醒)
时间感知的价值
Heartbeat和Cron,让AI有了"时间感"。
它不再是"只能响应当下",而是:
- 能规划未来:"明天早上提醒我……"
- 能持续关注:"每30分钟检查一次……"
- 能主动服务:在合适的时间做合适的事
这就是AI从"工具"变成"助理"的关键一跃。
下一节
Heartbeat和Cron让AI有了"时间感"。
但AI怎么"记住"你说的话?怎么"进化"得越来越懂你?
下一节,我们来聊Memory(记忆)和Skills(技能)。