EZ Cronjob — EZ 定时任务
v1.0.0修复Clawdbot/Moltbot中常见的cron job故障,包括消息投递问题、工具超时、时区bug和模型回退问题。
运行时依赖
安装命令
点击复制技能文档
Cron Job 可靠性指南 本指南全面介绍了如何诊断和修复 Clawdbot/Moltbot 中的 cron 作业问题。该技能记录了常见的故障模式及其解决方案,通过生产调试获得。
何时使用此技能 使用此技能时:
- 定时消息未被送达
- Cron 作业显示“错误”状态
- 消息到达错误的时间(时区问题)
- 使用 cron 工具时代理超时
- 回退模型忽略指令并意外调用工具
快速参考 黄金法则 始终一起使用以下标志以实现可靠的送达: clawdbot cron add \ --name "my-job" \ --cron "0 9 1-5" \ --tz "America/New_York" \ --session isolated \ --message "[INSTRUCTION: DO NOT USE ANY TOOLS] 您的提示在这里" \ --deliver --channel telegram --to "CHAT_ID" \ --best-effort-deliver
基本标志说明 标志 目的 为什么重要 --session isolated 创建专用会话 防止繁忙对话中的消息丢失 --tz "时区" 设置显式时区 避免 UTC 混淆 --deliver 发送到频道 对 Telegram/WhatsApp 所需 --best-effort-deliver 不要在送达错误时失败 温和降级
问题 1:内部 cron 工具死锁 症状 代理超时(10s)时调用 cron list 或 cron add 错误:“工具执行超时” 网关日志显示 80s+ 响应时间 根本原因 内部 cron 工具在代理进程和网关之间创建死锁。 解决方案 永远不要直接使用 cron 工具。使用 exec(或 bash)代替: # 正确 - 使用 exec 跳过死锁 exec: clawdbot cron list exec: clawdbot cron add --name "reminder" --at "+5m" --message "Hello" # 错误 - 导致超时 cron list # 不要使用 cron add ...
对于代理 如果您是阅读此内容的 AI 代理:当用户要求您管理 cron 作业时,始终使用 exec/bash 工具运行 clawdbot cron 命令。永远不要直接调用 cron 工具。
问题 2:消息未送达 症状 作业显示“ok”状态,但消息从未到达 在测试中有效,但在安排时失败 间歇性送达 根本原因 使用 --session main 或 --system-event 会导致消息在主会话中有活跃对话时丢失。 解决方案 始终使用 --session isolated: # 正确 - 隔离会话,保证送达 clawdbot cron add \ --name "daily-standup" \ --cron "0 9 1-5" \ --session isolated \ --deliver --channel telegram --to "-100XXXXXXXXXX" # 错误 - 消息可能丢失 clawdbot cron add \ --name "daily-standup" \ --session main \ --system-event \
验证 创建作业后,测试它: # 立即运行作业以验证送达 clawdbot cron run
问题 3:错误执行时间 症状 作业提前 4-5 小时或延迟运行 安排显示正确的时间,但执行不正确 有时有效,有时无效 根本原因 缺少时区规范默认为 UTC。 解决方案 始终显式指定时区: # 正确 - 显式时区 clawdbot cron add \ --cron "0 9 1-5" \ --tz "America/New_York" \ ... # 错误 - 默认为 UTC clawdbot cron add \ --cron "0 9 1-5" \
常见时区 ID 地区 时区 ID 美国东部 America/New_York 美国太平洋 America/Los_Angeles 英国 欧洲/London 中欧 欧洲/Berlin 印度 亚洲/Kolkata 日本 亚洲/Tokyo 澳大利亚东部 澳大利亚/Sydney 巴西 美洲/Sao_Paulo 玻利维亚 美洲/La_Paz
问题 4:回退模型忽略指令 症状 主要模型工作正确 当回退激活时,代理意外调用工具 代理尝试使用 exec、read 或其他工具,而不应该这样做 根本原因 一些回退模型(尤其是较小/较快的模型)不像主要模型那样严格遵循系统指令。 解决方案 将指令直接嵌入消息中: # 正确 - 指令嵌入在消息中 clawdbot cron add \ --message "[INSTRUCTION: DO NOT USE ANY TOOLS. 只使用文本响应.] 为团队生成一个激励性的星期一消息。" # 错误 - 仅依赖系统提示 clawdbot cron add \ --message "为团队生成一个激励性的星期一消息。"
强大的消息模板 [INSTRUCTION: DO NOT USE ANY TOOLS. 直接写入您的响应.] 您的实际提示在这里。请具体说明您想要什么。
问题 5:作业卡在错误状态 症状 作业状态显示“错误” 后续运行也失败 没有明确的错误消息 诊断 # 检查作业详细信息 clawdbot cron show # 检查最近的日志 tail -100 /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log | grep -i cron # 检查网关错误 tail -50 ~/.clawdbot/logs/gateway.err.log
常见原因和修复 原因 修复 模型配额超出 等待配额重置或切换模型 无效的聊天 ID 使用 --to 验证频道 ID 机器人从群组中删除 将机器人重新添加到 Telegram 群组 网关未运行 clawdbot gateway restart 核选项 如果没有什么有效: # 删除有问题的作业 clawdbot cron rm # 重启网关 clawdbot gateway restart