dsh-peak-hour-reminder:DeepSeek API 高峯提醒與跨峯暫停

前言

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 爲準。

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

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

小夜