dsh-model-advanced:按模型設置默認推理強度與圖片轉交

前言

在 DeepSeek Harness(DSH)裏,模型適配器(adapter)通常按提供商一次性描述模型能力:同一 provider 下往往只有一個「默認推理強度」,也無法表達「純文本模型收到圖片時該怎麼辦」。實際對話裏,快模型和推理模型希望不同的起始 effort;純文本模型若直接丟圖,要麼圖片被丟棄,要麼整輪失敗。社區插件 dsh-model-advanced(維護者 drm-nz,分類:模型推理)在 Settings → Models 頁面底部增加一張配置卡片,並在運行時實現對應行爲:每個模型獨立的默認推理等級,以及爲不能讀圖的模型指定「代讀」模型。

這是什麼

dsh-model-advanced 是 DSH 插件,簡介爲:Per-model default reasoning effort and image handoff for text-only models. A DeepSeek Harness plugin. 配置寫入插件自有命名空間 model-advanced,鍵爲 provider/model,與 adapter 解耦,因此同一 provider 下兩個模型可以各自有不同的默認 effort,adapter 未描述的模型也能設默認項。

目錄頁:https://www.skillhub.cn/plugins/drm-nz/dsh-model-advanced
源碼與說明:https://github.com/drm-nz/dsh-model-advanced(許可證 MIT,package 版本 0.1.0)

核心功能

Models 頁 Advanced 卡片

在模型列表下方,每個已配置模型一行,兩列可設:

列 含義
Model 模型名稱、provider、id
Default reasoning level 對話尚未選擇等級時的起始推理等級;空選項表示不覆蓋
Image understanding 對不能讀圖的模型:指定代其讀圖的模型

默認推理等級如何生效

README 說明通過四處銜接覆蓋「選了等級 / 沒選等級 / 從未選等級」等路徑:

  1. 裝飾 resolveModelInfo,讓模型目錄展示配置的等級,Composer 的 Effort 菜單以此打開。
  2. 裝飾 resolveCallConfig,選模型但未指定等級時,保存配置的等級而非 adapter 自帶默認。
  3. agent/request waterfall 覆蓋從不選等級的入口。
  4. 啓動後一次 reconciliation(composition 事務 settle 之後)對齊全局默認選擇與配置等級。

插件 dispose 時會恢復上述 prototype 裝飾。

圖片轉交(image handoff)

爲不能讀圖的模型配置 delegate 後,當一輪攜帶圖片時:

  1. delegate 調用一次,附帶保留版式的轉寫指令:一行摘要、閱讀順序、各文本區域及約 0–1000 尺度的包圍框、表格用 GFM、圖表與 UI 狀態說明。
  2. 結果以 image transcript note 追加到 step,並命名圖片 id。
  3. note 帶 [dsh-image-handoff:<id>] 標記,從 session 歷史讀回,重試與後續輪次不再對 delegate 計費。
  4. 圖片仍留在對話中;發給純文本模型的 wire 仍是佔位符而非原圖,模型讀的是轉寫文本。

後續追問時,模型可調用:

inspect_image(image_id, question)

同一圖片會再次交給 delegate 並帶上問題,避免純文本模型被固定在一次讀圖結果上。delegate 失敗不會終止整輪,會在 transcript 裏記一條無法讀圖說明。

如何判斷模型能否讀圖

按成本從低到高:

  1. provider 配置裏模型聲明的 input modalities。
  2. 僅對配置未描述的模型調用 discoverModels(普通頁面加載可保持離線)。
  3. 從同一 model id 在其他已配置 route 上推斷。
  4. 勾選 This model reads images,在以上均未知時固定能力。

安裝與啓用

需要已安裝帶插件管理器的 DeepSeek Harness。官方安裝命令如下:

dsh plugin --profile desktop add github:drm-nz/dsh-model-advanced

然後重啓應用。插件分 host 半(lib/index.js,啓動加載)與 browser 半(lib/client.js,由安裝包提供),不重啓兩者都不會生效。

卸載:

dsh plugin --profile desktop remove dsh-model-advanced

依賴 @deepseek-ai/dsh-llm、@deepseek-ai/dsh-tools、@deepseek-ai/schemastery,須從 profile 解析且與當前 Harness 版本匹配;插件裝飾 runtime prototype,天然版本耦合。README 中有 Compatibility 小節可對照。

本地 link 安裝見 README 的 From a local checkout;cordis.patch.yml 入口名爲 bare dsh-model-advanced,link 安裝需注意 import 解析方式。

典型用法

界面配置

在 Settings → Models 底部卡片中爲每個模型選 Default reasoning level 與 Image understanding(effort id 須與 adapter 列出的等級 id 一致,從卡片列表選,勿猜)。

手寫 YAML

卡片寫入的命名空間也可直接編輯,示例來自 README:

- id: model-advanced
  config:
    modelDefaults:
      "deepseek/deepseek-chat": high
    imageDelegates:
      "deepseek/deepseek-chat": { provider: openai, model: gpt-5-mini }
    imageCapable:
      "openai/o4-mini": true
Key 形狀 含義
modelDefaults provider/model → effort id 該模型起始推理等級
imageDelegates provider/model → { provider, model } 代讀圖片的模型
imageCapable provider/model → true 無法自動發現時固定「能讀圖」

啓動自檢

每次啓動、composition settle 後,會向 ~/.dsh/health.log 追加一行,例如:

2026-11-01T02:00:42Z dsh-model-advanced ok   patch=live tool=live defaults=2/2
2026-11-01T02:00:42Z dsh-model-advanced warn patch=live tool=live defaults=1/2 stale=deepseek/old-model
  • patch:兩處 prototype 裝飾是否仍爲插件安裝的函數;dead 表示 Harness 內部變動導致默認等級不再生效。
  • tool:inspect_image 是否已註冊。
  • defaults:配置的默認等級有多少能在 resolveModelInfo 讀回且仍被模型提供;stale= 列出已失效項(常見於 effort id 改名)。

查看:

tail -n 2 ~/.dsh/health.log
grep -v ' ok ' ~/.dsh/health.log

可通過 DSH_HEALTH_LOG 改寫入路徑。自檢失敗不會阻止插件加載;客戶端也會根據模型目錄在 Composer 顯示一次 warning toast(健康時不顯示)。

適用場景與注意

適合在 DSH desktop profile 下同時使用多種模型:需要「按模型」而非「按 provider」設默認推理強度,或主對話用純文本模型但對話裏會出現截圖、圖表等圖片的場景。

DSH 生態理念是「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。插件以當前 DSH 進程權限運行,安裝前建議閱讀源碼與 MIT 許可證,確認 delegate 模型與 API 調用符合你的策略。

結尾

dsh-model-advanced 把 adapter 難以表達的「每模型默認 effort」和「純文本模型的圖片代讀」收到 Models 頁一張卡片和 model-advanced 配置裏,並在請求鏈路與 inspect_image 工具上落地。進一步瞭解可訪問 SkillHub 目錄頁 與 GitHub 倉庫。

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

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

小夜