OpenClaw 自动化怎么选:定时任务、心跳、钩子与常驻指令
OpenClaw 让智能体「主动干活」的手段不止一种,选错机制是最常见的浪费——该精确的用了模糊轮询,该共享上下文的用了隔离会话。官方文档给了一整页决策指南,本页浓缩它。
五种机制速览
- 定时任务(Cron):网关内置的精确调度器。cron 表达式或一次性 --at 提醒;执行始终创建后台任务记录;输出可投递到渠道或 webhook。
- 心跳(Heartbeat):默认每 30 分钟在主会话里跑一轮,批量做「要不要提醒主人」的检查;从不创建任务记录。
- 后台任务(Tasks):分离式工作的台账(子智能体、隔离的定时执行、CLI 操作),用 tasks list / tasks audit 查。
- 钩子(Hooks):事件驱动脚本,在会话重置、压缩、网关启动等生命周期触发;插件钩子还能拦截每次工具调用。
- 常驻指令(Standing Orders):写在工作区文件(通常 AGENTS.md)里、注入每个会话的持久指令,给智能体划定长期职责。
场景对照表(照官方口径整理)
| 你想要 | 用什么 |
|---|---|
| 每天上午 9 点整发报告 | 定时任务 |
| 20 分钟后提醒我 | 定时任务(一次性) |
| 每 30 分钟看看收件箱有没有要紧事 | 心跳 |
| 盯日历里即将到来的事件 | 心跳 |
| 查子智能体/后台运行的状态 | 后台任务 |
| 多步骤研究流程带版本跟踪 | Task Flow |
| 会话重置时自动跑个脚本 | 钩子 |
| 每次会话都先检查合规再回答 | 常驻指令 |
Cron 与心跳的本质区别
| 维度 | 定时任务 | 心跳 |
|---|---|---|
| 时间精度 | 精确(表达式/一次性) | 近似(默认 30 分钟) |
| 会话上下文 | 隔离或共享可选 | 完整主会话上下文 |
| 任务记录 | 总是创建 | 从不创建 |
| 最适合 | 报告、提醒、后台作业 | 收件箱、日历、通知 |
一句话记忆:要准点、要隔离,用 Cron;要贴着对话上下文巡逻,用心跳。
组合拳
常见配置是三层叠加:常驻指令定职责(「你负责每天盯服务器」),心跳做低成本巡检(没事回一个固定确认令牌),定时任务干重活(每天八点出报告)。心跳探出问题后,也建议转成定时任务或一次性提醒处理,而不是在心跳里堆逻辑。