💡 本文是「OpenClaw 实战」系列的第三篇。前两篇我们聊了 Skill(操作手册)和 Soul 配置文件(人格设定),这篇讲一个更有意思的话题——怎么让 AI 主动干活

你有没有发现一个很别扭的事情?

你的 AI 助手,不管多聪明,永远在等你开口。你不说话,它就坐在那。像一个能力很强但完全不主动的实习生——活干得好,但得你一直盯着。

你忘了让它查数据,它就不查。你忘了让它发提醒,它就不发。你周五下班忘了说"帮我写个周报",周一回来桌上空空如也。

这不对。

一个真正有用的助手,不应该是你说一句它动一下。它应该知道什么时候该巡检、什么时候该汇报、什么时候有异常该喊你。

OpenClaw 的定时系统,就是要把 AI 从"被动应答"变成"主动行动"。


一、从"你说我做"到"我自己看着办"

传统 AI 的交互方式很简单:

人类说 → AI 做 → 人类再说 → AI 再做

每一轮对话都是人类发起的。AI 从不主动开口,也不会在你没开口的时候做点什么。

OpenClaw 觉得这不够。它设计了四个组件,从不同维度解决"AI 主动性"的问题:

组件

一句话解释

触发方式

Heartbeat

每隔一段时间醒来巡查一遍

时间间隔

Cron

精确到秒的定时任务调度

时间表达式

Hooks

当某个事件发生时自动触发

内部事件

Webhook

外部系统通过 HTTP 调用触发

外部请求

四个组件各管各的,可以单独用,也可以组合着用。下面一个一个拆开聊。


二、Heartbeat——AI 的"巡逻值班制"

Heartbeat 是最好理解的一个:每隔 N 分钟,AI 自动醒来看一眼。

有事就处理,没事就说一句"一切正常"然后继续睡。像保安巡逻一样——到点了就走一圈,没问题就回岗亭。

怎么配置?

在 openclaw.json 里设一个心跳间隔就行:

{
  "agent": {
    "heartbeat": {
      "every": "30m"
    }
  }
}

30 分钟查一次。你也可以改成 "15m" 或 "1h",看你的场景需要多敏感。

查什么?

AI 醒来之后,会去读 HEARTBEAT.md 这个文件。你在里面写什么,它就查什么。

比如你的 HEARTBEAT.md 长这样:

## 检查清单

- 检查 /logs/error.log 最近是否有新的错误日志
- 如果有超过 3 条 CRITICAL 级别的错误,立即通知我
- 检查 API 服务是否正常响应(curl 一下健康检查接口)
- 其他一切正常就回复 HEARTBEAT_OK

AI 每 30 分钟醒来,照着清单一条一条查。没事就回复 HEARTBEAT_OK;有事就把情况整理好告诉你。

省钱机制

你可能会想:每 30 分钟跑一次,API 费用岂不是爆了?

OpenClaw 做了两个优化。一是静默机制——没查出问题时,AI 只回复一个 HEARTBEAT_OK,Token 消耗极低。二是活跃时段——你可以设置只在工作时间(比如早 9 晚 6)心跳,深夜不跑。

还有一个小细节:如果你的 HEARTBEAT.md 是空的或者只有一个标题,心跳直接跳过不执行,连 API 调用都不会产生。


三、Cron——精确到秒的任务调度

如果说 Heartbeat 是"保安巡逻",Cron 就是"日程表"。

Heartbeat 适合"定期看一眼有没有问题",Cron 适合"到了某个时间点,做某件确定的事"。

三种调度方式

OpenClaw 的 Cron 支持三种写法:

第一种:at——某个时间点执行一次

/cron at 2026-03-20T09:00:00 "生成今天的晨间简报"

到了早上 9 点,执行一次,执行完就完了。适合一次性任务。

第二种:every——固定间隔重复执行

/cron every 2h "检查邮箱有没有需要紧急处理的邮件"

每 2 小时执行一次。比 Heartbeat 灵活在于——你可以指定具体要做什么,不用写进 HEARTBEAT.md。

第三种:cron 表达式——最灵活的调度

/cron "0 9 * * 1-5" "每个工作日早上 9 点生成日报"

这个就是 Linux 里经典的 crontab 语法,五个字段分别是:分、时、日、月、星期几。写过 crontab 的人应该很熟悉。

两种执行模式

每个 Cron 任务都可以选择在哪种模式下执行:

主会话模式

