Install
openclaw skills install @thcjp/cron-assist定时助手是定时调度专家的"自然语言层"。用户说"每天早上9点发日报",它解析意图、匹配模板、生成调度命令并执行,全程无需懂 cron 语法。内置高频场景模板(日报、健康检查、收件箱巡检、周报)与成本优化策略(批量合并、降级模型、超时熔断)。 核心能力:自然语言意图解析、调度模板库、一键创建/暂停/恢复/删除、执行...
openclaw skills install @thcjp/cron-assist核心功能: 本技能提供中文交互、化工作流场景等能力。
功能说明: 本技能涵盖 assist 等核心能力。
让用户用大白话管理定时任务,把"每天早上9点发日报"这种口语秒变可靠调度。本技能解决四个核心痛点:cron 语法难懂(0 9 * * * 谁记得住)、重复配置(日报、健康检查等高频场景每次从零写)、成本失控(频繁跑昂贵任务烧 API)、管理混乱(任务一多就找不到、改不动).
本技能是"易用层",底层调度由引擎执行:
| 层级 | 技能 | 职责 |
|---|---|---|
| 易用层 | 定时助手(本技能) | NL 解析、模板、成本优化、批量管理 |
| 引擎层 | 定时调度专家 | 时区锁定、并发安全、自清理、熔断 |
| 守护层 | 定时守护 | 脚本可靠性、shell 陷阱防护 |
| 精通层 | 定时大师 | 平台级 cron 高级用法、推送策略 |
直接说人话,助手解析后生成命令: 具体详情请参考下方内容.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 定时助手处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
# 用户说:"每两小时检查一下收件箱"
cron-assist add "每两小时检查一下收件箱"
# 助手解析为:
# skill-platform cron add --every "2h" --task "检查收件箱" --name "inbox-check"
# ...
# 用户说:"每天早上9点发日报"
cron-assist add "每天早上9点发日报"
# 解析为:
# skill-platform cron add --daily --at "09:00" --task "生成并发送日报" --name "daily-report"
# ...
# 用户说:"工作日下午5点半提醒下班"
cron-assist add "工作日下午5点半提醒下班"
# 解析为:
# skill-platform cron add --weekly Mon-Fri --at "17:30" --task "提醒下班" --name "off-work-reminder"
cron-assist list # 列出所有任务
cron-assist pause "inbox-check" # 按名称暂停
cron-assist resume "inbox-check"
cron-assist delete "inbox-check"
cron-assist logs "inbox-check" # 查看执行历史
助手识别以下口语模式并翻译为调度参数:
| 自然语言 | 解析结果 |
|---|---|
| 每 N 小时 | --every "Nh" |
| 每 N 分钟 | --every "Nm" |
| 每 N 天 | --every "Nd" |
| 每天上午/下午 X 点 | --daily --at "HH:MM" |
| 每周一/二...X 点 | --weekly Mon --at "HH:MM" |
| 工作日 X 点 | --weekly Mon-Fri --at "HH:MM" |
| 每月 N 号 | --monthly --day N --at "HH:MM" |
| X 分钟后 / X 小时后 | --once --in "Xm" / --once --in "Xh" |
| 明天 X 点 | --once --at "明天 HH:MM" |
| 歧义消解:遇到"9点"未说明上午/下午时,助手主动确认:"9点是指上午9点还是晚上9点?" |
高频场景开箱即用,避免每次从零配置:
cron-assist template daily-report --apply
# 等价于:
# skill-platform cron add \
# --daily --at "09:00" \
# --task "汇总昨日工作、今日计划,生成日报" \
# --name "daily-report" \
# --model "cheap" --timeout "120"
cron-assist template inbox-check --interval 2h --apply
cron-assist template health-check \
--endpoint "https://api.example.com/health" \
--interval 5m --apply
cron-assist template weekly-report --day Friday --at 17:00 --apply
cron-assist template backup \
--source "/data" --dest "/backup" --schedule "daily 02:00" --apply
cron-assist template social-monitor --interval 1h --apply
查看所有模板:
cron-assist template list
可用模板:
daily-report 每日日报(09:00, 廉价模型, 120s超时)
inbox-check 收件箱巡检(每2h, 廉价模型, 60s超时)
health-check API健康检查(每5m, 30s超时, 失败告警)
weekly-report 周报生成(周五17:00, 180s超时)
backup 数据备份(每日02:00, 300s超时)
social-monitor 社媒监控(每1h, 60s超时)
频繁运行任务会烧 API 额度。本助手分析任务并给出优化建议:
cron-assist optimize
成本优化分析
═══════════════════════════════════════════════════
当前任务: 8 个 | 预估日消耗: $4.20
# ...
建议优化:
1. [合并] inbox-check(每2h) + social-monitor(每1h)
→ 合并为 social-inbox(每1h), 一次调用处理两者
→ 预估节省: $1.80/天
# ...
2. [降频] health-check(每5m) → 每10m
→ 多数 API 5分钟检查过于频繁
→ 预估节省: $0.40/天
# ...
3. [降级模型] daily-report 用的是 gpt-4
→ 日报生成用 gpt-3.5 足够
→ 预估节省: $0.90/天
# ...
4. [加超时] weekly-report 无超时限制
→ 建议加 --timeout 180 防止卡死烧钱
# ...
总计可节省: $3.10/天 (74%)
skill-platform cron add \
--every "2h" \
--task "检查收件箱" \
--model "cheap" # 用廉价模型
--timeout 60 # 60秒超时
--max-retries 2 # 最多重试2次
| 参数 | 作用 | 推荐值 |
|---|---|---|
--model | 指定模型(cheap/best/specific) | 巡检类用 cheap |
--timeout | 单次执行超时秒数 | 30-180 |
--max-retries | 失败重试次数 | 2-3 |
--cooldown | 失败后冷却时间 | 300s |
任务多了逐个管理很累。本助手支持批量操作:
# 按标签批量管理(创建时打标签)
cron-assist add "每天9点日报" --tag "report"
cron-assist add "每周五周报" --tag "report"
# ...
# 批量暂停某类任务
cron-assist pause --tag "report"
cron-assist resume --tag "report"
# ...
# 批量暂停所有(假期模式)
cron-assist pause --all
cron-assist resume --all
# ...
# 按状态过滤
cron-assist list --status paused
cron-assist list --failing # 列出最近失败的任务
不要在心跳里做昂贵检查,改用定时任务。这是最常见的成本浪费:
# 错误:每 30 分钟心跳都检查收件箱(昂贵)
# 正确:用定时任务精确调度
cron-assist add "每2小时检查收件箱" --model cheap
心跳只做轻量判断:"有没有任务到期了?"
# 心跳里的轻量调用
skill-platform cron due-now # 只返回到期的任务
用户: "帮我每天早上8点提醒我喝水"
助手: 已创建任务 "drink-water-reminder"
每天上午8:00 提醒喝水
要取消就说"暂停喝水提醒"
# ...
用户: "改成9点"
助手: 已更新,每天上午9:00 提醒喝水
# 一键部署团队标准任务集
cron-assist template daily-report --apply --tag "team-standard"
cron-assist template inbox-check --apply --tag "team-standard"
cron-assist template health-check --endpoint "$API" --apply --tag "team-standard"
# ...
# 团队放假,一键暂停
cron-assist pause --tag "team-standard"
# 先分析现有成本
cron-assist optimize
# 按建议优化
cron-assist add "每4小时检查收件箱" --model cheap --timeout 60
cron-assist add "30分钟后提醒我关火"
# 解析为一次性任务,30分钟后触发,自动清理
响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤.
Q:自然语言识别不了我的说法怎么办?
A:助手支持常见中文时间表达。若无法识别,它会询问"请用'每X小时'或'每天X点'格式说明"。也可直接用 skill-platform cron add 手动指定.
Q:模板能自定义吗?
A:能。把自定义模板写入 ~/.skill-platform/cron-assist/templates/,格式参考内置模板。cron-assist template create 可交互式创建.
Q:成本优化的预估准吗?
A:基于任务频次 × 单次模型调用均价估算,仅供参考。实际消耗取决于任务复杂度。建议定期 optimize 复查.
Q:批量暂停所有任务,定时提醒也会停吗?
A:会。pause --all 暂停全部,包括一次性提醒。假期模式后记得 resume --all.
Q:和定时调度专家有什么区别?
A:本技能是"自然语言+模板+成本"的易用层;定时调度专家是"时区+并发+清理"的引擎层。两者配合使用:助手负责理解意图,引擎负责可靠执行.
Q:任务失败了我怎么知道?
A:cron-assist list --failing 查看失败任务。建议配合定时大师的推送通知策略,失败时主动通知.
| 症状 | 可能原因 | 处置 |
|---|---|---|
| 自然语言无法解析 | 表达不标准 | 用模板或直接 CLI |
| 任务创建成功但不跑 | 底层引擎未启动 | 确认定时调度专家引擎运行 |
| 成本突然升高 | 任务频次过高或模型升级 | 运行 optimize 检查 |
| 模板应用失败 | 缺少必要参数 | 查看模板说明补全参数 |
list 显示空 | 任务被归档 | list --archived 查看 |
| 批量操作无响应 | 标签拼写错误 | list --tags 查看已有标签 |
--model cheap,省 80% 成本.--timeout 防止卡死任务无限烧钱.| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| skill-platform CLI | CLI | 必需 | 平台内置或安装 |
| cron-scheduler-pro | 关联技能 | 推荐 | 作为底层引擎 |
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
| jq | CLI | 可选(成本分析) | 包管理器安装 |
--model 参数控制任务执行用哪个 LLM 模型,费用由平台账户承担.定时助手是定时调度专家的"自然语言层" 处理: 解析定时助手是定时调度专家的"自然的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回定时助手是定时调度专家的"自然的响应数据,含执行状态与操作日志.
input_params参数指定操作类型(创建/查询/导出)用户说"每天早上9点发日报",它解析意图、匹配模板、生成调度命令并执行,全程无需懂 cron 语法 处理: 解析用户说"每天早上9点发日报"的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回用户说"每天早上9点发日报"的响应数据,含执行状态与操作日志.
input_params参数指定操作类型(创建/查询/导出)内置高频场景模板(日报、健康检查、收件箱巡检、周报)与成本优化策略(批量合并、降级模型、超时熔断) 处理: 解析内置高频场景模板(日报、健康检的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回内置高频场景模板(日报、健康检的响应数据,含执行状态与操作日志.
input_params参数指定操作类型(创建/查询/导出)核心能力:自然语言意图解析、调度模板库、一键创建/暂停/恢复/删除、执行历史查询、成本优化建议、超时与模型降级配置、跨任务批量管理 处理: 解析核心能力的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回核心能力的响应数据,含执行状态与操作日志.
input_params参数指定操作类型(创建/查询/导出)适用场景:非技术用户快速建任务、高频场景模板复用、Agent 心跳成本控制、临时任务快速创建、团队调度批量管理 处理: 解析适用场景的输入参数,完成核心逻辑,输出标准化响应数据. 输出: 返回适用场景的响应数据,含执行状态与操作日志.
input_params参数指定操作类型(创建/查询/导出)
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置.
能力覆盖范围:支持的场景关键词如下:自然语言驱动的定、时任务助手、内置模板库与成本、把口语意图秒变可、靠调度、Use、when、需要文本翻译、多语言转换、本地化处理时使用、不适用于专业医学、法律翻译认证、适用于独立开发者、企业团队和自动化、工作流场景等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.用户: "帮我每天早上8点提醒我喝水"
助手: 已创建任务 "drink-water-reminder"
每天上午8:00 提醒喝水
要取消就说"暂停喝水提醒"
# ...
用户: "改成9点"
助手: 已更新,每天上午9:00 提醒喝水
团队场景下需要一次性部署多个标准任务,并支持按标签统一管理。以下是完整流程:
# 1. 创建团队标准任务集,统一打标签
cron-assist template daily-report --apply --tag "team-standard"
cron-assist template inbox-check --apply --tag "team-standard"
cron-assist template health-check --endpoint "$API" --apply --tag "team-standard"
# 2. 确认所有任务已创建
cron-assist list --tag "team-standard"
# 3. 团队放假,一键暂停所有标准任务
cron-assist pause --tag "team-standard"
# 4. 假期结束,一键恢复
cron-assist resume --tag "team-standard"
批量操作的优势在于:新增成员时只需重新 apply 标准模板集,成员离职时按标签统一清理,避免逐个任务管理.
自然语言解析是本技能的核心能力。助手会识别常见中文时间表达并转换为调度参数,遇到歧义时主动确认:
# 示例1:每日定时任务
cron-assist add "每天早上9点发日报"
# 解析为: --daily --at "09:00" --task "生成并发送日报"
# 示例2:工作日提醒
cron-assist add "工作日下午5点半提醒下班"
# 解析为: --weekly Mon-Fri --at "17:30" --task "提醒下班"
# 示例3:一次性提醒(自动清理)
cron-assist add "30分钟后提醒我关火"
# 解析为: --once --in "30m" --task "提醒关火"(执行后自动归档)
# 示例4:歧义消解
cron-assist add "9点提醒我开会"
# 助手询问: "9点是指上午9点还是晚上9点?"
# 用户确认后: --daily --at "09:00" 或 --daily --at "21:00"
用户通过自然语言创建一个每日定时任务并验证执行结果:
用户: "帮我每天早上8点提醒我喝水"
助手: 已创建任务 "drink-water-reminder"
调度类型: daily
执行时间: 每天上午 08:00 (Asia/Shanghai)
任务内容: 提醒喝水
要取消就说"暂停喝水提醒"
# 查看任务列表确认
cron-assist list
# 输出:
# drink-water-reminder daily 08:00 active 下次运行: 明天 08:00
# 第二天 08:00 任务触发后查看日志
cron-assist logs "drink-water-reminder"
# 输出:
# 2026-07-24 08:00:03 success 耗时 1.2s 模型: cheap
{
"input": "示例输入",
"output": "处理结果"
}
处理结果以结构化格式返回, 包含状态码、消息和数据字段.
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 配置于环境变量中,密钥不得固化于代码 |
| 命令执行风险 | 仅允许执行白名单内命令,防止参数注入 |
| 网络通信安全 | 通信使用HTTPS并校验证书有效性 |
| 敏感数据暴露 | 返回内容不包含敏感凭证 |
| 使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。 |
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 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 |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | "自然语言驱动的定时任务助手,内置模板库与成本优化,把口语意图秒变可靠调度.。定 | 通用场景 | 通用场景 |