DeepSeek Harness 插件:OpenCode Go 模型同步

前言

DeepSeek Harness(DSH)設置頁內置的「獲取可用模型」按鈕對 catalog 裏的 provider 不髮網絡請求,它直接返回打包在 pi-ai npm 包裏的靜態快照(OpenCode Go 通常是 19 個模型)。服務端的模型列表變動頻繁(上新、下線、暫不可用),靜態快照永遠滯後。要獲取真實的可用模型列表,需要走真實路徑:GET /models 拉全集 → 逐個實測 → 寫回 settings.yaml。

插件介紹

dsh-opencode-models 是 DeepSeek Harness(DSH)的一個插件。在設置頁新增一欄「OpenCode Go 模型同步」,一鍵拉取 OpenCode Go 服務端的全部模型、逐個實測可用性與視覺能力,並把可用模型寫回 llm-pi-ai 的模型列表。

  • 維護者:Retr67
  • 許可證:MIT
  • 技術特點:零構建、零運行時依賴

安裝與啓用

使用 npx 安裝:

npx -y @deepseek-ai/dsh plugin --profile web add https://github.com/Retr67/dsh-opencode-models

安裝後重啓 dsh web 並刷新頁面。

使用步驟

  1. 打開 dsh 設置,找到 OpenCode Go 模型同步;
  2. 點擊 「更新最新 OpenCode Go 模型列表」;
  3. 等待進度完成(約 1 分鐘:拉列表 + 全部模型兩輪探測)。頁面會顯示新增、保留、移除以及服務端拒絕的模型。

核心功能與策略

插件對每個模型發兩類微型真實請求(max_tokens: 1,併發 6)來判定狀態:

  • 文本 ping:200 → 可用;400/401 → 明確拒絕(不進列表);403 → 需數據政策 opt-in;5xx → 暫時故障(保留);網絡錯誤 → 無法判定(保留)。
  • 圖像 ping:發送 1x1 PNG,200 → 標註 input: [text, image];否則純文本。

寫回 settings.yaml 時有以下保護策略:

  1. 無變化不寫:列表與當前配置一致時不觸碰文件。
  2. 大量失敗中止:超過一半模型”無法判定”(網絡層異常)時放棄本次寫回,絕不清空列表。
  3. 保留手工元數據:已有條目的 name / contextWindow / maxTokens 原樣保留。
  4. 新條目不寫死規格:新模型只寫 id / name(+ 實測的視覺、思考檔位),contextWindow 與 maxTokens 交給 dsh 自己從內置的 pi-ai catalog 解析真實規格。

上下文窗口與最大輸出來源

模型條目沒有聲明 contextWindow / maxTokens 時,插件按以下順序解析:

  1. 內置 pi-ai catalog 裏該模型的真實條目(例如 kimi-k3 → 上下文 1048576、輸出 131072)。
  2. catalog 不認識時,回落到路由的 defaultContextWindow / defaultMaxTokens(dsh 默認 262144 / 32768)。

由此推論:不要手填猜的值,一旦條目裏寫了 contextWindow,它就永久覆蓋 catalog 的真實規格。

配置與兼容性

默認目標 provider 是 opencode-go。如需調整,在 profile 的 cordis.patch.yml 裏按 entry id 覆蓋:

# ~/.dsh/profiles/web/cordis.patch.yml
- id: opencode-models
  config:
    provider: opencode-go
    concurrency: 6
    timeoutMs: 25000
  • 兼容性:dsh ≥ 0.1.0-rc.7(在 0.1.2-alpha.x 上開發驗證)。
  • 思考強度:同步的模型帶 reasoningEfforts 聲明,WebUI 出現思考強度選擇器(關閉 / Minimal / Low / Medium / High / Max)。手動設爲 false 可禁用。

結尾

本插件通過真實探測填補了靜態快照的缺口,能自動補齊上新模型、移除下線模型,並標註視覺能力。所有探測請求會攜帶該 provider 路由配置裏的 headers,部分聚合網關(如 OpenCode Go)要求 x-opencode-session 請求頭,請確保配置正確。

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

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

小夜