SuperAPI AI 工具集

cron-mastery

办公与效率

查看项目

更新于 10-15 22:10

技能介绍

Cron Mastery 是 OpenClaw 中管理时间的技能,解决“提醒没触发”的问题,主张严格区分随意检查(heartbeat)与硬性定时(cron)。资料要点如下。

核心原则:heartbeat 是“有空就查”(如每 30-60 分钟),适合邮件检查、随意新闻摘要、低优先级轮询,风险是漂移(心跳 30 分钟时,“10 分钟后提醒”会失败)。cron 是“在精确时间运行”,适合提醒、每日报告、系统维护,风险是产生需清理的一次性任务。

设置可靠提醒:超过 1 分钟的长延迟不要用 act:wait 或内部循环,应使用 cron:add 搭配一次性 at 调度。资料给出“X 分钟后提醒我”的 JSON 载荷结构,包含 name、schedule(kind: at,atMs 为当前毫秒加延迟)、payload(kind: agentTurn、message、deliver)、sessionTarget: isolated、wakeMode: next-heartbeat。资料说明:即使 wakeMode 为 next-heartbeat,cron 系统仍会在 atMs 强制注入事件;若需在任务载荷之外强制立即唤醒,使用 cron:wake 工具的 mode: now。

Janitor(自动清理):一次性 cron 任务(kind: at)运行后会自我禁用,但仍以“幽灵”形式留在列表中(enabled: false、lastStatus: ok)。为避免堆积,可安装每日 Janitor:先用 cron:list(includeDisabled: true)查看当前任务;再创建名为 Daily Cron Cleanup 的任务,调度为每 24 小时(everyMs: 86400000),载荷为运行特定提示词的 agent turn。Janitor 提示词要求列出含禁用项在内的全部 cron 任务,删除 enabled: false 且 lastStatus: ok(已完成的一次性任务),不删除活跃的周期性任务,并记录删除内容。

时区锁定:cron 正常工作需智能体知道自身时间。操作:将用户时区写入 MEMORY.md,例如 Timezone: Cairo (GMT+2);验证:用户说“晚上 9 点提醒我”时,调度前先确认“是开罗时间晚上 9 点吗?”。

自我唤醒规则(行为约束):若说“我等 30 秒”并结束回合,就会进入睡眠,没有事件无法自行唤醒。若需跨回合“等待”,必须安排 Cron 任务:少于 1 分钟的交互式等待仅在保持工具循环打开(act:wait)时允许;超过 1 分钟的异步等待使用 Cron 并设 wakeMode: now。资料还给出“30 秒后回来检查”的示例载荷(schedule.kind 为 at、atMs 为当前时间加 30000、payload.kind 为 agentTurn、wakeMode 为 now)。

排障:提醒未触发时检查 cron:list;任务存在却未触发则核对系统时钟与 atMs;旧任务过多时立即手动运行 Janitor。适用场景为提醒、周期维护与时间调度;限制在于依赖用户时区配置、一次性任务需清理,具体平台与收费信息资料未提供。