隔离模式

上下文

和你当前的对话共享上下文

独立的会话,跟你的对话互不干扰

适合

需要看到当前对话进展的任务

独立运行、不需要上下文的任务

例子

盘中行情异动提醒

每日晨报、定时数据同步

大多数定时任务用隔离模式就够了——生成晨报不需要知道你昨天的对话内容。

执行引擎

Cron 的执行链路也挺清晰的:

CronStore(存储和管理所有定时任务)
    ↓
CronTimer(计算下次触发时间)
    ↓
executeJob(到点执行任务)
    ↓
输出结果 → 写入会话 or 推送通知

整个流程在后台自动运行,你不需要盯着。


四、Hooks + Webhook——"有事才叫你"

Cron 和 Heartbeat 都是时间驱动——到了某个时间点或某个间隔就触发。

Hooks 和 Webhook 不一样,它们是事件驱动——有事才触发,没事不打扰。

Hooks:内部事件钩子

Hooks 监听的是 OpenClaw 内部发生的事件,分四大类:

事件类型

触发时机

典型用途

命令事件

Skill 被调用前/后

每次执行完 Skill 自动记录日志

会话事件

新对话开始/结束

对话结束时自动生成摘要

网关事件

连接/断开

上线时自动拉取未读消息

消息事件

收到新消息

关键词过滤、自动分类

上一篇文章提到的 self-improving-agent 就是用 Hooks 实现的——每次 Skill 执行完毕后自动触发学习流程,从执行结果中提炼经验并更新 Skill 文件。

Webhook:外部系统触发

Webhook 更直接——你给 OpenClaw 一个 HTTP 端点,外部系统往这个端点发请求,就能触发 AI 行为。

比如:

  • GitHub 仓库有新的 Pull Request → Webhook 触发 → AI 自动做代码审查

  • 监控系统检测到告警 → Webhook 触发 → AI 分析日志并给出初步诊断

  • 客服系统收到用户投诉 → Webhook 触发 → AI 自动分类并分配处理优先级

Cron vs Hooks vs Webhook:怎么理解?

简单来说:

  • Cron:到点干活("每天早上 9 点给我写个日报")

  • Hooks:系统内部有事干活("每次执行完 Skill 自动记日志")

  • Webhook:外面有人叫你干活("GitHub 来了个 PR 你去看看")

三者可以串联。比如:Webhook 收到告警 → 触发 Hooks 进入分析流程 → 分析完用 Cron 在下个工作日早上把报告推送给你。


五、四个组件怎么选?

到这里你可能有点晕——Heartbeat、Cron、Hooks、Webhook,场景这么多,该用哪个?

其实有一个很直觉的分法,按触发源来选:

你想要 AI 在什么情况下动?

选什么

定期自己检查有没有问题

Heartbeat

在精确的时间点做确定的事

Cron

系统内部发生了某个事件时

Hooks

外部系统推送了消息时

Webhook

从内到外看,四个组件形成了一个层次结构:

由内向外:

  Heartbeat(自检)→ "我定期看看有没有事"
      ↓
  Cron(定时)→ "到点了该干活了"
      ↓
  Hooks(内部事件)→ "系统里有事发生了"
      ↓
  Webhook(外部事件)→ "外面有人叫我了"

实际使用中,很多场景是组合着来的。举个例子——搭一个"AI 自动化值班员":

  • Heartbeat 每 30 分钟巡检一次服务状态

  • Cron 每天早上 9 点推送昨日巡检汇总

  • Hooks 监听会话结束事件,自动记录每次值班处理过程

  • Webhook 对接公司的监控告警系统,有新告警立即触发分析

四个组件各司其职,拼在一起就是一个 24 小时不睡觉的值班员。


六、实战——用定时系统搭一个 AI 股票助手

说了这么多概念,来看一个具体的实战场景:用 OpenClaw 的定时系统搭一个 AI 股票分析助手。

为什么拿股票举例?因为股票分析天然适合定时系统——每天有固定的开盘收盘时间,盘中需要持续盯盘,数据源多且需要定期同步,而且绝大多数操作是重复的。人工盯盘累得要死,但对 AI 来说就是一个 Cron 任务而已。

第一步:接入行情数据

先装一个行情数据 Skill。社区里已经有现成的了,比较常用的几个:

  • QVeris:覆盖 A 股、港股、美股,数据质量不错

  • AkShare:国内开发者常用,免费接口多,对 A 股支持最全

  • Tushare:需要积分,但数据维度更丰富

