OpenClaw Cronjob 单独指定模型教程:别再为了定时任务绕去配 Agent ID 了
有个小发现,挺实用。
OpenClaw 的 Cronjob 可以给单个定时任务单独指定模型。
这事儿看着不大,但对经常写自动化任务的人来说,能少绕一大圈。
以前很多人会这么干:
- 为了一个定时任务,专门配一个 Agent
- 再去拿 Agent ID
- Cronjob 里绑定这个 Agent
- 想换模型时,又回去改 Agent 配置
能用,但麻烦。
更烦的是,任务一多,你自己都记不清:这个 Agent 是给日报用的,还是给监控总结用的?
现在可以更直接:Cronjob 自己指定模型。干净,省事,排查也舒服。
适合谁看?
如果你用 OpenClaw 做这些事,这个配置很值得看一眼:
- 每天早上自动生成工作日报
- 每小时抓取网页内容并总结
- 定时检查接口、日志、告警信息
- 定期生成公众号、小红书、邮件草稿
- 每晚把当天聊天记录整理成待办清单
这些任务不一定都要用同一个模型。
比如:
- 日报总结,用便宜点的模型就够了
- 告警分析,最好用推理能力强一点的模型
- 文案生成,可以换成更会写的模型
- 批量清洗数据,优先考虑成本和速度
这才是单独指定模型的价值。
为什么别再死磕 Agent ID?
Agent ID 不是不能用。
它适合那种“人设、工具、长期上下文”都固定的任务。
比如你有一个专门的客服 Agent:
- 固定语气
- 固定知识库
- 固定工具权限
- 固定回复格式
这时绑定 Agent ID 很合理。
可 Cronjob 里很多任务没那么复杂。
你只是想每天 9 点跑一次:
读取昨天的数据,然后总结成 5 条要点。
为了这么一个任务单独建 Agent,就有点像出门买瓶水还要先写项目方案。能做,但没必要。
推荐思路:让 Cronjob 直接带模型配置
更轻的配置思路是:
cronjob:
name: daily-summary
schedule: "0 9 * * *"
model: gpt-4o-mini
prompt: |
请读取昨天的工作记录,整理成日报。
输出格式:
- 今日完成
- 遇到的问题
- 明日计划
实际字段名要以你当前 OpenClaw 版本为准。
核心思路就一句话:
定时任务需要哪个模型,就在这个任务里写清楚。
别让模型选择藏在另一个 Agent 配置里。
你后面排查问题时,会感谢现在的自己。
一个更贴近真实工作的例子
假设你有 3 个定时任务。
1. 每天 9 点生成日报
这个任务重点是稳定、便宜、格式规整。
name: daily-report
schedule: "0 9 * * *"
model: gpt-4o-mini
prompt: |
根据昨天的任务记录生成日报。
要求:简洁,按项目分组,列出风险项。
2. 每小时分析告警日志
这个任务需要更强的判断力。
name: alert-review
schedule: "0 * * * *"
model: gpt-4o
prompt: |
分析最近一小时的告警日志。
判断是否需要人工介入。
输出:风险等级、原因、建议动作。
3. 每晚生成内容选题
这个任务要会写,有点网感。
name: topic-ideas
schedule: "30 22 * * *"
model: claude-3-5-sonnet
prompt: |
根据今天收集到的资料,生成 10 个适合发布的选题。
标题要有点击欲,但别标题党。
你看,三个任务三种模型。
不需要三个 Agent。
任务配置一眼就能看懂。
什么时候还该用 Agent ID?
别一刀切。
下面这些情况,用 Agent ID 更合适:
- 任务依赖复杂工具链,比如浏览器、数据库、私有 API
- 需要固定角色,比如“客服主管”“代码审查员”“投研助理”
- 有长期记忆或知识库绑定
- 多个 Cronjob 要复用同一套完整配置
- 权限管理比较严格,不想让每个任务单独散着配
简单说:
只是换模型,用 Cronjob 配模型。需要完整能力包,用 Agent ID。
这个判断很省脑子。
单独指定模型有什么好处?
配置更直观
打开 Cronjob 配置,就知道它几点跑、跑什么、用什么模型。
不用再跳来跳去找 Agent。
换模型更快
日报贵了?
把 gpt-4o 换成 gpt-4o-mini。
告警误判多?
换成推理更强的模型试一周。
改一行就行。
成本更好控
不是所有任务都配顶级模型。
批量任务尤其要注意。
比如每小时跑一次,一天 24 次,一个月 720 次。
模型选贵了,账单真的会给你上课。
排查更轻松
任务输出不对时,你不用猜:
- 是 Prompt 写歪了?
- 是模型能力不够?
- 是 Agent 配置被别人改了?
Cronjob 里写得越清楚,锅就越好找。这个很现实。
建议的配置习惯
给大家一套比较稳的习惯。
任务名写清楚
别写这种:
name: test-job
过两周你就会忘。
建议写成:
name: daily-sales-summary
看名字就知道用途。
Prompt 写输出格式
别只写:
总结一下。
模型会自由发挥。
更推荐:
请总结昨天销售数据。
输出格式:
1. 核心指标
2. 异常波动
3. 可能原因
4. 今日建议动作
每部分不超过 3 条。
越明确,越稳定。
给不同任务分模型
可以按这个思路选:
- 高频任务:便宜、快、稳定
- 分析任务:推理能力强
- 写作任务:表达能力好
- 敏感任务:优先选你信任的模型
- 低价值批处理:别上太贵的模型
别把所有任务都丢给同一个模型。
那不叫省事,那叫给账单埋雷。
避坑清单 ⚠️
1. 别忘了确认版本支持
不同 OpenClaw 版本的字段可能不一样。
你要看当前版本的 Cronjob 配置说明,确认模型字段叫什么。
可能是:
modelmodel_idllm_model- 放在某个
config节点里
别照抄字段名就直接上线。
2. 别在多个地方重复指定模型
如果 Agent 里有模型,Cronjob 里也有模型,要确认谁优先。
不然你以为任务在用 A 模型,实际跑的是 B 模型。
排查起来很抓狂。
3. 高频任务别用太贵的模型
每 5 分钟跑一次的任务,一天就是 288 次。
模型选错,月底账单会很醒目。
4. Prompt 别写得太随意
Cronjob 是无人值守任务。
没人盯着它现场纠错。
输出格式、边界条件、失败时怎么处理,都要写清楚。
5. 重要任务要留日志
建议记录这些信息:
- 执行时间
- 使用模型
- 输入摘要
- 输出结果
- 是否失败
- 错误信息
以后出问题,你能快速定位。
不然只能靠猜。猜配置,真的很折磨。
一个可直接套用的 Cronjob 模板
你可以按这个结构改:
name: your-task-name
schedule: "0 9 * * *"
model: your-model-name
prompt: |
你要完成的任务:
- 读取指定数据
- 分析关键变化
- 输出可执行建议
输出格式:
1. 摘要
2. 关键发现
3. 风险提醒
4. 建议动作
约束:
- 不要输出无关解释
- 每条建议要具体
- 无数据时说明原因
改三个地方就能用:
name:任务名schedule:运行时间model:这个任务要用的模型
Prompt 按你的业务场景再细化。
推荐用法:小任务轻配置,大任务走 Agent
我的建议很简单:
- 单次逻辑清楚的定时任务:Cronjob 里直接指定模型
- 需要角色、工具、知识库的任务:继续用 Agent ID
- 高频任务:优先控制成本
- 重要任务:优先稳定和可追踪
别为了“看起来架构完整”把简单事情复杂化。
能一行解决的配置,就别绕三层。
OpenClaw 的 Cronjob 支持单独指定模型后,很多自动化任务都可以写得更清爽。
少建几个 Agent,少翻几层配置。
省下来的时间,拿去喝咖啡也比排查 Agent ID 强。