dsh-task-dispatch-table:零大模型介入的週期性任務派發插件

前言

在 DSH 環境中,實現週期性任務調度通常需要大模型介入決策,這會產生 Token 消耗並增加延遲。dsh-task-dispatch-table 插件通過將調度邏輯與執行邏輯分離,提供了一種基於表驅動的調度方案,由宿主進程直接管理調度,不消耗大模型資源。

插件介紹

這是一個 DSH Host 層插件,由 cq-guojia 維護。它通過一張任務定義表驅動週期性工作流,當任務到達時間窗或滿足依賴條件時,將其派發爲獨立的 DSH 會話執行。調度本身使用純程序邏輯,不涉及大模型調用。

核心功能

調度邏輯

調度器按固定 Tick 間隔運行。它檢查任務定義表,判斷任務是否在時間窗內以及是否滿足依賴條件。只有當任務真正需要執行時,纔會創建會話。

調度模式

支持三種模式:
1. 單次:在指定時刻運行一次。
2. 週期性:按每日、每週或每月的固定時刻運行。
3. 間隔:按 N 小時或 N 天的間隔運行。
每種模式均支持“允許延遲窗口”。如果宿主繁忙或宕機,任務會在窗口內補跑;超過窗口則記錄爲 skipped。

任務依賴

依賴關係由下游任務聲明(類似於 Airflow 的 needs 模型)。當任務觸發時,插件會凍結上游實例及其輸出,並將其傳遞給下游會話,確保下游獲取的數據與觸發時刻一致。

會話與狀態

每次運行生成獨立的會話,包含狀態、Token 使用量、產物和事件日誌。會話執行後會被歸檔,可查看日誌、提取產物或繼續對話。

任務管理 UI

提供任務列表、運行記錄、日誌、執行時間線和日曆視圖,支持雙語顯示。

安裝與啓用

安裝後無需額外配置或本地構建,直接通過 npm 運行。安裝命令如下:

dsh plugin --profile web add dsh-task-dispatch-table

使用流程

1. 創建任務

在編輯器中創建新任務。設置標題、提示詞、調度方式(單次、週期性或間隔)以及附件。附件支持鏈接或上傳(單個文件最大 20MB)。

2. 配置與觸發

通過設置面板配置插件參數(如 Tick interval, Run log retention)。點擊任務卡片上的“Run now”按鈕可手動觸發執行。

3. 追蹤執行

在任務詳情中展開查看運行歷史、日誌及歸檔會話。通過日曆和執行時間線追蹤所有任務的執行情況。

配置項

插件配置存儲在自身的狀態數據庫中,主要參數如下:

  • Tick interval: 調度器掃描頻率,默認 60 秒。
  • Run log retention: 運行日誌保留天數,默認 30 天。
  • Temp attachment retention: 臨時附件保留天數,默認 7 天。
  • Default model: 任務未指定模型時使用宿主默認模型。
  • Dispatch grace: 等待派發會話出現的最大時長,默認 60 秒。
  • Run lease: 靜默會話的租約時長,默認 1800 秒。
  • Observation window: 監控未知狀態會話的時長,默認 300 秒。

注意事項

  • 無需構建:安裝後無需本地構建,直接運行即可。
  • 數據持久化:配置存儲在插件自身的狀態數據庫中,不會隨宿主配置重置而丟失。
  • 附件限制:單個文件上傳最大 20MB。
  • 語言切換:UI 支持雙語,隨 DSH 界面語言設置自動切換。
  • 許可證:MIT 許可證。

結語

該插件通過將調度層與執行層解耦,爲 DSH 提供了零大模型介入的週期性任務管理能力。適合需要嚴格依賴管理、執行狀態追蹤和週期性工作流編排的場景。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