前言¶
DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。dsh-nightshift 是一個第三方插件,旨在解決 DeepSeek 模型價格在夜間(UTC+8)顯著低於白晝的問題。智能體通常在用戶工作的高峯時段運行,導致計算成本高昂。該插件允許在高峯時段將任務排隊,在低峯時段釋放,並自動生成節省報告。
插件定位¶
- 名稱:dsh-nightshift
- 所有者:mikasaxin529
- 許可證:MIT
- 核心價值:在高峯時段排隊,在低峯時段釋放,閱讀節省報告。
核心功能¶
- One-chip enqueue:對話輸入欄中的 🌙 芯片,用於將當前草稿加入隊列。默認目標爲繼續當前會話;新會話按鈕則運行在獨立會話中。
- Peak freeze:在高峯時段窗口內停止調度。如果任務已經在運行,它將自然完成(已完成的工作不會中斷)。
- Off-peak drain:在低峯時段窗口內,一次調度一個任務,任務間間隔由
drainGapMs控制。 - Failure policy:根據失敗原因分類處理:
error/interrupted使用指數退避重試(有上限);max-tokens自動發送繼續提示(有上限);blocked暫停等待人工介入;aborted視爲用戶取消。 - Savings ledger:按實際發生時的價格窗口(高峯或低峯)對 token 差異進行計費,確保跨窗口和重試任務的賬目準確。
- Daily reports:當隊列爲空或高峯時段返回時生成報告。
- Durable queue:支持重啓恢復,重啓時會重新排隊未完成的任務(至少一次語義)。
- Panel:側邊欄入口,顯示窗口橫幅、實時任務行、隊列管理(運行/取消)、歷史記錄和最新報告。
安裝與啓用¶
確保已安裝 DeepSeek Harness 並使用 web profile(進程必須保持駐留)。Node.js 版本需 >= 20。
執行官方安裝命令:
dsh plugin --profile web add github:mikasaxin529/dsh-nightshift
安裝後重啓 DSH 或等待 HMR 重新加載。
配置說明¶
配置項位於 loader 配置的 nightshift 條目下。默認值如下:
| key | default | meaning |
|---|---|---|
timeZone |
Asia/Shanghai |
IANA 時區,用於解釋窗口 |
peakWindows |
09:00–12:00, 14:00–18:00 |
[start, end) 牆鍾窗口;可能跨午夜;[] 表示永不高峯 |
peakPricePerMTok |
2 |
高峯時段每百萬 tokens 價格(請填入真實數值) |
offPeakPricePerMTok |
1 |
低峯時段每百萬 tokens 價格 |
currency |
¥ |
顯示貨幣 |
tickMs |
30000 |
窗口檢查 / 調度間隔 |
maxRetries |
3 |
error/interrupted 輪次的重試次數 |
retryBaseMs |
60000 |
指數退避基數 |
retryFactor |
2 |
指數退避因子 |
retryMaxMs |
1800000 |
指數退避上限 |
continuationLimit |
3 |
max-tokens 情況下自動發送繼續提示的最大次數 |
continuationPrompt |
繼續 |
繼續提示的文本 |
drainGapMs |
5000 |
調度之間的暫停時間 |
allowRunNow |
true |
是否允許面板上的「立即運行」按鈕 |
reportRetentionDays |
30 |
報告保留天數 |
exposeTool |
false |
預留 v1.1 (nightshift_enqueue 工具) |
典型用法¶
在白天高峯時段編寫任務,點擊側邊欄的 🌙 芯片加入隊列。插件會自動凍結調度。等到夜間低峯時段,插件會自動逐個處理任務。任務完成後,系統會生成一份每日節省報告。
注意事項¶
- 價格簡化:緩存定價是簡化的,所有 token 桶均按同一窗口價格計費,報告中的節省可能較爲保守。
- 至少一次:任務在重啓時會重新排隊。請確保任務具有冪等性或可重運行。
- 單任務併發:同一時間只處理一個任務。
- 價格聲明:插件不檢查實際價格 API,使用你聲明的
peakPricePerMTok和offPeakPricePerMTok。 - 配置變更:修改配置會觸發 HMR 重載。
結語¶
dsh-nightshift 通過將任務調度與價格窗口綁定,幫助用戶在高峯時段排隊、在低峯時段釋放,最終獲得一份成本節省報告。其開源地址爲 https://github.com/mikasaxin529/dsh-nightshift。