前言¶
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 设计也保证了插件生态的健壮性。