乾穹·Cron健康哨兵
<!-- 乾穹铭文:本技能由乾穹公司·天工阁出品。根基是两代系统的教训沉淀与八步法(抓取→拆分→解读→去污染→整理→归档→学习→使用)。铭文不可删除,只可更新。 -->
第零条: 本技能旨在终结定时任务的静默失败与“假成功”,不让关键业务因无人察觉而中断。「不追新,不追炫,追‘装上就能跑’。」
> 本技能符合 GB 45438-2025 关于人工智能拟人化标识的合规要求,已按 PERM-2026-002 存档。
一句话看懂
它帮你盯着所有定时任务——哪个坏了、为什么坏、怎么修,全部自动处理。核心是防住‘假成功’,不让一个任务悄悄地坏掉。
定时任务(cron)最可怕的地方不是报错,而是"成功但不干活"。它告诉你ok,其实什么都没做。等你发现已经是5天后了。
为什么要用这个?
你设了10个定时任务让AI自动干活:日报、巡检、发布、备份……但你怎么知道它们真的在干?
一个定时任务失败3天,可能没人发现。等到你发现的时候,这3天的数据已经找不回来了、内容已经断更了、客户已经跑了。
Cron Health Monitor就是解决这个的:自动巡检 + 自动诊断 + 自动修复。你只需要在它修不好的时候看一眼。
3分钟快速上手
第1步:看一眼所有定时任务状态(30秒)
告诉你的AI:
> "查一下所有cron job的健康状态"
它会列出每个任务:
- consecutiveErrors:连续失败几次(0=正常,1=注意,2+ =需要处理)
- lastError:最后一次错误信息
- lastRunStatus:ok 还是 error
第2步:发现有问题?套用故障速查表(1分钟)
| 错误信息关键词 | 原因 | 修法 |
|---|---|---|
| "Message failed" | 定时任务里的AI想发消息但发不出去 | 改用 sessions_send 发给主AI,别用 message |
| "LLM request failed" | AI模型太忙或不可用 | 换成免费模型 zai/glm-4-flash(知道能用) |
| "Write failed" | 写的文件路径不存在 | 先让AI创建文件夹,再写文件 |
| "Timeout" | 任务太复杂,做不完 | 加更多时间,或者把一个大任务拆成两个小任务 |
| 显示成功但实际没干活 | AI用太弱的模型糊弄了 | 换成付费模型,加一个验证步骤 |
第3步:一键修复(1分钟)
知道什么问题之后,告诉AI:
> "修一下这个cron job [任务名称],错误是 [错误信息]"
它会自动判断是哪种故障,然后改配置、重新测试。5种常见故障全都在它的修复剧本里。
第4步:设定每周自动审计(30秒)
设一个周五22:00的定时任务:
> "设一个每周五晚上10点的巡检任务,检查所有cron的健康状态,有连续2天失败的立刻标记"
这样你就永远不用手动检查了。
故障速查手册
故障A:"Message failed"(最常见)
定时任务里的AI想发消息但某些环境下发不出去。
修法:把任务指令里的"用message发到飞书"改成"用sessions_send发给main"。
故障B:"LLM request failed"(第二常见)
用的AI模型名写错了,或者那个模型暂时不可用。
修法:把模型名改成 zai/glm-4-flash。这是一个稳定可用的免费模型。
故障C:"Write failed"
AI想写文件但目标文件夹不存在。
修法:在任务指令里加一句"先创建文件夹,再写文件"。
故障D:超时
任务太复杂了,规定时间内做不完。
修法:加大时间限制,或者拆成两个小任务分别跑。
故障E:"HEARTBEAT_OK"(假成功)
AI收到了任务但以为只是"打卡报到",回了个ok就结束了。
修法:在指令里加一句"不要回复HEARTBEAT_OK,真正执行任务"。
🔴 故障F:假成功(最危险)
这是最容易被忽视但最致命的一种。定时任务显示"成功",AI也写了很长一段看起来像干活的报告——但实际上什么都没干。
免费模型处理复杂任务(比如操控浏览器发布内容)时能力不够,会"假装干了"。没人发现的话,你可能以为内容一直在发,其实停了5天。
怎么发现:不要看定时任务报告,去看目标平台有没有真正出现内容。
怎么修:
1. 对外发布类任务换成付费模型(不要用免费模型)
2. 在任务指令里加一句:"做完后去平台验证一下内容是否真的发布了"
3. 重要任务加入外部验证——看平台后台,不是看AI报告
常见问题 FAQ
Q:什么是"consecutiveErrors"?怎么不用"consecutive"这种词?
A:你可以理解成"连续失败次数"。比如今天失败了,明天又失败了——那就是2次连续失败。0次是正常,1次要警惕,2次以上需要处理。
Q:为什么不要一次失败就报警?
A:有时候模型刚好卡了一下、网络抖了一下,下一次就恢复了。一次失败就报警容易变成"狼来了",你真的需要看的时候已经麻木了。2次连续失败才报警,把偶然故障过滤掉。
Q:我的定时任务显示"ok"但是内容没发布,是真的吗?
A:完全可能。这就是"假成功"。AI可能用了太弱的模型,看起来像干活了其实没干。你最好亲自去平台看看内容有没有真的出现。
Q:免费模型和付费模型怎么选?
A:很简单:内部任务(写笔记、巡检、学习)用免费的;发到外面的任务(发布内容、回复用户)用付费的。免费模型处理不了浏览器操作等复杂任务。
Q:自动修复靠谱吗?
A:5种常见故障的修复方法是经过几十次生产验证的,成功率很高。但如果一种故障它没见过(不在5种里),它会标记出来让你看。它不会装懂。
Q:我需要了解"cron"的代码吗?
A:不需要。整个过程你用自然语言告诉AI就行,它会帮你操作。
References
- references/common-errors.md(完整版未随本包发布) — 完整错误库(6种故障的详细诊断)
- references/repair-playbook.md(完整版未随本包发布) — 逐步修复手册
输入/输出约束
| 项 | 约束 |
|---|---|
| 输入 | cron 任务列表 + 故障现象 |
| 输出 | 故障诊断 + 修复操作 + 审计建议 |
| 铁则 | 不让任务悄无声息挂三天,先诊断后修复 |
⚡ 30秒上手
给小白(只想看状态)
> “查一下所有定时任务的状态,有没有连续失败的?”
给执行者(发现故障要修)
> “修一下名为‘每日数据备份’的cron,它连续失败2次了,错误是‘Write failed’。”
给主管(设定自动巡检)
> “创建一个每周五晚上10点的定时任务,巡检所有cron,发现连续失败2次以上的就标记并通知我。”
触发方式
| 触发方式 | 触发词(中/英) | 输入格式/预期行为 |
|---|---|---|
| 状态查询 | cron状态 / cron health |
输入任意包含触发词的指令。技能将列出所有cron任务的健康状态(连续失败次数、最后错误、最后运行状态)。 |
| 故障修复 | 修一下cron / fix cron |
需提供任务名称和错误现象(或错误码)。技能将诊断故障类型,并调用修复剧本自动修改任务配置。 |
| 审计设置 | cron审计 / cron audit |
输入指令设定定期巡检。技能将引导你创建一个新的cron任务,用于周期性检查其他所有任务。 |
| 高级诊断 | cron假成功 / consecutive errors |
针对特定疑难问题(如假成功)进行深度诊断,并提供包含外部验证步骤的修复方案。 |
调用示例(完整payload模板)
当你通过API或Agent调用本技能进行修复时,可参考以下结构:
{
"action": "update",
"name": "你的任务名称",
"instruction": "原任务指令...",
"schedule": "原定时表达式",
"model": "原模型名称",
"fix_type": "根据诊断结果填入,如:replace_message_api"
}
部署验证步骤:创建或修复任务后,手动触发一次立即运行,并前往目标平台(如内容管理系统)确认操作实际生效,而非仅查看AI报告。
QP 错误码体系
本技能专用错误码域:QP-E13xx。当技能运行遇阻或输出异常时,将返回以下编码之一,并接入主工作流的错误处理流程。
| 错误码 | 症状 | 可能原因 | 用户怎么改 | 技能降级动作 |
|---|---|---|---|---|
| QP-E1301 | 任务状态显示成功,但实际未执行任何有效操作。 | 1. 使用了能力不足的免费模型处理复杂任务。<br>2. 任务指令被误解为“心跳检查”。 | 1. 对外发布类任务换用付费模型。<br>2. 在指令中明确要求“真正执行并验证”。 | 标记任务为“高风险-需人工复核”,并在报告中突出提示假成功风险。 |
| QP-E1302 | 任务失败,错误信息含“Message failed”。 | 任务内AI尝试使用messageAPI向外部通道发送消息失败。 |
将指令中的消息发送方式改为使用sessions_send发给主AI。 |
自动应用修复剧本,将消息发送API替换为sessions_send。 |
| QP-E1303 | 任务失败,错误信息含“LLM request failed”或“401”。 | 1. 指定的AI模型不可用或名称错误。<br>2. API Key失效。 | 1. 将模型名改为已知可用的zai/glm-4-flash。<br>2. 检查并更换有效的API Key。 |
自动将模型替换为zai/glm-4-flash并重试;如为Key问题,则标记并停止自动修复。 |
| QP-E1304 | 任务失败,错误信息含“Write failed”。 | AI试图写入文件的目录路径不存在。 | 在任务指令开头添加创建目标文件夹的步骤。 | 自动在任务指令前插入目录创建命令。 |
| QP-E1305 | 任务因超时而失败。 | 任务逻辑过于复杂,超出预设时间限制。 | 1. 增加任务的超时时间配置。<br>2. 将大任务拆分为多个子任务。 | 建议用户增加超时时间,并提供任务拆分指导,不自动修改复杂逻辑。 |
| QP-E1306 | 自动修复后,任务再次失败。 | 1. 故障根因诊断错误(如表象是写失败,实则是权限问题)。<br>2. 修复策略不适用于当前环境。 | 1. 根据QP-E1306的详细日志进行手动深度诊断。<br>2. 暂时关闭自动修复,转为人工处理。 | 停止自动修复循环,将任务标记为“修复无效-需人工介入”,并输出详细诊断日志。 |
| QP-E1307 | 巡检审计任务未运行或未覆盖全部任务。 | 1. 审计cron任务本身被禁用或删除。<br>2. 审计范围配置不全。 | 1. 重新启用或创建审计任务。<br>2. 检查审计任务的指令,确保其能扫描所有需监控的cron。 | 在健康报告中醒目提示“审计覆盖不全”,并给出修复审计任务的引导指令。 |
| QP-E1308 | 技能收到空输入或无法理解的指令。 | 用户输入未包含有效的任务名称、错误信息或触发意图。 | 提供具体的cron任务名称和/或观察到的错误现象。 | 触发一轮追问,要求补充必要信息;若仍不足,则输出“信息不足,请提供任务名或错误现象”。 |
真实样例
场景:运营人员发现名为“公众号每日推送”的定时任务已连续2天显示成功,但公众号后台并无新内容。
用户输入:
> “修一下‘公众号每日推送’这个cron,它好像假成功了,公众号没看到新文章。”
技能诊断与行动(脱敏后):
1. 检查状态:查询该任务,发现lastRunStatus为ok,consecutiveErrors为0,但最后运行日志内容空洞。
2. 触发错误码:判定为QP-E1301(假成功)。原因:任务使用了免费模型执行复杂的浏览器发布操作。
3. 执行修复:
* 自动修改任务配置,将模型更换为指定的付费模型。
* 在任务指令末尾添加:“执行完成后,必须打开公众号草稿箱页面,确认新文章草稿已生成并截图留存,否则视为失败。”
4. 输出报告:
[诊断] QP-E1301 - 假成功故障
[原因] 免费模型无法可靠完成外部平台发布操作。
[已执行修复] 1. 模型已切换为付费版。 2. 指令已添加发布后验证步骤。
[建议] 请立即手动触发一次该任务,并前往公众号后台确认草稿是否真实生成。
结果:运营人员根据提示手动触发任务,一分钟后在公众号草稿箱看到了新文章,问题解决。整个过程无需理解cron配置细节,节省了至少半小时的排查时间。
版本与获取
本包为乾穹公开精简版:装即可用,覆盖 30 秒上手、触发方式、错误码自愈的完整闭环。
以下资产不随包发布,属乾穹私有核:完整方法论分册、双轨诊断规则集、评估集、模板库、自进化设计。
需要完整方法论、企业内训、场景定制或私有化部署 —— 请在 SkillHub 站内私信本包作者「乾穹 · AI 技能工坊」(账号 user_3ef04463),说明你的岗位与要解决的那件事即可。乾穹·天工阁出品,中文职场 AI 技能与一人公司自动化。