前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在 2026-08-17 DeepSeek 實行峯谷計費後,高峯時段(北京時間 9:00-12:00、14:00-18:00)的模型調用單價變爲閒時的 2 倍。對於需要長時間運行會話的場景,手動控制暫停不僅效率低下,也難以做到精準的峯谷錯峯。
dsh-session-guard 插件旨在解決這一問題。它通過自動會話門機制,實現高峯自動暫停、週末模式以及會話級的凍結與恢復,幫助開發者在不修改 DSH 源碼的情況下,實現成本優化。
插件介紹¶
dsh-session-guard 是一個由 drscrewdriver 維護的 DSH 插件,採用 MIT 許可證。
它不需要對 DSH 源碼進行修改或提交 Pull Request,而是通過 dsh plugin 命令和 bundle patch 的方式裝配 Cordis 插件。核心功能包括:高峯自動暫停、週末模式、官方源二維判定、會話級凍結/恢復以及後端自動重試。
核心功能¶
週末模式¶
插件識別週末狀態,基於配置時區的 Intl.DateTimeFormat,避免直接使用裸 getUTCDay() 可能帶來的時區邊界 bug。在週末模式下,插件會忽略峯谷計費規則,允許會話暢快運行。
高峯自動暫停(全局)¶
進入高峯時段(且非週末)時,插件會自動暫停所有處於 running 狀態的根會話。退峯後,所有會話自動恢復運行。這是一個全局開關,無需手動干預。
官方源二維判定(providerGuard)¶
高峯期的攔截策略是精細化的。插件僅在請求目標是 DeepSeek 官方源 時才進行攔截。如果使用本地或第三方 Provider(如 local-35b),無論是否處於高峯期,請求都會正常通過,不受高峯門控影響。判定邏輯依次爲:顯式 ID 名單 → baseURL 端點 → catalog 默認端點 → 內置 ID。
會話級凍結/恢復¶
插件提供了會話級的控制能力。除了自動暫停,還支持通過 POST /session-guard/rpc 接口或 input-traffic 集成的凍結按鈕對特定會話進行凍結或恢復。同時提供了 /pause、/resume、/cancel 手動命令。
後端自動重試¶
在凍結或門控期間,如果發生瞬時失敗(如 error、429、max-tokens),插件具備自適應退避的自動重試機制,直至永久失敗停止。這保證了在暫停期間不會因偶發錯誤導致任務中斷。
Fail-open 靜默降級¶
爲了保證系統的穩定性,插件設計了 fail-open 機制。如果自研會話門不可用、session-guard 未安裝或設置服務缺失,系統將靜默降級,不會因爲這些依賴缺失而導致整個 DSH 進程崩潰。
安裝¶
使用 DSH 的插件管理命令進行安裝。請根據你的宿主版本選擇對應的 dist-tag。
# 安裝 dsh-session-guard (推薦使用指定 dist-tag)
dsh plugin --profile web add dsh-session-guard@dsh-0.1.5
注意事項:
不要依賴裸包名 dsh-session-guard。npm 的 latest 標籤無法同時服務兩條互斥的版本線(兩條線的 engines.dsh 按 semver 預發佈規則互斥)。必須使用指定的 dist-tag(如 @dsh-0.1.5)。
兼容性與限制¶
- 語言支持: v0.1.1 版本已包含日語(
ja)和韓語(ko)字典,但當前官方 DSH 僅通過LocaleRuntime提供zh和en。在原版 DSH 中選擇ja或ko會失敗並提示 locale not registered。需要等待官方 DSH 增加對應 locale ID 後才能正常使用。 - 降級策略: 如前所述,所有依賴項缺失均會觸發靜默降級,確保插件本身不影響宿主運行。
結語¶
dsh-session-guard 提供了一套完整的會話門控方案,結合 DeepSeek 的峯谷計費策略,能有效幫助開發者在保證業務連續性的同時降低調用成本。其 fail-open 設計也保證了插件生態的健壯性。