前言¶
在 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 阶段)。
核心功能¶
下面介绍插件在资料中明确描述的行为。
- 挂载点:挂钩
llm/streamwaterfall,在流式推理发出前介入。 - 目录拉取:请求
https://opencode.ai/inference/go/v1/models(10 分钟缓存;失败时保留上次成功目录;失败负缓存 60 秒)。 - 峰时判定:用当前 UTC 时间评估各模型
cost.multipliers[].when(utc_days、utc_hours及gte/lt、any/all)。 - 拦截方式:命中峰时且无有效 bypass 时,产出终端
finish片段,code: PEAK_GUARD,语义上对应 HTTP 429,回合干净结束而非进程崩溃。 - 目录不可用时的回退:使用文档记载的平日窗口 UTC
01:00-04:00与06:00-10:00(对应 JST 平日 10:00-13:00 / 15:00-19:00 一类表述,以目录为准)。 - 守卫范围:仅阻止经配置的 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 为准。