前言¶
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 所需的網絡層協議元素,解決了模型不可用的問題。它不提供全局修補,確保其他提供商流量不受影響,並提供了完整的模型目錄和計費顯示。