在上一篇文章中,我们打开了AI小助手的技能宝库,让AI小助手能够利用各种工具来协助我们做好工作。那么今天,大家就跟着我一起来解锁OpenClaw的自动化能力,让AI小助手主动去工作。

相信跟着我一起搭建的小伙伴们,已经发现了,AI小助手现在已经可以干很多事情了,它有灵魂、懂你、能上网搜索、能自己浏览网页并完成一些浏览器操作,但是这些都是我们让它去做的时候,它才会去做,如果我们不找它,他就什么都不做。

网站挂了它不主动告诉你,邮件一堆未读它不去看,日历上的待办事项都要结束了它都不提醒,它就安安静静的待在服务器里,等你开口。他就像一位全能的管家,可以把你交代的任何事情做好,但是它不会主动去做事,你不说它就不动。那么今天我们就来解决这个问题,让我们的AI小助手主动动起来!

一、心跳机制——Heartbeat

Heartbeat是OpenClaw里最核心的机制之一,心跳在主会话中运行周期性智能体轮次,使模型能够在不打扰你的情况下提醒需要关注的事项。

1、了解心跳机制

OpenClaw默认的心跳间隔是30分钟(当检测到认证模式为Anthropic OAuth/setup-token 时为1小时),OpenClaw会按照设定的间隔向助手 发送一个心跳信号,当助手收到信号后,会做如下工作:

1)读取 HEARTBEAT.md 文件中所设定的任务清单;

2)根据任务清单,AI助手会按顺序执行;

3)如果检查到需要提醒 的事项,就会主动通知你;

4)如果一切正常,或没有配置任务清单,会回复一个HEARTBEAT_OK

2、设置心跳间隔

我们执行以下命令可以在OpenClaw的配置中设置心跳:

openclaw configure --section gateway

在设置向导中可以调整心跳间隔,当然我们也可以直接去编辑配置文件来到达调整的目的:

{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m",
        target: "last", //决定心跳消息发送到哪里(默认 target: "last")
        // activeHours: { start: "08:00", end: "24:00" }, //可选:将心跳限制在活动时段(本地时间)
        // includeReasoning: true, // 可选:同时发送单独的 `Reasoning:` 消息
      },
    },
  },
}

常用设置:

  • 15m — 比较频繁,适合工作日白天

  • 30m — 默认值,平衡效率和成本

  • 1h — 比较节省,适合非工作时间

3、配置 HEARTBEAT.md 检查清单

编辑 HEARTBEAT.md 文件:

vim ~/.openclaw/workspace/HEARTBEAT.md

大家可以参考我是如何设置的:


# 心跳任务

## 每次检查
- 查看是否有重要邮件
- 查看日历,2小时内有没有会议要提醒

## 每天检查 2-3 次
- 检查网站是否正常访问
- 检查服务器状态是否正常

## 不需要主动做
- 天气查询(等我问再查)

二、定时任务——Cron Jobs

定时任务是 Gateway网关内置的调度器。它持久化任务、在合适的时间唤醒智能体,并可选择将输出发送回聊天。

如果你想要 “每天早上运行” 或 “20 分钟后提醒智能体”,定时任务就是对应的机制。

1、定时任务原理

1)定时任务运行在Gateway网关内部(而非模型内部);

2)任务持久化存储在 ~/.openclaw/cron/ 下面,因此不会因为重启从而丢失定时任务的计划;

3)两种执行方式:

  • 主会话:入队一个系统事件,然后在下一次心跳时运行。

  • 隔离式:在 cron:<jobId> 中运行专用智能体轮次,可投递摘要(默认 announce)或不投递。

4)唤醒是一等功能:任务可以请求“立即唤醒”或“下次心跳时”。

2、创建Cron任务

openclaw cron add --name "晨间简报" --cron "0 8 * * *" \
  --system-event "生成今日简报:检查邮件、日历、网站数据,整理成一条消息发给我"

如果对cron表达式不清楚的,可以去搜索一下,对linux的crontab有所了解的,就容易上手了,因为两个表达式是一样的:

分 时 日 月 周
0  8  *  *  *    → 每天 8:00
0  9  *  *  1    → 每周一 9:00
0  10 1  *  *    → 每月 1 号 10:00
*/15 9-18 * * 1-5 → 工作日 9:00-18:00 每 15 分钟

三、定时任务与心跳对比

1、什么时候用

使用场景

推荐方式

原因

每 30 分钟检查收件箱

心跳

可与其他检查批量处理,具备上下文感知能力

每天上午 9 点准时发送报告

定时任务(隔离式)

需要精确定时

监控日历中即将到来的事件

心跳

天然适合周期性感知

运行每周深度分析

定时任务(隔离式)

独立任务,可使用不同模型

20 分钟后提醒我

定时任务(主会话,--at)

精确定时的一次性任务

后台项目健康检查

心跳

搭载在现有周期上

简单规则:隔一会儿看一眼的事 → 心跳;精确到几点做的事 → Cron。

2、心跳:周期性感知

心跳在主会话中以固定间隔运行(默认:30 分钟)。它的设计目的是让智能体检查各种事项并呈现重要信息。

在多个周期性检查、上下文感知决策、对话联系性以及低开销监控时更适合使用心跳。

心跳的优势是可以批量处理多项检查,减少API调用,加强了上下文感知,并且在没有需要关注的事项时,不会投递任何消息。

3、定时任务:精确调度

定时任务在精确时间运行,可以在隔离会话中运行而不影响主会话上下文。

在需要精确定时、独立任务、不同的模型/思维级别、一次性提醒、复杂的任务、外部触发器时适合使用定时任务。

定时任务的优势是精确定时,会话隔离,可按任务使用更便宜或更强大的模型,即使主会话空闲或已压缩,也能运行。

4、最佳使用方式

最高效的配置是两者结合:

  • 心跳处理常规监控(收件箱、日历、通知),每 30 分钟批量处理一次。

  • 定时任务处理精确调度(每日报告、每周回顾)和一次性提醒。

好了,经过这篇文章的介绍,我想大家已经设置好了OpenClaw的心跳配置和定时任务,从此以后,你的AI助手就能够主动做事啦!

下一篇我将带着大家一起来打造AI小助手的记忆系统,期待大家和我一起完成这个操作!

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