dsh-opencode-compat:OpenCode Zen 兼容補丁插件

前言

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 的門檻,重點解決了會話頭和協議兼容問題。開發者應根據實際需求配置,並關注上游服務的協議變更。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