前言¶
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 的推理能力,可以實現自動化的週期性提醒和報告生成。