dsh-session-guard:高峯自動會話門插件

前言

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 設計也保證了插件生態的健壯性。

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

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

小夜