前言¶
DeepSeek API 採用峯谷定價:工作日部分時段爲高峯,單價約爲空閒時段的約 2 倍。用 DeepSeek Harness(DSH)跑長回合、多步工具調用時,若不在高峯邊界做提示,容易在不知情的情況下持續消耗高峯額度。手動查定價表、對照北京時間也不適合嵌入日常開發流。
下面介紹的 dsh-peak-hour-reminder 是 DSH 的本地 host 插件(維護者 ggghhh-11),在回合內按北京時間判斷峯谷,插入可見提醒;若回合從空閒跨入高峯,在安全步驟邊界暫停並詢問是否繼續;節假日數據過期時自動聯網更新。許可證爲 MIT,當前 package 版本爲 0.1.0,需 Node.js >= 20。
這是什麼¶
插件名稱:dsh-peak-hour-reminder。分類爲工作流,託管於 GitHub ggghhh-11/dsh-peak-hour-reminder,社區目錄頁見 SkillHub 插件頁。DSH 生態主張「一切皆插件」;SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。
它解決三類問題:高峯時段逐回合提醒、跨峯暫停詢問、以及中國法定節假日數據的自動維護(與官方峯谷規則中的「排除法定節假日」一致)。
高峯規則(與官方定價對齊)¶
規則以 DeepSeek 官方 API 峯谷定價爲準(README 註明 2026-11-03 覈對)。北京時間下:
| 時間段 | 狀態 |
|---|---|
| 週一至週五 09:00–12:00、14:00–18:00 | 高峯 |
| 週一至週五其餘時間 | 空閒 |
| 週六、週日全天 | 空閒 |
| 中國法定節假日全天 | 空閒 |
換算關係與來源見倉庫 README 中的 DeepSeek API Models & Pricing 及國務院節假日通知鏈接。內置基線含 2026 年完整假期和 2027 年元旦;2027 年其餘假期待官方通知或由配置 / 自動更新補全。
核心功能¶
高峯提醒¶
每個用戶回合在第一次調用模型前判斷北京時間。只有高峯時才插入一條可見的「⏰ 高峯時段提醒」;空閒時段完全靜默。提醒包含當前時間、星期、所在窗口、距空閒還有多久;可配置 showPriceHint 提示高峯期單價約爲空閒的約 2 倍。
跨峯暫停¶
回合在空閒時段開始、執行中進入高峯時,在下一個安全步驟邊界彈出詢問卡:
- 「繼續」:繼續後續步驟,並寫入一條用戶選擇繼續的 notice;
- 「暫停」:結束本輪後續步驟,寫入持久暫停 notice;已完成的消息、工具調用與結果已保存,之後發送「繼續」即可恢復。
不會硬中斷正在流式生成的回覆或正在執行的工具,避免丟失半截輸出或未完成的工具結果。同一條消息觸發的同一回合、同一高峯窗口只問一次;跨入下一個高峯窗口會再問。配置項 pauseOnPeakCrossing 默認 true。
節假日數據自動更新¶
數據文件記錄 coverageThrough(已完整覆蓋到哪一年)。噹噹前年份超過覆蓋範圍,或 Q4 預取下一年時,自動請求配置的節假日 JSON URL(默認 https://timor.tech/api/holiday/year/{year})。更新成功後刪除過時年份(默認保留上一年,retentionYears 可調)。更新失敗或數據源尚未發佈時保留舊數據,按工作日規則繼續判斷,並在提醒裏註明「數據未更新」。updateEnabled: false 可完全離線。
安裝與啓用¶
插件以當前 DSH 進程權限運行;安裝前應自行查看倉庫源碼與 MIT 許可證。
方式一:GitHub 安裝(web profile)¶
在普通 web profile 下執行:
dsh plugin --profile web add github:ggghhh-11/dsh-peak-hour-reminder
然後重啓 dsh web。插件包內的 cordis.patch.yml 會自動註冊 host 行,不需要手動改 profile 補丁。
方式二:DSH Desktop(desktop profile)¶
Desktop 的 desktop profile 由應用獨佔管理,CLI 的 dsh plugin --profile desktop ... 會被拒絕。可在應用內 設置 → 插件 從本地路徑安裝,或按 README 在 %USERPROFILE%\.dsh\profiles\desktop\package.json 中用 link: 依賴並在 dsh.profile.bundles 中加入 "dsh-peak-hour-reminder",在 profile 目錄執行 pnpm install 後重啓 DSH Desktop。
注意:不要在 profile 的 cordis.patch.yml 裏再手動 insert 同一 id,否則 duplicate loader entry 會導致啓動失敗。
配置¶
在 profile 的 cordis.patch.yml 用 id 覆蓋(不是 insert):
- id: dsh-peak-hour-reminder
config:
timeZone: Asia/Shanghai
peakWindows:
- { start: '09:00', end: '12:00' }
- { start: '14:00', end: '18:00' }
weekendOffPeak: true
pauseOnPeakCrossing: true
showPriceHint: true
updateEnabled: true
updateUrls:
- https://timor.tech/api/holiday/year/{year}
retentionYears: 1
常用項包括:enabled 總開關;timeZone 默認 Asia/Shanghai;peakWindows 支持跨午夜;extraHolidays 補額外 YYYY-MM-DD;dataDir 默認 $DSH_HOME/peak-hour-reminder。配置非法時回退默認值並打印 warning,不會拖垮 DSH 加載。
節假日數據默認路徑:Windows 爲 %USERPROFILE%\.dsh\peak-hour-reminder\holidays.json;macOS/Linux 爲 ~/.dsh/peak-hour-reminder/holidays.json。
臨時禁用(不卸載):
- id: dsh-peak-hour-reminder
disabled: true
典型用法與驗證¶
本地測試¶
倉庫內運行:
node scripts/run-tests.mjs
真實網絡冒煙(期望 2026 年 status: "complete"、holidays: 33):
node scripts/net-check.mjs
驗證跨峯暫停¶
若當前不是高峯,可臨時把窗口設爲全天並打開測試鉤子:
- id: dsh-peak-hour-reminder
config:
peakWindows:
- { start: '00:00', end: '23:59' }
debugForcePause: true
debugForcePause 強制把回合視爲從空閒開始,從而在第 2 步觸發暫停詢問。驗證完請刪除該項並恢復默認窗口。
適用場景與注意¶
適合長期用 DSH Web 或 Desktop 做 API 調用、且希望峯谷邊界可見、長回合可主動暫停的開發者。
已知限制(摘自 README):暫停只在 pre-step 邊界;不在 step 1 暫停;單步無工具回合沒有後續步驟可暫停;subagent 不提醒、不暫停;無 user-questions answerer 的 headless 環境會降級爲「暫停 + 持久 notice」。隱私方面,唯一齣站請求爲配置的節假日 URL,不發送會話內容或用戶標識。
卸載時從 profile package.json 與 dsh.profile.bundles 移除依賴,刪除 node_modules 中對應包並重啓 DSH;可選刪除 ~/.dsh/peak-hour-reminder 數據目錄。
結尾¶
dsh-peak-hour-reminder 把 DeepSeek 官方峯谷時段、法定節假日與 DSH 回合邊界綁在一起:高峯有提醒,跨峯可問,假期數據可自動維護。需要安裝命令與字段說明時,以倉庫 README 爲準。