前言¶
在 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 說明通過四處銜接覆蓋「選了等級 / 沒選等級 / 從未選等級」等路徑:
- 裝飾
resolveModelInfo,讓模型目錄展示配置的等級,Composer 的 Effort 菜單以此打開。 - 裝飾
resolveCallConfig,選模型但未指定等級時,保存配置的等級而非 adapter 自帶默認。 agent/requestwaterfall 覆蓋從不選等級的入口。- 啓動後一次 reconciliation(composition 事務 settle 之後)對齊全局默認選擇與配置等級。
插件 dispose 時會恢復上述 prototype 裝飾。
圖片轉交(image handoff)¶
爲不能讀圖的模型配置 delegate 後,當一輪攜帶圖片時:
- delegate 調用一次,附帶保留版式的轉寫指令:一行摘要、閱讀順序、各文本區域及約 0–1000 尺度的包圍框、表格用 GFM、圖表與 UI 狀態說明。
- 結果以 image transcript note 追加到 step,並命名圖片 id。
- note 帶
[dsh-image-handoff:<id>]標記,從 session 歷史讀回,重試與後續輪次不再對 delegate 計費。 - 圖片仍留在對話中;發給純文本模型的 wire 仍是佔位符而非原圖,模型讀的是轉寫文本。
後續追問時,模型可調用:
inspect_image(image_id, question)
同一圖片會再次交給 delegate 並帶上問題,避免純文本模型被固定在一次讀圖結果上。delegate 失敗不會終止整輪,會在 transcript 裏記一條無法讀圖說明。
如何判斷模型能否讀圖¶
按成本從低到高:
- provider 配置裏模型聲明的 input modalities。
- 僅對配置未描述的模型調用
discoverModels(普通頁面加載可保持離線)。 - 從同一 model id 在其他已配置 route 上推斷。
- 勾選 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 倉庫。