在 DeepSeek Harness (DSH) 的开发中,智能体经常需要处理定时任务。无论是设置每日提醒,还是复杂的调度逻辑,解析 Cron 表达式、校验其有效性以及预判未来的触发时间都是常见需求。手动编写解析逻辑既繁琐又容易出错。下面介绍 dsh-cron-parse 插件,它提供了一套完整的解决方案。
插件定位¶
这是一个由 ZhijiangTang 维护的 DSH 插件。它的核心功能是解析 5 段标准 Cron 表达式(分钟、小时、日、月、星期),并提供校验、中文人性化描述、各字段展开值,以及未来若干次运行时间的预览。该插件采用纯 ESM 模块设计,零依赖,无需构建。
核心能力¶
-
语法支持
支持多种语法形式:*:全部取值*/n:每 n(自最小值起)个单位a-b:闭区间a-b/n:区间内步进- 列表:多值并集(如
1,15,30) - 名称:月名或星期名(如
jan-dec、sun-sat),大小写不敏感
各字段取值范围:分钟
0-59,小时0-23,日1-31,月1-12,星期0-7(0和7均表示周日)。 -
语义逻辑
采用经典的 Vixie 语义:- 并集触发:当“日(dayOfMonth)”与“星期(dayOfWeek)”都受限时,某天满足其一即触发(OR 逻辑);仅一个受限时也生效;都不受限时每天触发。
- 永不触发判定:通过“日/月可行组合”预判 + 100000 天迭代上限双重判定。例如
0 0 30 2 *(2 月 30 日)会被判定为永不触发。 - 时间计算:按目标时区的墙钟逐日推进。夏令时切换瞬间按定点迭代解释。
-
自检机制
插件挂载时会自动执行 5 条自检,证据行输出到日志,前缀为[dsh-cron-parse]。
安装与启用¶
在 DSH 环境中执行以下命令安装插件:
dsh plugin --profile <name> add file:./plugins/dsh-cron-parse
安装后,组合层会挂载 cron_parse 工具。
典型用法¶
调用 cron_parse 层时,需传入参数。参数说明如下:
expression(必填):5 段标准 cron 字符串。count(可选):未来运行次数,取值范围 1–10,默认 5。tz(可选):IANA 时区名(如Asia/Shanghai、UTC),默认本地时区。now(可选):ISO 8601 基准时间,默认当前时间。
该工具返回包含以下字段的规范值:ok、valid、description(中文描述)、fields(各字段展开值)、nextRuns(未来运行时间列表)、timezone、errors。
适用场景与注意¶
- 适用场景:DSH 智能体开发中需要处理定时任务调度、需要中文输出 cron 含义、需要校验表达式合法性的场景。
- 局限性:仅支持 5 段标准 cron,不支持秒段,也不支持
L、W、#、?等特殊字符。 - 注意事项:插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证(MIT)。
该插件通过零依赖和纯 ESM 设计,提供了从解析到预览的一站式能力。