前言¶
DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。在默认配置下,指向 OpenCode 的模型请求往往无法正常工作。这通常是因为缺少特定的网关来源头、会话 ID 识别,或者是免费版模型缺少工具模式定义。dsh-opencode-patch 是一个专门解决这些网络层协议问题的 DSH 插件。
这是什么¶
这是一个 DeepSeek Harness 主机插件,由 viztor 维护。它的核心作用是确保 OpenCode Zen 和 Go 免费层级模型在 DSH 环境中可用。它通过修复网络层的缺失协议(如会话亲和性、请求来源头),解决请求被拒绝或功能受限的问题。
核心功能¶
- 会话亲和性:实现确定性的
ses_…会话哈希,支持跨多轮对话、子智能体和分支的 KV 缓存亲和性。 - 网关来源恢复:恢复
User-Agent、x-opencode-client、x-opencode-project以及父会话继承链。 - 免费版工具回退:为免费版模型提供
read和bash工具模式定义,解决因缺少工具定义导致的 403 错误。 - 模型目录与计费:提供基于 models.dev 的离线缓存和后台刷新,展示模型名称、价格和上下文窗口;支持实时双模式计费仪表盘。
安装与启用¶
- 安装依赖:确保环境满足 Node 24+。进入 Web 配置目录并安装包。
- 启用插件:在配置文件的
dsh.profile.bundles数组中添加该包。 - 配置凭证:设置
OPENCODE_GO_API_KEY(Go 订阅)或OPENCODE_API_KEY(Zen 按量付费)。 - 重启服务:重启
dsh web服务。
典型用法¶
安装命令如下:
cd ~/.dsh/profiles/web && npm install dsh-opencode-patch
在 ~/.dsh/profiles/web/package.json 中启用插件:
{
"dependencies": {
"dsh-opencode-patch": "^0.14.0",
},
"dsh": {
"profile": {
"bundles": ["dsh-opencode-patch"],
"patchReload": "live",
},
},
}
适用场景与注意¶
- 默认状态不工作:不安装此插件时,OpenCode 模型默认无法工作。
- 路由机制:OpenCode 提供 4 种不同的 API 形状,此插件根据模型进行路由,而非全局修补。
- 免费版限制:插件不提供 Zen 免费版 ID,头部信息主要用于付费路由。
- 非全局影响:其他提供商(DeepSeek、OpenAI 等)的流量不受影响,保持字节级相同。
- 目录信息:未安装插件时,目录信息非常稀疏(无名称、价格、上下文窗口)。
总结¶
dsh-opencode-patch 通过在特定路由上恢复 OpenCode 所需的网络层协议元素,解决了模型不可用的问题。它不提供全局修补,确保其他提供商流量不受影响,并提供了完整的模型目录和计费显示。