当前位置: 首页 > news >正文

AI 不该等你说话才干活——OpenClaw 定时系统设计哲学

💡 本文是「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 等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等培训课程。奇舞团以开放和求贤的心态欢迎各种优秀人才关注和加入奇舞团。

http://www.cnnetsun.cn/news/1452026.html

相关文章:

  • Swift Algorithms笛卡尔积:10个product方法在组合问题中的终极应用指南
  • 快速上手Python3.11:Miniconda镜像5分钟搭建完整开发环境
  • PHP终端代码高亮神器:快速提升开发效率的终极指南
  • 程序:滚动轴承载荷分布静力学解析解,用于与动力学模型对比验证
  • Unsloth效果实测:对比传统方法,训练时间节省50%以上
  • 用Sequencer+Control Rig玩转UE5角色动画:从动捕数据到电影级运镜全流程
  • 终极指南:如何用Just.js函数式编程工具提升代码质量
  • 10个Unison调试技巧:快速定位和解决代码问题的完整指南
  • Simple Binary Encoding与Aeron集成:构建低延迟金融交易系统的完整方案
  • 视频字幕提取工具:本地OCR技术如何高效解决硬字幕识别难题
  • xiaozhi-esp32-server:10分钟快速搭建智能硬件后端的终极指南
  • Qwen3-ASR-0.6B入门指南:无需深度学习基础,30分钟搭建个人语音工作室
  • GB28181标准下PTZ控制实战:从设备检测到命令发送的全流程指南
  • Nginx多域名管理神器:conf.d目录的include配置实战(附完整流程)
  • BadUSB实战:用Digispark开发板5分钟打造你的第一个HID攻击工具(附完整代码)
  • GPT-OSS-20B快速入门:5分钟在Ollama上部署,体验长文本智能问答
  • Pixel Mind Decoder 性能调优实战:降低GPU显存占用与提升推理速度
  • 亲测好用! 降AIGC软件 千笔·专业降AIGC智能体 VS speedai 专为毕业论文全流程设计
  • StatisticalOutlierRemoval滤波器实战:点云去噪与参数调优指南
  • 状态向量 [x, y, z, vx, vy, vz
  • py每日spider案例之网yiyun搜索接口
  • MCP协议真实世界性能陷阱:92%团队忽略的TLS握手优化盲区,导致REST兼容模式下性能反降41%!
  • 基于YOLOv8n的算法融合与优化:面向Web端实时车辆与行人检测的改进方案
  • DeepChat在YOLOv8目标检测中的应用:智能图像分析对话系统
  • Qwen3-4B-Instruct-2507编程辅助:IDE插件开发部署教程
  • PCB翘曲度分析与优化:从设计到生产的全面解决方案
  • 解决金蝶Apusic部署SpringBoot应用时遇到的‘NoSuchMethodError’和WebSocket容器冲突
  • Z-Image-Turbo-辉夜巫女快速部署:基于Xinference的开源大模型服务化最佳实践
  • MedGemma X-Ray效果展示:不同设备拍摄X光片的泛化识别能力
  • 保姆级教程:在Windows系统本地利用VMware虚拟机部署伏羲模型