前言¶
DeepSeek Harness (DSH) 採用了插件化架構,核心在於其靈活的擴展能力。除了實時的對話交互,許多工作流需要任務在後臺定時觸發,例如系統備份、定期提醒或定時啓動 Agent 會話。dsh-b2us-schedule 旨在解決這一問題,爲 DSH 提供持久化、可管理的定時任務調度能力,支持 Agent、Shell 命令和桌面通知三種主要動作類型。
是什麼¶
dsh-b2us-schedule 是一個由 changyinliangbaikai 維護的 DSH 工作流插件。它將宿主插件與 Web 客戶端集成在一個安裝包中。Agent 可以通過五種類型化的對話工具創建和管理任務,用戶也可以通過 Web 界面進行統一管理。該插件將任務定義、運行狀態和執行記錄存儲在 DSH Settings 服務中,重啓後可自動恢復。
核心功能¶
該插件提供了完整的調度與管理能力:
-
四種調度類型
- Cron:支持 Croner 兼容的 5/6/7 字段表達式,可指定時區。
- 延遲調度:創建後經過指定秒數執行一次。
- 絕對時間調度:在指定的 UTC 日期時間執行一次。
- 固定間隔調度:按固定秒數間隔重複執行。
-
三種執行動作
- Agent 會話:每次執行創建一個新的頂級 DSH Agent,支持超時控制。
- Shell 命令:通過 DSH ShellExecutor 執行腳本或命令。
- 桌面通知:支持 macOS、Linux 和 Windows 的原生通知。
-
管理與持久化
- Web 管理頁面:訪問
Settings → Plugins → Scheduled Tasks進行增刪改查。 - 持久化:任務狀態和執行記錄保存於 DSH Settings。
- 生命週期控制:支持卸載、禁用、刪除任務,以及修改定義以取消相關計時器。
- Web 管理頁面:訪問
環境要求¶
使用該插件需要滿足以下環境依賴:
Node.js: ^22.19.0 || >=24.0.0
DeepSeek Harness: 0.1.2-rc.1
Cordis: 4.0.2
典型用法¶
以下是基於文檔的可復現示例:
- Shell 腳本調度:在
/srv/app目錄下運行./scripts/backup.sh,延遲十分鐘後執行。 - 桌面通知:每天 9:00,在
Asia/Shanghai時區發送桌面通知,提醒查看日報。 - Agent 調度:每天 8:00,在
/Users/me/tests目錄啓動一個新的 Agent,使用默認預設,超時時間設爲 15 分鐘。 - 任務管理:禁用剛創建的任務,或列出所有定時任務及其下一次執行時間。
注意事項¶
- 投遞保證:調度器提供“至少一次”投遞保證。本地 Shell 退出或 Agent 會話完成僅代表本地執行結果,不代表外部業務成功。
- 執行串行化:任務按調度時間串行執行,同一時間只能有一個任務在運行。
- 最小間隔:Cron 和固定間隔調度默認最小間隔爲 1 秒,高頻任務場景建議在生產環境中調高此值。
- 執行器依賴:Shell 命令和桌面通知均通過 DSH ShellExecutor 運行,依賴宿主環境的 Bash 或 PowerShell 配置。
- 重命名與兼容:舊包名
dsh-auto-schedule已重命名爲dsh-b2us-schedule,但爲了兼容性,Settings 命名空間、Cordis 行 ID 和工具名稱保持不變。
結語¶
dsh-b2us-schedule 通過 Web 界面和對話工具的結合,爲 DSH 提供了完善的定時任務解決方案。它適用於需要自動化工作流、定期系統通知或定時啓動 Agent 的場景。更多技術細節可參考 GitHub 倉庫。