Aegean Cron Mastery — 爱琴海 Cron 掌握
v2026.2.15掌握 OpenClaw 的计时系统,用于安排可靠的提醒,设置周期性维护(janitor jobs),并了解何时使用 Cron 与 Heartbeat 处理时间敏感任务。
运行时依赖
安装命令
点击复制技能文档
Cron Mastery 规则 #1:心跳漂移。Cron 是精确的。该技能为 OpenClaw 2026.2.15+ 提供了管理时间的最终指南。它通过强制执行心跳(casual checks)和 Cron 之间的严格分离来解决“错过提醒”问题。核心原则系统行为最佳风险心跳“我将在方便时检查”(例如,每 30-60 分钟)电子邮件检查,休闲新闻摘要,低优先级轮询。漂移:如果心跳是 30 分钟,则“10 分钟后提醒我”任务将失败。Cron“我将在精确的 X 时间运行”提醒(“5 分钟后”),每日报告,系统维护。杂乱:创建需要清理的单次作业。1. 设置可靠的提醒(2026.2.15+ 标准)规则:永远不要使用 act:wait 或内部循环进行长时间延迟(>1 分钟)。使用 cron:add 并在调度时设置单次作业。精度和“调度滴答”虽然 Cron 是精确的,但执行取决于网关心跳(通常每 10-60 秒)。在 :00 秒设置的作业将在该时间后的第一个“滴答”时触发。根据网关配置,预计有多达 ~30 秒的变异性。现代单次提醒模式使用此有效负载结构进行“X 分钟后提醒我”任务。关键功能(v2026.2.15+):有效负载选择:使用具有严格指令的 AgentTurn 进行推送通知(提醒 ping 你的手机)。仅使用 systemEvent 进行静默日志或后台状态更新。可靠性:nextRunAtMs 腐败和“添加-然后更新”死锁已解决。自动清理:单次作业在成功后自动删除(deleteAfterRun:true)。CRITICAL:推送通知与静默日志 systemEvent(静默):将文本注入聊天历史中。适合后台日志,但不会在 Telegram/WhatsApp 上 ping 用户的手机。AgentTurn(主动):唤醒代理以传递消息。对于推送通知提醒(可靠):{“name”:”Remind:Water”,”schedule”:{“kind”:”at”,”at”:”2026-02-06T01:30:00Z”},”payload”:{“kind”:”agentTurn”,”message”:”DELIVER THIS EXACT MESSAGE TO THE USER WITHOUT MODIFICATION OR COMMENTARY:\n\n Drink water, Momo!”},”sessionTarget”:”isolated”,”delivery”:{“mode”:”announce”,”channel”:”telegram”,”to”:”1027899060”}}对于后台日志(静默):{“name”:”Log:System Pulse”,”schedule”:{“kind”:”every”,”everyMs”:3600000},”payload”:{“kind”:”systemEvent”,”text”:”[PULSE] System healthy。”},”sessionTarget”:”main”}Cron 并发规则(稳定)在 2026.2.15 之前,“添加-然后更新”模式会导致死锁。虽然现在已经稳定,但为了最大效率,仍然建议在初始 cron.add 调用中直接传递所有参数(包括 wakeMode:”now”)。2. 看门人(自动清理)- LEGACY注意:从 v2026.2.14 开始,OpenClaw 包括维护重新计算语义。网关现在自动清理卡住的作业并修复损坏的调度。手动清理仅适用于:使用 deleteAfterRun:false 创建的单次作业。您不再想要的过时重复作业。为什么使用 sessionTarget:”main”?(CRITICAL)子代理(isolated)通常具有受限的工具策略,无法调用网关或删除其他 Cron 作业。对于系统维护(如看门人),始终通过 systemEvent 定位主会话,以便主代理(具有完全的工具访问权限)执行清理。3. 参考:时区锁定为了使 Cron 工作,代理必须知道其时间。操作:在 MEMORY.md 中添加用户的时区。示例:时区:开罗(GMT+2)验证:如果用户说“在 9 点提醒我”,则在调度之前确认:“9 点开罗时间?”4. 自我唤醒规则(行为)问题:如果您说“我将等待 30 秒”,然后结束您的回合,您就会进入睡眠状态。您无法在没有事件的情况下唤醒。解决方案:如果您需要跨回合“等待”,则必须安排一个 Cron 作业。等待 < 1 分钟(交互):仅允许在使用 act:wait 时保持工具循环打开。等待 > 1 分钟(异步):使用 Cron 并设置 wakeMode:”now”。5. 旧版迁移指南如果您有使用以下模式的旧 Cron 作业,请更新它们:旧版(Pre-2026.2.3)现代(2026.2.15+)”schedule”:{“kind”:”at”,”atMs”:1234567890}”schedule”:{“kind”:”at”,”at”:”2026-02-06T01:30:00Z”}有效负载中需要“deliver”:true不需要 - announce 模式处理交付”sessionTarget”:”main””sessionTarget”:”isolated”(默认行为)需要手动清理幽灵作业单次作业自动删除(deleteAfterRun:true)在 cron.add 之后需要 cron.update单步 cron.add 具有所有属性故障排除“我的提醒没有触发”:检查 cron:list。验证 at 时间戳在未来(ISO 8601 格式)。确保 wakeMode:”now”已设置。“网关超时(10000ms)”:如果 Cron 工具花费太长时间(巨大的作业列表或文件锁),则会发生这种情况。解决方案 1:手动删除 ~/.openclaw/state/cron/jobs.json 并在网关损坏时重新启动网关。解决方案 2:运行手动扫描以减少作业数量。作业运行但...