AI 不该等你说话才干活——OpenClaw 定时系统设计哲学
奇舞团是 360 集团最大的大前端团队,非常重视人才培养,有工程师、讲师、翻译官、业务接口人、团队 Leader 等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等培训课程。因为股票分析天然适合定时系统——每天有固定的开盘收盘时间,盘中需要持续盯盘,数据源多且需要定期同步,而且绝大多数操作是重复的。你不用再每天早上提醒自己"查一下昨天的数据",不用在开会的时候心里惦记着"那
💡 本文是「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 直接操作你的股票账户,风险太大。正确的做法是:
-
先用模拟盘验证策略——跑一两个月模拟盘,看 AI 的分析靠不靠谱
-
所有操作建议都要人工复核——AI 说"建议减仓",你自己判断要不要动
-
控制 API 费用——15 分钟一次心跳 + 每天两次定时任务,Token 消耗大概每月几十块,不贵但也别忘了算
有人在新浪财经的采访里提到,一些私募基金已经开始用类似方案做辅助分析。但注意是"辅助"——AI 提供信息汇总和模式识别,交易决策还是人来做。
写在最后
回到这篇文章的标题:AI 不该等你说话才干活。
定时系统的意义不是让 AI 更忙,而是让你更闲。
你不用再每天早上提醒自己"查一下昨天的数据",不用在开会的时候心里惦记着"那个服务是不是又挂了",不用下班前纠结"今天的复盘该不该写"。这些事情 AI 自己会做、到点就做、做完还会记住。
三篇文章,三个维度:
-
第一篇 Skill:教 AI 怎么干活(操作手册)
-
第二篇 Soul 配置:让 AI 知道自己是谁(人格设定 + 记忆系统)
-
第三篇 定时系统:让 AI 主动干活(心跳 + 定时 + 事件驱动)
到这里,一个有稳定人格、懂你习惯、还会自己找活干的 AI 搭档,就基本搭建完了。
最好的工具不是你用得最多的,而是你忘了它在运行的。
-END -
如果您关注前端+AI 相关领域可以扫码进群交流

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

更多推荐



所有评论(0)