Technical Guide
13. Cron:定时任务怎么长期运行
理解 OpenClaw 的 cron 能力:定时触发 agent、保存状态、投递结果和排查失败。
这篇解决什么问题
OpenClaw 不只是被动等消息。
Cron 让它可以做长期自动化:提醒、日报、检查、定时总结、定期监控。
相关目录
src/cron/
src/cron/service/
src/cron/store/
src/cron/run-log/
src/cron/isolated-agent/
src/cli/cron-cli/
这些目录说明 Cron 不是简单调用一次 setTimeout,而是有存储、服务、运行日志和隔离 agent 执行。
Cron 的基本链路
可以先这样理解:
cron store 保存 job
→ cron service 定期扫描到期任务
→ 为任务准备 prompt / agent / session / tools
→ 执行 agent 或脚本
→ 保存 run log
→ 按配置投递结果
为什么要 isolated-agent
定时任务通常无人值守。
它不应该污染普通聊天 session,也不应该依赖当前聊天窗口存在。
所以 OpenClaw 有 isolated-agent 相关目录,用于让 Cron 在更独立的上下文里执行。
Cron 和 Gateway 的关系
Cron 是时间入口。
Gateway 是消息入口。
它们最终都可能进入 Agent Runtime。
区别是:Cron 没有人现场补充上下文,所以 prompt、deliver、tools、workdir 要写得更明确。
常见用途
每天提醒看目标页
每天生成日报
定时检查服务器
定时同步知识库
定时检查邮件/日历
定时汇总某个 channel 的消息
排障顺序
1. job 是否存在并启用
2. schedule 是否解析正确
3. cron service 是否运行
4. job 是否触发
5. run log 是否有错误
6. agent/provider 是否失败
7. delivery 是否失败
不要把 Cron 当万能后台
如果任务只是当前会话里的并行工作,用普通工具或子任务更合适。
如果任务需要长期存在、定时运行、无人值守,才用 Cron。
下一篇看什么
下一篇看 Skills。