Thomas-zz/dsh-offpeak-queue:把不急的任務推到模型閒時再跑

前言

在 DSH 裏做智能體開發,經常會遇到一類任務:不是不重要,只是不急,例如批量跑文檔轉換、長文本摘要、跨倉庫的核對工作。現在做,就要按當前時段計價;放着等,除非手動記到待辦裏,否則很容易順勢就做了。DeepSeek 在工作日高峯是全價,閒時半價;GLM Coding Plan 在工作日高峯按全積分抵扣,閒時按 50% 積分抵扣。對可延後的任務,時段本身就是成本。

下面介紹的這個插件把「等會兒再做」變成了一條本機隊列:在對話裏用 /閒時任務 提交任務時不調用模型,到該對話所用模型的閒時時段,任務在同一個對話裏自動執行。這是 Thomas-zz 在 GitHub 上維護的開源插件,分類屬於工作流(社區目錄 SkillHub 上登記),包名爲 @zayn_/dsh-offpeak-queue,倉庫爲 Thomas-zz/dsh-offpeak-queue。

這是什麼

一句話定位:一個 DSH 插件,讓你在任意對話裏排隊一個任務,排隊這一步零模型調用,然後在該模型的閒時窗口,在同一條對話裏自動執行。

解決的具體問題有三個:

  1. 排隊這件事本身不產生 token 費用,提交階段被攔在 agent/pre-step,直接結束本輪。
  2. 按模型排期,而不是按一個統一的時間表。用 DeepSeek 的對話就等 DeepSeek 的閒時,用 GLM 的就等 GLM 的閒時。
  3. 執行時回到來源對話,上下文、貼圖、工作區都還在,不是另開一個陌生會話。

插件內置了兩個模型家族的官方峯谷規則(自動配置,無需手填):

  • DeepSeek:北京時間週一至週五(不含法定節假日)09:00–12:00、14:00–18:00 爲高峯期全價,其餘時間爲閒時半價。
  • GLM Coding Plan:北京時間週一至週五 14:00–18:00 爲高峯期全積分,其餘時間按 50% 積分抵扣(官方規則未設節假日豁免)。

核心功能

先做排隊,再做執行,中間由面板管理。已覈實的能力如下。

對話內排隊。 在輸入框輸入 /閒時任務 回車開啓,工具條出現「閒時任務 ×」標籤;寫下任務回車即入隊,這時不產生模型回覆。會話標題會自動改成任務標題,側欄用月亮圖標標記。

面板管理。 側欄「閒時任務」面板分任務隊列與統計兩個頁籤,隊列支持全部 / 等待 / 執行中 / 已完成 / 失敗 / 已取消六個狀態篩選。標題下是一排等寬狀態卡,按已開啓的模型分別展示峯谷徽章、切換倒計時和下一閒時時段;「設置」按鈕打開居中彈窗,可以開關各模型的閒時任務、調節最大併發。

分模型統計。 統計頁按模型分卡片,DeepSeek 顯示估算節省金額,GLM 顯示估算積分消耗與閒時節省;另有按模型的表格(含積分與 Token 列)、運行次數疊加圖,近期執行帶模型標識。

修改零調用。 點狀態卡上的「修改」,任務內容回填到輸入框,像聊天一樣改(可以貼圖),回車保存;真正執行時用的是最新版本。修改同樣不產生模型調用。

立即執行。 隊列裏每條任務都可以手動「立即執行」,任何時段都能跑,高峯時段會按全價計費並給出提示。

其餘細節。 面板裏選好工作區(下拉可搜索)點「新建閒時任務」,會在該工作區打開新對話並自動開啓指令;完成提醒只用綠色小點,不彈橫幅;界面跟隨 DSH 語言,窄到 520px 仍可用,支持明暗主題。

安裝與啓用

環境要求:DeepSeek Harness(DSH)桌面端或 web profile。插件是一個 bundle,分成 Host 與 Client 兩半,Host 需要 webServer 等平臺服務。

方式一,命令行安裝(README 推薦路徑,前提是先拿到插件源碼目錄):

"$DSH" plugin --profile desktop add "$PWD/dsh-offpeak-queue"

這條命令會以 link 方式鏈接源碼目錄,並自動登記 bundle。macOS 桌面端的 dsh CLI 位於 app 內:

DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"

裝完需要重啓 DSH 桌面端(Host 部分改動要重啓;Client 的 client.js 改動保存後熱更新)。

方式二,插件管理器:

  1. 在 DSH 的「設置 → 插件」裏從本地目錄安裝 @zayn_/dsh-offpeak-queue。
  2. 確認 profile 的 dsh.profile.bundles 裏已包含 @zayn_/dsh-offpeak-queue(用 dsh plugin add 會自動加)。

數據文件位置:

~/.dsh/offpeak-queue.json

可用環境變量 DSH_OFFPEAK_DATA_FILE 指定其他路徑,便於隔離測試。卸載走「設置 → 插件」裏禁用或移除,或執行 "$DSH" plugin --profile <profile> remove @zayn_/dsh-offpeak-queue。

