我一直觉得 AI 助手有个根本问题:它只会被动等你问。你不说话它就什么都不干,但你最需要它的时候往往是你最忙的时候,根本没空去问它。

我决定做一个教学出来让小龙虾不需要你发指令,它自己定时醒来,检查你设定的任务,主动通过 Telegram 找你汇报。你在睡觉它在干活,你醒来看结果就行。


前置条件:OpenClaw 2026.3.x,基础部署完成,Telegram Bot 已配好。

原理先说清楚

Heartbeat 是 OpenClaw 内置的心跳调度器。它的工作方式是:每隔固定时间触发一次,把你预先写好的指令喂给 Agent,Agent 执行完把结果推给你。

和定时任务的区别在于:定时任务是固定时间执行固定命令,Heartbeat 更灵活,Agent 每次醒来会根据当前上下文判断该做什么,不是机械重复同一件事。

第一步:开启 Heartbeat

打开 ~/.openclaw/agents/main/config.yaml,加入:


heartbeat:
enabled: true
intervalSeconds: 3600 # 每小时触发一次,可以改
prompt: |
现在是定时心跳检查。请按顺序完成以下任务:
1. 检查今天有没有未完成的待办事项
2. 搜索过去一小时内 BTC 和 ETH 的重要动态
3. 如果有值得关注的信息,通过 Telegram 发给我
4. 如果没有特别的事,发一句"一切正常"就够了
notifyChannel: telegram
```

`intervalSeconds` 可以根据需求调整:
- 每小时:3600
- 每三小时:10800
- 每天早上八点:改用 cron 表达式 `cron: "0 8 *"`

---

第二步:写一个心跳任务文件

心跳触发的任务可以写成单独的文件,方便管理。新建:
```
~/.openclaw/agents/main/heartbeat-tasks.md

内容如下:

# 每日心跳任务清单

## 市场监控
- 搜索 BTC ETH 过去一小时内的重要新闻
- 如果有超过 5% 的异常波动,立刻通知

## 待办检查
- 读取 todos.txt,列出未完成的任务
- 如果有逾期任务,标红提醒

## 每日总结(仅在每天 20:00 触发)
- 汇总今天完成的任务
- 预告明天需要关注的事项

然后在 config.yaml 里引用这个文件:

heartbeat:
enabled: true
cron: "0 " # 每小时整点触发
taskFile: ./heartbeat-tasks.md
notifyChannel: telegram
```

---

**第三步:重启 gateway 测试**
```
openclaw gateway
```

第一次心跳触发之前,可以手动测试:
```
openclaw heartbeat --trigger-now
```

Telegram 收到消息说明配好了。控制台会看到:
```
[Heartbeat] 触发时间:08:00:00
[Heartbeat] 执行任务中...
[Heartbeat] 推送完成 → Telegram

进阶:根据时间段执行不同任务

心跳任务可以根据触发时间做判断,早中晚干不同的事:

heartbeat:
enabled: true
schedules:
- cron: "0 8 *"
prompt: "早间检查:搜索隔夜重要新闻,发今日简报"
- cron: "0 12 *"
prompt: "午间检查:看一下待办,有没有今天内要完成的事"
- cron: "0 20 *"
prompt: "晚间总结:汇总今天干了什么,明天要盯什么"
- cron: "*/30 "
prompt: "快速检查:BTC 有没有超过 3% 的波动,有就立刻通知"

Heartbeat 每次触发都会消耗 token。如果 intervalSeconds 设得太短,比如每五分钟一次,一天下来 token 费用会很可观。建议:

  1. 日常监控用每小时一次

  2. 价格警报单独用专门的 Skill 处理,不要依赖 Heartbeat 频繁触发

  3. 每次心跳的 prompt 写得精确一点,不要让 Agent 做太多搜索,够用就好

配好之后的感受是:你不在电脑前,它在帮你盯着。需要你知道的事它会找你,不需要你知道的事它不打扰你。

懒人向的用法:直接抄上面的配置,改一下 Telegram Bot Token,重启 gateway,每天早上八点自动收到一条简报,什么都不用做。 #AIBinance