前言¶
在 DeepSeek Harness(DSH)裏日常對話,發送時機往往只取決於「寫完沒有」,很少和 API 計價時段對齊。DeepSeek 對調用量分高峯與谷時計價,谷時約爲高峯半價;若你在工作日 9 點到 12 點、14 點到 18 點(北京時間)頻繁點發送,費用會按全價結算。手動記時段、到點再發,對多會話、帶附件的長對話並不現實。
下面介紹社區插件 谷時發送(@carbonzhao/dsh-offpeak-send,維護者 CarbonZhao-02692,分類:工作流)。它在輸入框權限選擇模塊右側增加「谷時」開關:開啓後,高峯時段按發送會把消息(含附件)排隊,到下一個谷時開始後按可配置的 buffer(默認 3 秒)自動投遞;處於谷時則立即發送,行爲與未開開關時一致。
這是什麼¶
一句話:DSH Web 輸入區的 off-peak send queue——高峯攔截入隊,谷時到點由宿主代爲 followup,排隊可跨瀏覽器關閉與 DSH 重啓持久化。
插件以 npm 包 @carbonzhao/dsh-offpeak-send 發佈(當前版本 0.1.1,MIT),倉庫:CarbonZhao-02692/dsh-offpeak-send。README 記載已在 DSH Web 0.2.1-rc.5 上完成真機驗收(開關位置、排隊、倒計時、立即發送、修改、取消、關閉開關時的三按鈕彈窗、到點投遞、設置面板、附件落盤與自動清理等)。
DSH 生態主張「一切皆插件」;目錄頁 SkillHub 上的條目 與 GitHub 均爲社區維護,與 DeepSeek / 幻方無官方從屬關係。
計價時間模型(插件依據)¶
插件按固定 UTC+8 判定相位,不讀瀏覽器本地時區;2026 年法定節假日表來自 lib/core/holidays.js(國辦發明電〔2025〕7 號,33 天),未列年份按普通工作日處理。
| 項目 | 規則 |
|---|---|
| 高峯(全價) | 北京時間週一至週五 09:00–12:00、14:00–18:00,法定節假日除外 |
| 谷時(半價) | 其餘時間(含午休、晚間、週末、法定節假日);調休上班的週六按谷時處理 |
| 延遲投遞點 | 下一谷時起點 + buffer(默認 3 秒,可在 1–10 秒間調節) |
| 最長等待 | 約 4 小時(例如 14:00 發送,18:00:03 投遞) |
判斷髮生在按發送的那一刻;入隊後相位變化不會重新評估,到 sendAt 即投遞。宿主重啓時會對過期且仍處高峯的項改期到下一谷時起點 + buffer。
核心功能¶
輸入區開關與 dock¶
開關掛在 DSH 槽位 conversation.input.left(0.2.1-rc.5 起位於權限選擇塊緊右側)。dock 條在 conversation.input.dock(輸入框上方),展示排隊條目、目標時刻與倒計時。
| 狀態 | chip 表現 | 行爲 |
|---|---|---|
| 開關關閉 | 「谷時」,灰點 | 全部直通 |
| 開 + 谷時 | 「谷時」,綠點 | 立即發送 |
| 開 + 高峯 | 「谷時 HH:MM 後發」,橙點 | 攔截、附件落盤、入隊 |
右鍵 chip 或長按約 600 ms 可打開設置面板(buffer、當前相位、節假日只讀表、隔離區與清理記錄、恢復附件入口等)。關閉開關時若當前會話仍有排隊,會彈出「關閉谷時發送?」——可選全部清除、全部立即發送或取消。追問 / 插話(steer)不排隊,僅對普通發送生效。
dock 每條提供「立即發送」「修改」「取消」;修改會先取消該條並把正文放回輸入框(有附件時需二段確認)。
宿主排隊與投遞¶
高峯攔截時:附件經 POST /stage 落盤爲宿主工件引用,再 POST /enqueue 寫入 outbox。存儲域爲 dsh_offpeak_send v1;單 timer 調度,同會話 FIFO 串行投遞,跨會話互不阻塞。投遞路徑爲 resolveAgent → createUserMessage → agent.followup,來源標記爲真實用戶。失敗最多重試 3 次(退避 5s / 15s / 60s)。
路由前綴 /dsh-offpeak-send(插件路由不需要 GUI token)。配置持久化在 <DSH_HOME>/offpeak-send/config.json。
附件與清理¶
因 DSH 宿主暫無附件刪除 API,插件對未引用且已登記 orphan 的對象採用「先移入隔離區、7 天后刪除」的兩段式清理;設置面板可在窗口期內恢復。觸發包括宿主啓動後約 10 分鐘、每天 03:00、孤兒登記去抖 15 分鐘等(詳見 README)。
已知限制(使用前宜知)¶
- 單附件 32 MB、單條最多 20 個附件;全局隊列 100 條、單會話 20 條(超限 429 queue-full)。
- 模型是否支持圖像靠模型名啓發式,可能誤判;不支持時會省略 image 塊並在正文尾部說明。
- 節假日表目前覆蓋 2026;後續年份需維護
holidays.js。 - 頁面刷新後 dock 依賴輪詢恢復(可見時約 3 秒,隱藏時約 10 秒),非實時推送。
安裝與啓用¶
在 DSH 環境中安裝 npm 包(命令來自倉庫 README):
npm i @carbonzhao/dsh-offpeak-send
安裝後重啓 dsh web,輸入框權限選擇模塊右側會出現「谷時」開關。插件以當前 DSH 進程權限運行,安裝前宜瀏覽源碼與 MIT 許可證,確認符合你的安全與合規要求。
典型用法¶
- 開啓「谷時」開關,在工作日高峯時段編輯消息並普通發送;chip 顯示「谷時 HH:MM 後發」,dock 出現倒計時。
- 需要立刻發出時,在 dock 點「立即發送」;想改文案點「修改」;誤發高峯可「取消」單條。
- 谷時時段(含週末、夜間)發送則綠點、立即投遞,無需排隊。
開發或自測時,週末/夜間天然爲谷時,難以自然製造排隊。README 提供通過 POST /config 設置調試字段 forceWorkday 與 peak 的方式(缺省關閉);自測結束後應還原爲生產語義。示例:
curl -X POST -H 'content-type: application/json' \
--data '{"forceWorkday":true,"peak":[[0,70]]}' \
http://127.0.0.1:3080/dsh-offpeak-send/config
curl -X POST -H 'content-type: application/json' \
--data '{"forceWorkday":false,"peak":null}' \
http://127.0.0.1:3080/dsh-offpeak-send/config
GET /config 返回的 phase 應與頁面 chip 一致;若不一致,可能是瀏覽器緩存了舊的 client bundle,需按 README 說明帶緩存破壞參數重開頁面後再驗證。
適用場景¶
適合長期用 DSH Web、對話量集中在工作日白天、希望把非緊急發送對齊到谷時計價窗口的開發者或個人用戶。不適合既要 steer 實時插話、又希望插話也排隊省價的場景(steer 不排隊)。若你無法接受隊列上限、7 天附件隔離窗口或節假日表需手工逐年更新,應評估後再啓用。
結尾¶
谷時發送把「何時點發送」和 DeepSeek 高峯/谷時規則綁在一起:開關開着,高峯入隊、谷時到點自動投遞,排隊與附件在宿主側持久化。目錄與詳情見 SkillHub,源碼與完整 API、測試說明見 GitHub 倉庫 README。