我用 AI Agent 管了27个定时任务,踩了这些坑
背景
我有一套内容自动化管线:每天早上10点生成热点文章,10:12发小红书,10:18发微博,11:00发CSDN,12:00发掘金沸点……一共27个cron任务,全跑在一个 AI Agent 上。
跑了两周后,各种幺蛾子出来了。记录一下踩坑过程,给同样在搞 Agent 自动化的人一些参考。
坑1:隔离 Session 看不到全局配置
我在主配置文件里写了一套写作规范——六层检验流水线,包括去AI味、打分、emoji穿插这些规则。主会话里 Agent 执行得很好。
但 cron 任务跑的是隔离 session。新起的 Agent 不会读主配置文件,它只看任务指令里写了什么。
结果就是:小红书发出去的文章没有 emoji,微博的内容没过 humanizer 评分。内容质量参差不齐。
解法:把关键规范直接写进 cron 的 message 字段里,不依赖 Agent 自己去找配置文件。我写了一个「写作基座」指令块,统一追加到所有写作类任务里:
=== 写作基座 ===
① 读取 human-writing + anti-ai-patterns,逐条对照修正
② 1000字以上长文检查段落节奏
③ humanizer-zh 24条扫描 + 五维打分,低于40分重写
④ copywriting 检查钩子/CTA
⑤ 平台专属格式(小红书emoji、知乎禁markdown等)
⑥ 敏感词检测
坑2:上下游任务的时序依赖
我的流程是:10:00 生成内容 → 10:12 发小红书。
内容生成任务正常时7-8分钟跑完。但有一天模型响应慢,跑了15分钟。等小红书发布任务启动时,内容文件还没生成完。
发布任务检测到文件不存在,直接返回了 HEARTBEAT_OK,等于今天的小红书就没发。
解法:在发布任务开头加文件存在性检查,如果文件不存在就返回跳过标记。同时给内容生产和发布之间留够时间差(我从12分钟改到了15分钟)。更好的方案是用事件驱动——内容生产完成后主动触发发布,而不是靠固定时间差。
坑3:生图和写文在同一个任务里容易断
内容生产任务又要搜热点、又要写三个平台的文案、又要调图片生成API、又要压缩图片。任何一个环节出错,整个任务就标记为失败。
遇到过的情况:文案写完了,图片API超时;图片生成了,但压缩脚本报错。
解法:把生图拆出来作为独立步骤,失败时不影响文案保存。发布任务那边也加了容错——如果没图片,先发纯文字版,标记一下等补图。
坑4:Token/Cookie 过期导致连续失败
CSDN 的 UserToken 会过期,掘金的 sessionid 也会。一旦过期,cron 任务就开始连续报错,而且它有 backoff 机制——连续失败后延长重试间隔。
等你发现的时候,可能已经攒了3天没发了。
解法:
- 给每个平台的发布任务加 Token 有效性预检:发布前先调一个轻量级接口(比如获取用户信息),确认登录态正常
- 连续失败2次就通知到群里,不要等人手动查
- 记录每个平台 Token 的大概有效期,提前刷新
坑5:去重机制太简单
我用的是文件标记法:任务跑完后创建 /tmp/cron_dedup_daily-hot-content_20260325 文件。下次跑之前检查文件是否存在。
问题是 /tmp 在 macOS 上重启会清空。机器意外重启后,所有去重标记丢失,任务会重跑一遍。还好发布类任务在平台侧有幂等检查,没造成重复发文。但内容生产任务重跑浪费了API调用费。
解法:去重标记改到持久化目录,比如 ~/.openclaw/cron/dedup/。或者在任务的 state 字段里记录今天是否已执行。
我的 cron 任务清单
分享一下目前在跑的任务编排:
| 时间 | 任务 | 说明 |
|---|---|---|
| 09:00 | 自我进化扫描 | 扫 GitHub Trending + SkillHub |
| 10:00 | 热点内容生产 | 抓8个平台热点,生成小红书+微博文案 |
| 10:00 | 公众号AI实战 | 独立选题,只写AI工具实战 |
| 10:12 | 小红书发布 | 读取生产好的内容+图片发布 |
| 10:18 | 微博发布 | 同上 |
| 11:00 | CSDN技术文章 | 独立选题,纯技术长文 |
| 11:30 | 掘金技术文章 | 独立选题,带代码示例 |
| 12:00 | 掘金沸点 | 短内容 |
| 12:00 | 知乎热榜回答 | 找热榜问题写回答 |
| 12:30 | 微博热搜 | 午间热搜评论 |
| 22:30 | 微博热搜 | 晚间热搜评论 |
每个写作类任务都带写作基座指令块,确保输出质量一致。
总结
用 Agent 跑定时任务,最大的教训是:不要假设 Agent 知道你的规矩。
主会话里你教会了它的东西,换个 session 就全忘了。所有关键规则必须写进任务指令本身,不能指望它自己去翻配置文件。
另外就是监控。14个启用任务里,如果不看状态面板,你根本不知道哪个在默默失败。加上通知、预检和连续失败告警,比事后补救省心得多。