装好之后,一行命令就能拿到数据:

"帮我查一下贵州茅台最近 5 个交易日的行情数据"

AI 通过 Skill 调用 AkShare 接口,把 K 线数据、成交量、换手率全拉回来,格式化成你看得懂的表格。

第二步:配置三个 Cron 任务

接下来是重点——用三个定时任务搭出一个完整的盘前、盘中、盘后工作流。

任务一:盘前简报(每个交易日 9:25 触发)

/cron "25 9 * * 1-5" "生成今日开盘策略简报:1) 查询自选股昨日行情;2) 抓取今日财经要闻;3) 分析对持仓的潜在影响;4) 给出今日操作建议"

每天开盘前 5 分钟,AI 自动生成一份策略简报。你上班打开手机,一份整理好的分析已经在那了。

任务二:盘中监控(Heartbeat 每 15 分钟触发)

在 HEARTBEAT.md 里写上盘中监控清单:

## 盘中监控

- 检查自选股实时行情
- 如果任何持仓个股跌幅超过 5%,立即告警
- 如果大盘(沪指)跌幅超过 2%,生成一份风险提示
- 其他一切正常回复 HEARTBEAT_OK

配合活跃时段设成 9:30-15:00(A 股交易时间),AI 在盘中每 15 分钟巡检一次。大多数时候都是 HEARTBEAT_OK,但持仓暴跌的时候你会立刻收到通知。

任务三:盘后复盘(每个交易日 15:30 触发)

/cron "30 15 * * 1-5" "生成今日收盘复盘报告:1) 汇总自选股今日表现;2) 分析涨跌原因;3) 更新持仓盈亏记录;4) 将今日关键事件写入记忆"

收盘半小时后自动跑一份复盘。注意最后一步"写入记忆"——AI 会把今天的重要市场事件和操作决策记录到 Memory 里,这样下次生成分析时就有历史上下文了。

第三步:推送到手机

分析报告生成了,怎么让你看到?OpenClaw 支持多渠道推送,常见的玩法有:

  • 飞书机器人:Webhook 推送到飞书群,适合个人使用

  • Telegram Bot:海外用户用得多,消息格式支持 Markdown

  • 企业微信:团队场景,自建群机器人接收

配一个 Webhook 出去就行。比如飞书机器人,把生成的报告格式化成消息卡片,推到你的飞书群里,手机上直接看。

安全提醒

最后说一个很关键的事:AI 只做分析,不做交易。

现阶段让 AI 直接操作你的股票账户,风险太大。正确的做法是:

  1. 先用模拟盘验证策略——跑一两个月模拟盘,看 AI 的分析靠不靠谱

  2. 所有操作建议都要人工复核——AI 说"建议减仓",你自己判断要不要动

  3. 控制 API 费用——15 分钟一次心跳 + 每天两次定时任务,Token 消耗大概每月几十块,不贵但也别忘了算

有人在新浪财经的采访里提到,一些私募基金已经开始用类似方案做辅助分析。但注意是"辅助"——AI 提供信息汇总和模式识别,交易决策还是人来做。


写在最后

回到这篇文章的标题:AI 不该等你说话才干活。

定时系统的意义不是让 AI 更忙,而是让你更闲。

你不用再每天早上提醒自己"查一下昨天的数据",不用在开会的时候心里惦记着"那个服务是不是又挂了",不用下班前纠结"今天的复盘该不该写"。这些事情 AI 自己会做、到点就做、做完还会记住。

三篇文章,三个维度:

  • 第一篇 Skill:教 AI 怎么干活(操作手册)

  • 第二篇 Soul 配置:让 AI 知道自己是谁(人格设定 + 记忆系统)

  • 第三篇 定时系统:让 AI 主动干活(心跳 + 定时 + 事件驱动)

到这里,一个有稳定人格、懂你习惯、还会自己找活干的 AI 搭档,就基本搭建完了。

最好的工具不是你用得最多的,而是你忘了它在运行的。


-END -

如果您关注前端+AI 相关领域可以扫码进群交流

添加小编微信进群😊

关于奇舞团

奇舞团是 360 集团最大的大前端团队,非常重视人才培养,有工程师、讲师、翻译官、业务接口人、团队 Leader 等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等培训课程。奇舞团以开放和求贤的心态欢迎各种优秀人才关注和加入奇舞团。

Logo

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

更多推荐