前言¶
DeepSeek Harness (DSH) 的生态基于插件化。对于自动化需求,定时任务调度是常见场景。现有方案往往需要编写额外脚本,而 dsh-cron-scheduler 插件引入了标准的 Linux crontab 语法,允许 LLM 直接在对话中管理调度。
这是什么¶
这是一个由 AlexZhou19871030 维护的工作流插件。它允许 LLM 通过 cron 表达式创建定时任务,支持将提示词投递或调用现有工作流。任务与会话绑定,利用会话事件日志实现持久化,宿主重启后调度自动恢复。
核心功能¶
- 标准 Cron 语法:支持 5 段和 6 段表达式(含秒),支持步进(
*/15)、范围(9-18)、列表(1,5,10)以及月份/星期名称(JAN-DEC)。 - 语义一致性:与 Linux crontab 一致,日与星期同时指定按 OR 处理;5 段表达式在整分触发;错过的触发不补发。
- 全生命周期管理:提供创建、列表、删除、暂停、恢复、预览和手动触发工具。
- 主动任务建议:LLM 可从聊天记录推理出周期/提醒意图,生成待确认建议,主人确认后自动排程。
- 会话级持久化:调度状态与会话日志绑定,重启后自动恢复。
安装与启用¶
推荐通过 DSH 插件中心搜索 dsh-cron-scheduler 安装。若需手动配置,在 package.json 的 dependencies 中添加:
"dsh-cron-scheduler": "^0.1.0"
在 profile 目录执行 pnpm install,随后重启 DSH Host。
用法¶
插件加载后自动挂载 cron 工具到每个 root agent。核心工具包括:
* cron_create:创建任务,需指定 cron 和 kind(prompt 或 workflow)。
* cron_list:列出本会话任务,按下次触发时间排序,并显示待确认的主动任务建议。
* cron_next:只读预览,计算未来 N 次触发时间。
* cron_delete / cron_pause / cron_resume:管理任务状态。
* cron_run:立即手动触发一次任务。
* cron_suggest / cron_accept / cron_reject:用于主动任务流。
示例:创建 prompt 任务¶
创建一个每天早上 9 点投递提示词的任务:
请创建定时任务:每天 09:00 投递提示词「早上好,请总结昨日进展」,cron 表达式为 0 9 * * *,kind 为 prompt。
示例:创建 workflow 任务¶
创建一个每周一至周五 18 点调用工作流 daily_report 的任务:
请创建定时任务:每周一至周五 18:00 调用工作流 daily_report,cron 表达式为 0 18 * * 1-5,kind 为 workflow,参数 { scope: "today" }。
示例:预览触发时间¶
预览特定 cron 表达式未来 5 次的触发时间:
请用 cron_next 预览 0 18 * * 1-5 未来 5 次的触发时间。
主动任务流程¶
当对话中出现周期性或提醒意图时,LLM 会先调用 cron_suggest 生成待确认建议(建议 id 命名为 cron_s_...)。此时任务未真正排程,建议未确认前不会触发投递。主人回复同意后,LLM 调用 cron_accept 将建议转为真实任务并计算首次触发时间。
注意事项¶
- 需要满足特定的 peer dependencies 版本要求(
@deepseek-ai/cordis,@deepseek-ai/dsh-agent等)。 - 日与星期同时指定时按 OR 逻辑处理。
- 错过的触发不补发。
- 建议在安装前检查源码与许可证。
总结¶
该插件为 DSH 提供了标准化的定时调度能力,结合 LLM 的推理能力,可以实现自动化的周期性提醒和报告生成。