前言¶
DeepSeek Harness(DSH)採用插件化架構。在使用 OpenCode Zen 的免費模型車道時,通常需要 API 密鑰才能訪問,且直接集成到模型選擇器較爲困難。dsh-opencode-free-model 插件解決了這一痛點,它將 OpenCode Zen 免費模型車道直接放入模型選擇器,且無需 API 密鑰。
插件介紹¶
這是一個 Host-only 的 cordis 插件。它在 DSH 的 llm 服務上註冊兩個 provider 路由,將 OpenCode Zen 支持的所有三種線纜協議(Chat Completions / Responses / Messages)解碼爲 Harness 的 StreamChunk 協議,並使用後臺探測來決定哪些模型被廣告。
核心功能¶
- 無需密鑰:該車道通過池化憑證(
Authorization: Bearer public)進行密鑰管理。插件不存儲任何用戶的祕密。 - 三種線纜協議:實現了三種網關方言的解碼,包括
/zen/v1/chat/completions、/zen/v1/responses和/zen/v1/messages。協議由請求的形狀決定。 - 指紋工具門控:免費層要求請求體必須聲明一個名爲
read的工具。插件聲明瞭該工具,並提供了bash/glob/grep以擴大指紋特徵,通過將pwsh轉換爲bash來填補缺失的槽位。 - 穩定會話:每個對話映射到一個穩定的
ses_…ID,這是網關解碼後的 ID 形式。ID 的生成方式確保了穩定性。 - 歸屬權:Harnes 要求每個請求都有歸屬權 User-Agent,該車道拒絕特定的產品令牌。插件保留了歸屬權,但將產品名稱重寫爲
dsh,同時保留了版本和來源 URL。 - 可用性探測:一個併發度爲 2 的後臺探測將每個模型分類爲可用/區域阻塞/不可用/限流/未知。出口變更會立即觸發重新探測。
- 區域路由:區域敏感模型被路由到
opencode-free-model-region路由。 - 推理截止續寫:在推理和未看到任何內容(無文本、無工具調用、無結束令牌)的情況下中斷的輪次,將從檢查點恢復。
- 思考級別控制:
reasoning_effort是真正的控制手段。每個模型都廣播它實際接受的級別,插件將選定的級別原樣轉發。
安裝與啓用¶
使用以下命令安裝插件:
dsh plugin --profile desktop add github:artorias-zj/dsh-opencode-free-model
安裝後,重啓 DSH,模型選擇器中會出現一個 OpenCode Free 組。
配置¶
配置來自 bundle patch 的 config 鍵,並在每次掛載時應用。如果 bundle patch 中省略了某個鍵,將回退到默認值。
- insert:
- id: opencode-free-model
name: 'dsh-opencode-free-model'
config:
enabled: true # 主開關;false 不廣告任何模型並因 CONFIG_DISABLED 導致調用失敗
exposeRegionModels: true # 在第二個路由上廣告區域受限的模型
probeIntervalMinutes: 15 # 後臺重新探測週期(分鐘)
defaultMaxTokens: 32768 # 每輪輸出上限
streamRecovery: true # 允許一次推理檢查點續寫
環境變量 OPENCODE_FREE_MODEL_BASE 可覆蓋上游根 URL(config.baseUrl 優先)。
兼容性與注意¶
- 運行環境:需要 Node.js
^22.15.0 || >=24.0.0。 - DSH 版本:針對 DeepSeek Harness
0.2.0-rc.2構建。 - 許可證:MIT License。
- 代碼類型:純 ESM,無原生模塊,無構建步驟,無運行時依賴。無瀏覽器代碼(無
dsh.client聲明)。
結尾¶
該插件通過將 OpenCode Zen 免費模型車道集成到 DSH 中,解決了無密鑰訪問的問題,並通過穩定會話和協議解碼提供了穩定的使用體驗。
GitHub 倉庫:https://github.com/artorias-zj/dsh-opencode-free-model