Install
openclaw skills install @thcjp/cron-master-pro定时大师是平台级定时系统的深度使用指南,解决"何时用心跳、何时用 cron""推送还是静默""怎么跨回合等待"等高阶决策问题。它提供 heartbeat 与 cron 的决策矩阵、payload 类型选择(agentTurn 推送 vs systemEvent 静默)、严格指令模板、自唤醒规则、时区锁定规范与历史...
openclaw skills install @thcjp/cron-master-pro核心功能: 本技能提供中文交互、化工作流场景等能力。
领先法则:心跳会漂移,cron 才精确。 本技能是平台级定时系统的深度使用指南。它不重复基础调度(那是定时调度专家的职责),而是解决高阶问题:什么时候该用心跳、什么时候必须用 cron;要手机推送还是静默记日志;怎么跨回合等待而不丢任务。掌握这些,才能做到"提醒永不漏、推送不啰嗦".
| 层级 | 技能 | 解决问题 |
|---|---|---|
| 精通层 | 定时大师(本技能) | heartbeat/cron 决策、推送策略、自唤醒 |
| 易用层 | 定时助手 | 自然语言、模板、成本优化 |
| 引擎层 | 定时调度专家 | 时区、并发、自清理、熔断 |
| 守护层 | 定时守护 | 脚本可靠性、shell 陷阱 |
| 系统 | 行为 | 适用 | 风险 |
|---|---|---|---|
| 心跳 | "有空就看看"(每 30-60 分钟) | 邮件检查、新闻摘要、低优先级轮询 | 漂移:"10 分钟后提醒"在 30 分钟心跳下必然失败 |
| Cron | "精确在 X 时刻执行" | 提醒(5 分钟后)、日报、系统维护 | 堆积:一次性任务需清理 |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 定时大师处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
你的需求是"在特定时刻精确执行"吗?
├─ 是 → 用 Cron(见下文)
│ ├─ 需要手机推送? → agentTurn + announce
│ └─ 只需记录? → systemEvent
└─ 否("有空看看就行")→ 用心跳
└─ 接受最多 30-60 分钟延迟
铁律:任何"X 分钟后""明天 X 点"的提醒,禁止用心跳或 act:wait,必须用 cron 的一次性调度.
Cron 是精确的,但执行取决于网关心跳节拍(通常每 10-60 秒)。设为 :00 秒的任务会在该时刻后领先个"节拍"触发,可能有最多 ~30 秒偏差.
"X 分钟后提醒我"用一次性 at 调度:
{
"name": "remind-water",
"schedule": { "kind": "at", "at": "2026-07-18T01:30:00Z" },
"payload": {
"kind": "agentTurn",
"message": "DELIVER THIS EXACT MESSAGE TO THE USER WITHOUT MODIFICATION OR COMMENTARY:\n\n该喝水了!"
},
"sessionTarget": "isolated",
"delivery": { "mode": "announce", "channel": "telegram", "to": "1027899060" }
}
| 属性 | 值 | 作用 |
|---|---|---|
schedule.kind | at | 一次性,到时刻触发 |
schedule.at | ISO 8601 | 必须是未来时刻,含时区 |
payload.kind | agentTurn | 唤醒 Agent 执行(推送必需) |
sessionTarget | isolated | 隔离子会话,避免污染主上下文 |
delivery.mode | announce | 主动推送(非静默) |
deleteAfterRun | true | 成功后自动删除(防堆积) |
这是最常选错的决策。选错要么"提醒没推到手机",要么"后台日志把用户轰炸了".
{
"name": "log-system-pulse",
"schedule": { "kind": "every", "everyMs": 3600000 },
"payload": {
"kind": "systemEvent",
"text": "[PULSE] 系统健康。"
},
"sessionTarget": "main"
}
{
"payload": {
"kind": "agentTurn",
"message": "DELIVER THIS EXACT MESSAGE...:\n\n内容"
},
"delivery": { "mode": "announce", "channel": "telegram", "to": "用户ID" }
}
需要用户在手机上看到通知吗?
├─ 需要 → agentTurn + announce
│ (必须用严格指令模板)
└─ 不需要 → systemEvent
(后台静默记录)
用 agentTurn 时,子 Agent 容易"热情过头",在提醒前后加寒暄。用严格指令模板杜绝:
DELIVER THIS EXACT MESSAGE TO THE USER WITHOUT MODIFICATION OR COMMENTARY:
# ...
<你的提醒内容>
关键点:
DELIVER THIS EXACT MESSAGE 起强调作用.WITHOUT MODIFICATION OR COMMENTARY 禁止添加任何评论.你好!我收到了一条定时提醒,现在转达给您:
该喝水了!
希望您身体健康~
正确示例(严格指令效果):
该喝水了!
历史遗留的"先 add 再 update"模式曾导致死锁。虽然网关已修复,优秀实践仍是单步创建:所有参数(含 wakeMode: "now")在首次 cron.add 时一次传入,不要先 add 再 update.
// 正确:单步创建
{
"name": "remind",
"schedule": { "kind": "at", "at": "..." },
"payload": { "kind": "agentTurn", "message": "..." },
"wakeMode": "now",
"deleteAfterRun": true
}
# ...
// 错误:两步操作(已废弃)
// step1: cron.add { name, schedule }
// step2: cron.update { payload, wakeMode } ← 曾导致死锁
问题:Agent 说"我等 30 秒"然后结束回合,就睡着了,自己无法醒来. 规则三档:
| 等待时长 | 方式 | 说明 |
|---|---|---|
| < 1 分钟 | act:wait(保持工具循环开启) | 交互式等待,不结束回合 |
| > 1 分钟 | Cron + wakeMode: "now" | 调度一次性任务唤醒自己 |
| 跨天/定期 | Cron 周期任务 | 长期调度 |
// 等 30 分钟后继续
{
"name": "self-wake-30m",
"schedule": { "kind": "at", "at": "<30分钟后的ISO时刻>" },
"payload": { "kind": "agentTurn", "message": "继续执行之前暂停的任务:示例值" },
"wakeMode": "now",
"deleteAfterRun": true
}
铁律:禁止用 act:wait 等待超过 1 分钟,会占用工具循环资源。长等待必须用 cron 自唤醒.
Cron 要可靠,Agent 必须知道自己的时间.
# 在 MEMORY.md 中记录
Timezone: Asia/Shanghai (UTC+8)
用户说"9 点提醒我"时,Agent 必须确认:
用户: 9点提醒我开会
Agent: 9点是指 Asia/Shanghai 时区的晚上9点吗?
用户: 对
Agent: 已创建提醒:今晚 21:00 CST 开会提醒
schedule.at 使用含时区的 ISO 8601(如 2026-07-18T21:00:00+08:00)网关已内置维护语义,自动清理卡住的任务并修复损坏的调度。手动清理仅在以下情况需要:
deleteAfterRun: false 创建(旧模式)// 创建时始终开启自动清理
{ "deleteAfterRun": true }
# ...
// 清理历史遗留的未清理任务
// 用 sessionTarget: "main" 让主 Agent 执行清理(子 Agent 权限不足)
{
"name": "janitor",
"schedule": { "kind": "every", "everyMs": 86400000 },
"payload": { "kind": "systemEvent", "text": "执行 cron 清理:删除已完成的一次性任务" },
"sessionTarget": "main"
}
子 Agent(isolated)通常有受限的工具策略,无法调用 gateway 或删除其他 cron 任务。系统维护类任务必须通过 systemEvent 指向 main 会话,让有完整工具权限的主 Agent 执行清理.
如果你有旧 cron 任务,按下表迁移:
| 旧模式(已废弃) | 新模式(推荐) |
|---|---|
"schedule": {"kind": "at", "atMs": 1234567890} | "schedule": {"kind": "at", "at": "2026-02-06T01:30:00Z"} |
"deliver": true(payload 内) | 不需要,announce 模式处理投递 |
"sessionTarget": "main"(默认) | "sessionTarget": "isolated"(隔离,更安全) |
| 手动清理幽灵任务 | 一次性任务 deleteAfterRun: true 自动清理 |
cron.update 跟在 cron.add 后 | 单步 cron.add 传入所有属性 |
无 wakeMode | 显式 "wakeMode": "now" |
| 迁移检查清单: |
atMs 改为 ISO 8601 atdeliversessionTarget 改为 isolateddeleteAfterRun: truewakeMode: "now"cron.list 查看任务是否存在at 时间是未来时刻(ISO 8601 格式)wakeMode: "now" 已设置cron 工具响应过慢,通常是任务列表过大或文件锁冲突.
~/.skill-platform/state/cron/jobs.json(先备份),重启网关99% 是 payload 类型选错。需要推送却用了 systemEvent(静默).
agentTurn + announce 模式delivery.channel 和 delivery.to 正确子 Agent 没遵守严格指令.
"DELIVER THIS EXACT MESSAGE... WITHOUT MODIFICATION OR COMMENTARY:\n\n<内容>"| 序号 | 错误场景 | 原因 | 处理方式 | 优先级 |
|---|---|---|---|---|
| 1 | 输入参数缺失 | 用户未提供必要参数 | 提示用户提供所需参数后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 | P0 |
| 2 | 执行超时 | 处理时间过长 | 检查输入数据量,分批处理 | P1 |
| 3 | 输出格式错误 | 结果不符合预期格式 | 检查output_format参数配置 | P1 |
Q:心跳和 cron 能混用吗?
A:能,且推荐。心跳做轻量轮询("有没有任务到期"),cron 做精确执行。不要在心跳里做昂贵操作.
Q:agentTurn 和 systemEvent 能在一个任务里同时用吗?
A:不能,payload.kind 只能选一个。需要"既推送又记日志"时,拆成两个任务.
Q:跨时区团队怎么管?
A:每个用户在 MEMORY.md 锁定自己的时区。任务 at 用 UTC,由 Agent 转换显示.
Q:一次性任务失败后会自动重试吗?
A:默认不会(一次性任务失败即结束)。需要重试则用周期任务,或配合定时调度专家的熔断重试.
Q:严格指令模板对中文有效吗?
A:有效。模板是英文是为了强约束,消息内容可以是中文。子 Agent 会原样输出中文内容.
Q:wakeMode 还有别的值吗?
A:"now"(立即唤醒)最常用。其他值取决于网关版本,未明确时用 now.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| 平台 cron 工具 | 内置工具 | 必需 | 平台内置 |
| cron-scheduler-pro | 关联技能 | 推荐 | 作为本地引擎补充 |
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
定时大师是平台级定时系统的深度使用指南,解决"何时用心跳、何时用 cron""推送还是静默""怎么跨回合等待"等高阶决策问题 处理: 解析定时大师是平台级定时系统的深度使用指南的输入参数,完成核心逻辑,输出结构化数据. 输出: 返回定时大师是平台级定时系统的深度使用指南的响应数据,包含状态信息、结果数据和执行记录.
input_params参数指定操作类型(创建/查询/导出)适用场景:需要精确提醒(手机推送)、跨回合等待、平台级定时系统治理、遗留 cron 任务迁移、可靠性要求高的周期任务 处理: 解析适用场景的输入参数,完成核心逻辑,输出结构化数据. 输出: 返回适用场景的响应数据,包含状态信息、结果数据和执行记录.
input_params参数指定操作类型(创建/查询/导出)定位为"精通层",解决高阶可靠性问题,不重复基础调度(那是定时调度专家的职责) 处理: 解析定位为"精通层"的输入参数,完成核心逻辑,输出结构化数据. 输出: 返回定位为"精通层"的响应数据,包含状态信息、结果数据和执行记录.
input_params参数指定操作类型(创建/查询/导出)
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置.
能力覆盖范围:本技能覆盖以下场景关键词:平台级定时系统精、通指南、heartbeat、决策矩阵、推送策略、自唤醒规则全覆盖、它提供、的决策矩阵、payload、类型选择、agentTurn、systemEvent、严格指令模板、自唤醒规则、时区锁定规范与历、史模式迁移指南等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.执行核心功能执行操作,使用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,输出结构化数据.
输出: 返回核心功能执行的响应数据,包含状态信息、结果数据和执行记录.
input_params参数指定操作类型(创建/查询/导出)详细的输入输出格式请参考下方章节说明。
| 场景 | 输入 | 输出 |
|---|---|---|
| 基础使用 | 用户请求 | 处理结果 |
| 不适用于:需要人工判断的复杂决策场景 |
用户要求"30分钟后提醒我开会",需要确保手机能收到推送通知:
输入: 用户说"30分钟后提醒我开项目评审会"
处理:
1. 判断需求类型:精确时刻执行 → 使用 Cron(非心跳)
2. 判断推送需求:需要手机通知 → agentTurn + announce
3. 计算触发时间:当前时间 + 30分钟,转为 ISO 8601
4. 创建一次性任务,使用严格指令模板防啰嗦
5. 开启 deleteAfterRun 自动清理
输出: 已创建任务 "meeting-reminder"
调度: 2026-07-24T15:30:00+08:00(一次性)
payload: agentTurn + announce(Telegram推送)
消息: "项目评审会议即将开始,请前往会议室A"
自动清理: 成功执行后删除
Agent 需要等待 30 分钟后继续执行,但不能用 act:wait 占用资源:
输入: Agent执行中需要暂停30分钟后继续
处理:
1. 等待时长 > 1分钟 → 禁止 act:wait,必须用 cron 自唤醒
2. 创建一次性任务,wakeMode: "now"
3. payload.message 携带上文 context,唤醒后恢复
输出: 已创建自唤醒任务 "self-wake-30m"
30分钟后 Agent 被唤醒,继续执行暂停的任务
{
"success": true,
"data": {
"result": "定时大师处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "cron master pro"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 通过环境变量传入,不在代码中硬编码 |
| 命令执行风险 | 仅允许执行白名单内命令,防止参数注入 |
| 网络通信安全 | 强制HTTPS传输并验证SSL证书 |
| 敏感数据暴露 | 结果中排除密钥类数据 |
| 使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。 |
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | 定时大师 | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | "平台级定时系统精通指南,heartbeat 与 cron 决策矩阵、推送策略、 | 通用场景 | 通用场景 |
针对定时大师使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |
A1: "平台级定时系统精通指南,heartbeat 与 cron 决策矩阵、推送策略、自唤醒规则全覆盖.。定时大师是平台级定时系统的深度使用指南,解决"何时用心跳、何。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。