典型用法

下面是 README 中給出的完整流程。

1、在任意對話輸入框輸入 /閒時任務(或從 / 指令菜單選「閒時任務」)回車開啓。這一步只是把輸入框置爲 armed 狀態,不做模型調用。

2、工具條出現「閒時任務 ×」標籤;寫下任務描述回車,任務入隊且不會產生模型回覆。

3、輸入框上方會出現一條與對話內容列同寬的狀態卡,可以展開查看詳情、修改、取消;面板裏同樣可以操作。

4、到達該模型的閒時時段,任務在同一條對話裏自動執行,對話中出現一張「插件狀態更新」觸發卡。注意這是插件注入的觸發卡,不是冒充用戶發出的消息。

5、側欄「閒時任務」面板查看隊列和省錢統計;面板圖標上的綠點表示有任務完成且未查看,點任務標題可以跳到來源對話。

如果隊列裏有任務想在非閒時時段跑,直接點「立即執行」,會按當前全價計費並提示。

工作原理

調度鏈路按 README 的描述整理如下:

  1. 對話裏輸入 /閒時任務,輸入框進入 armed 狀態。
  2. 提交任務時,Host 在 agent/pre-step 攔截,登記任務並結束本輪,零模型調用,也不寫會話日誌。
  3. 任務進入本機 JSON 隊列,面板的修改、取消、立即執行都作用於這條隊列。
  4. 調度引擎只在閒時啓動任務,最大併發默認 3。執行中如果跨入高峯會繼續跑完,費用按每一步實際完成時刻分別計價。
  5. Runner 向來源會話注入「插件狀態更新」觸發卡,把任務正文與貼圖送回對話。
  6. 正常的 agent loop 執行任務,記錄 token 與費用,統計頁給出節省估算。

實現上,Host 是純 ESM、無第三方依賴;Client 是單個瀏覽器 bundle,只依賴平臺 React。Host 與 Client 的行爲契約寫在倉庫的 docs/ARCHITECTURE.md。

隊列與調度由 DSH 進程負責。電腦休眠或 DSH 退出時任務不會丟失,會順延到下一個閒時窗口。

適用場景與限制

適合的讀者:工作裏有可延後、可批量、能等峯谷切換的任務,且主要使用 DeepSeek 或 GLM Coding Plan 的 DSH 用戶。如果平時只跑必須立刻出結果的任務,這個插件的調度收益不大。

幾點需要留意的地方,都來自 README 的已知限制:

  • 插件以當前 dsh 進程的權限運行,任務在來源對話裏執行,沿用該對話的權限預設。無人值守任務建議使用 approval: never 的預設,否則可能卡在審批上。
  • 排隊零成本不等於完全沒有開銷,只是沒有模型請求。開啓指令後如果沒寫任務就繼續聊天,那條消息會被當作任務入隊,需要先取消標籤。
  • 開啓後、還沒提交之前貼進輸入框的圖片由插件在內存中保管,頁面刷新或重啓後無法還原;已提交任務的圖文都持久化在隊列裏。
  • 費用與積分均爲估算,不是賬戶賬單:DeepSeek 按官方價目表 × 實測 token,GLM 按官方積分系數 × 實測 token(MCP 工具積分不計入);搜索、抓取等額外費用不計入。GLM 官方沒有公開的積分查詢 API,插件按官方積分公式本地估算。
  • 內置的法定節假日爲 2026 年,僅覆蓋 DeepSeek 家族;GLM 官方高峯規則未設節假日豁免,其他年份按工作日估算。
  • 調度依賴 DSH 進程保持運行,閒時到來時如果電腦在休眠或 DSH 已退出,任務會順延。
  • 任務按創建時對話所用模型排期,創建後切換模型不改變排期;未識別的模型按 DeepSeek 日曆處理。
  • 指令輸入名固定爲中文 /閒時任務,即使界面語言切換爲英文,輸入名不變。

安裝前建議先通讀一遍源碼與 docs/ARCHITECTURE.md:插件只在本機讀寫 ~/.dsh/offpeak-queue.json,本身不聯網(積分也不向 GLM 服務器查詢),但仍應確認代碼與許可證(MIT,© 2026 Thomas-zz)符合你的使用環境。倉庫內測試用 node --test,另有會話日誌安全檢查腳本與日誌修復腳本可配合驗證。

結語

這個插件的價值不在於讓任務變快,而在於把「時段」變成可調度的資源:提交時零成本,執行時落在模型自己的閒時窗口,上下文留在原對話裏,省了多少在統計頁裏有據可查。對於日常工作中那些不急但一定會做的事,這是一條可以直接落地的流水線。

目錄頁:https://www.skillhub.cn/plugins/Thomas-zz/dsh-offpeak-queue
源碼與 README:https://github.com/Thomas-zz/dsh-offpeak-queue

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

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

小夜