dsh-peak-guard:在 DSH 中按模型目錄攔截 DeepSeek 峯時計費調用

前言

在 DeepSeek Harness(DSH)裏走 OpenCode Go 等推理通道時,部分 DeepSeek 模型會在特定時段按倍率加價。若智能體在峯時仍持續發起流式請求,賬單和調試成本都會抬升。手動記時間表或改代碼硬編碼窗口,既難維護,也難跟上廠商改價。

dsh-peak-guard 是維護者 yamahei21python 發佈的 DSH bundle,分類爲模型推理。它在發請求前讀取提供商模型目錄中的 cost.multipliers,僅在判定爲峯時且未手動解除時攔截調用,並以可復現的 CLI 做短時放行。

這是什麼

dsh-peak-guard(npm 包名同插件 id)面向已使用 DSH、且通過配置中的 provider(默認 opencode-go)路由 LLM 調用的開發者。插件不替換你的 API Key、endpoint 或模型列表行,只增加峯時守衛邏輯;峯時窗口不寫死在倉庫裏,而是隨 opencode-go 目錄更新。

許可證爲 MIT;package.json 標明版本 0.1.0,DSH 引擎要求 >=0.2.0-rc.1 <0.3.0(developer preview 階段)。

核心功能

下面介紹插件在資料中明確描述的行爲。

  1. 掛載點:掛鉤 llm/stream waterfall,在流式推理發出前介入。
  2. 目錄拉取:請求 https://opencode.ai/inference/go/v1/models(10 分鐘緩存;失敗時保留上次成功目錄;失敗負緩存 60 秒)。
  3. 峯時判定:用當前 UTC 時間評估各模型 cost.multipliers[].when(utc_days、utc_hours 及 gte/lt、any/all)。
  4. 攔截方式:命中峯時且無有效 bypass 時,產出終端 finish 片段,code: PEAK_GUARD,語義上對應 HTTP 429,回合乾淨結束而非進程崩潰。
  5. 目錄不可用時的回退:使用文檔記載的平日窗口 UTC 01:00-04:00 與 06:00-10:00(對應 JST 平日 10:00-13:00 / 15:00-19:00 一類表述,以目錄爲準)。
  6. 守衛範圍:僅阻止經配置的 provider id 發出的調用(默認 opencode-go);Claude Code、Codex 等其他客戶端不在此包覆蓋範圍內。

攔截時用戶可見的示例輸出(README 日文說明)大意如下:當前模型因峯時倍率停止,並提示剩餘峯時時間與臨時解除命令 npx dsh-peak off。

安裝與啓用

先做插件安裝,再重啓 DSH。bundle 安裝會把 guard 行寫入 profile,無需手寫插入 cordis.patch.yml 中的 guard 片段。

npm(推薦):

dsh plugin --profile web add dsh-peak-guard

未走 registry、從 GitHub 添加時:

dsh plugin --profile web add github:yamahei21python/dsh-peak-guard

安裝完成後重啓 dsh。

提供商配置:bundle 只安裝守衛;模型 provider 行仍由你維護(API Key、endpoint、models)。OpenCode Go 的示例片段見倉庫 README,路徑爲 ~/.dsh/profiles/web/cordis.patch.yml,包含 llm-pi-ai 下 opencode-go 的 baseURL、models 列表,以及 agent-default-model 的 provider / model 指向。密鑰可通過 DSH Models 頁的 credentials 服務保存,或導出環境變量 OPENCODE_GO_KEY。

可選的插件級覆蓋(cordis.patch.yml 中 peak-guard 行):

- id: peak-guard
  config:
    providers: [opencode-go]
    modelsUrl: https://opencode.ai/inference/go/v1/models

典型用法:峯時攔截與手動解除

經上面的步驟啓用後,峯時內請求會被擋住。需要臨時繼續開發時,用包自帶的 dsh-peak 二進制(通過 npx 調用):

npx dsh-peak off          # 60 分鐘
npx dsh-peak off 30       # 30 分鐘
npx dsh-peak on           # 立即恢復攔截
npx dsh-peak status

狀態寫入默認與 OpenCode guard 共用的狀態文件,形如:

{"until":1794017000000,"minutes":60,"set_at":"2026-11-07T02:00:00.000Z"}

可用環境變量 DSH_PEAK_BYPASS 覆蓋狀態文件路徑。守衛採用 fail-closed:文件缺失或損壞時,峯時內仍視爲應攔截。

本地開發可強制行爲:

PEAK_GUARD_FORCE=peak dsh web   # 始終攔截
PEAK_GUARD_FORCE=off  dsh web   # 始終放行

適用場景與注意

適合:已在 DSH web(或其它已配置 profile)中使用 OpenCode Go 調用 DeepSeek,希望自動跟目錄倍率、又保留可控的短時 bypass 的開發者。

需注意:

  • 插件在當前 DSH 進程權限下運行;安裝前請自行查看 GitHub 源碼 與 MIT 許可證。
  • 價格與峯時窗口完全來自提供商目錄,本包不隨倉攜帶價目表。
  • 需要全客戶端統一控費時,應在網關層另做 guard,而非僅依賴此 bundle。
  • DSH 仍爲 developer preview,engines.dsh 版本區間較窄,升級 DSH 主版本前請覈對兼容性。

結尾

dsh-peak-guard 把峯時判斷交給模型目錄、把放行交給 dsh-peak,在 DSH 流式路徑上減少無意高價調用。目錄介紹見 SkillHub 插件頁,安裝與配置細節以 GitHub 倉庫 README 爲準。

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

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

小夜