前言¶
DeepSeek Harness (DSH) 開發者在對接 OpenCode Zen 或 Muse 模型時,常遇到協議不兼容、會話頭缺失或 reasoning 數據過濾困難的問題。直接修改 node_modules 容易引入風險,且維護成本高。下面介紹一個社區維護的獨立插件,用於處理這些兼容性問題。
插件定位¶
這是一個 DeepSeek Harness 的獨立 Cordis 插件,由 dooooling 維護。它提供了一套 OpenCode Zen 請求所需的會話格式、客戶端版本頭以及 Muse reasoning 回傳兼容處理方案。插件獨立運行,不依賴構建腳本,且不提供模型、密鑰或額度。
核心功能¶
- 會話與頭處理:爲 OpenCode Zen 請求提供會話格式和客戶端版本頭,支持轉換會話 ID 和生成請求 ID。
- Muse 兼容:處理 Muse reasoning 回傳兼容性,從 Muse Responses 請求中刪除加密的 reasoning 內容。
- 協議支持:支持
openai-responses協議。 - 免費層補齊:補齊免費層兼容性工具聲明(如 bash、edit、glob 等)。
安裝與啓用¶
安裝:
安裝前請先停止正在運行的 DSH。使用以下命令安裝指定版本:
dsh plugin --profile web add github:dooooling/dsh-opencode-compat#v0.1.3
dsh web
配置 Provider:
在 llm-pi-ai 提供方配置中,Muse 必須選擇 openai-responses 協議,並設置正確的 baseURL 和模型 ID。已有提供方配置繼續生效。
llm-pi-ai:
providers:
opencode-muse:
apiKeyEnv: OPENCODE_API_KEY
api: openai-responses
baseURL: https://opencode.ai/zen/v1
models:
- id: muse-spark-1.3-contributor-free
啓用插件功能:
默認啓用身份頭、reasoning 和免費層兼容處理。需要自定義時,在 ~/.dsh/profiles/web/cordis.patch.yml 添加覆蓋配置(已有內容應合併):
- id: opencode-compat
config:
enabled: true
clientVersion: 1.18.31
rewriteClientHeaders: true
stripMuseReasoning: true
completeFreeTierFingerprint: true
作用範圍與限制¶
- 運行範圍:僅處理 HTTPS
opencode.ai的 POST 請求,路徑限定爲/zen/v1/或/zen/go/v1/下的responses、chat/completions、messages。它會全局包裝globalThis.fetch,同一 DSH 進程內所有匹配請求都會受影響。 - 依賴與權限:包直接包含可執行 ESM,無需 prepare/build 腳本。插件不讀取憑據文件、不記錄請求正文或密鑰、不修改模型列表和默認模型。
- 注意事項:這是一個社區兼容方案,非 DeepSeek 或 OpenCode 官方插件。客戶端身份頭會被改爲配置的版本;上游可能改變校驗或拒絕第三方使用。插件不保證免費額度、地區可用性或服務條款允許的接入範圍。
- 兼容性驗證:僅對 JSON Muse Responses 請求執行 reasoning 過濾。捕獲舊 fetch 引用、使用獨立 HTTP 客戶端或顯式自定義 fetch 的適配器可能繞過插件。完整 DSH 多輪工具執行兼容性尚未驗證。
總結¶
該插件通過獨立補丁的方式,降低了接入 OpenCode Zen 的門檻,重點解決了會話頭和協議兼容問題。開發者應根據實際需求配置,並關注上游服務的協議變更。