我用 AI Agent 管了27个定时任务,踩了这些坑

4 阅读1分钟

我用 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天没发了。

解法

  1. 给每个平台的发布任务加 Token 有效性预检:发布前先调一个轻量级接口(比如获取用户信息),确认登录态正常
  2. 连续失败2次就通知到群里,不要等人手动查
  3. 记录每个平台 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:00CSDN技术文章独立选题,纯技术长文
11:30掘金技术文章独立选题,带代码示例
12:00掘金沸点短内容
12:00知乎热榜回答找热榜问题写回答
12:30微博热搜午间热搜评论
22:30微博热搜晚间热搜评论

每个写作类任务都带写作基座指令块,确保输出质量一致。

总结

用 Agent 跑定时任务,最大的教训是:不要假设 Agent 知道你的规矩。

主会话里你教会了它的东西,换个 session 就全忘了。所有关键规则必须写进任务指令本身,不能指望它自己去翻配置文件。

另外就是监控。14个启用任务里,如果不看状态面板,你根本不知道哪个在默默失败。加上通知、预检和连续失败告警,比事后补救省心得多。