DeepSeek Harness (dsh) 是一個以插件爲核心的智能體開發框架。在構建智能體時,若使用不支持視覺的純文本模型,直接上傳圖片會導致處理中斷。dsh-mingmu 插件爲這類模型增加了視覺處理能力:當檢測到模型無法處理圖片時,自動調用視覺模型識別內容,並將識別出的文本喂回主模型。
該插件由 Lab-sku 維護,是一個純 ESM 插件,不修改源碼,卸載後即可還原。
核心功能¶
- 按模型能力觸發:插件運行時攔截模型調用,僅對不支持視覺輸入的模型進行橋接;原生支持視覺的模型保持原生處理路徑。
- 視覺模型識別:內置全球視覺模型啓發式識別規則,支持 OpenAI、Anthropic、Google、Qwen、MiniMax、Kimi、GLM、DeepSeek-VL 等 20+ 模型家族。若無法自動識別,也會嘗試走橋接。
- 自動升級策略:默認採用級聯策略,首選識別模型失敗或結果爲空時,自動切換備選模型;高級用戶可通過環境變量
DSH_VISION_STRATEGY=race開啓併發賽跑模式。 - 可視化配置:在 dsh Web 的「設置 → 插件」頁面,可以直接配置提供商、模型和策略,支持實時生效。
- 失敗不靜默:提供
annotate(將失敗原因作爲文字餵給主模型)和error(嚴格報錯)兩種模式,避免靜默丟圖。 - 憑據安全:API Key 存儲於 dsh 官方憑據庫(
~/.dsh/.credentials.yaml),不落盤到插件配置文件中。 - 環境變量兜底:除了 Web 設置頁,還支持通過環境變量配置所有關鍵參數。
安裝¶
使用官方命令安裝插件:
dsh plugin --profile web add github:Lab-sku/dsh-mingmu
配置與使用¶
方式一:Web 設置頁(推薦)¶
在 dsh Web 的「設置 → 插件 → 明眸 Mingmu」頁面進行配置。修改後保存即可即時生效。
方式二:環境變量¶
在環境變量中配置以下關鍵項:
| 變量名 | 默認值 | 說明 |
|---|---|---|
DSH_VISION_ENABLED |
true |
總開關 |
DSH_VISION_MODEL |
Qwen/Qwen3-VL-8B-Instruct |
首選視覺識別模型 |
DSH_VISION_MODEL_UPGRADE |
Qwen/Qwen3-VL-32B-Instruct |
備選識別模型 |
DSH_VISION_STRATEGY |
cascade |
策略:cascade(級聯)或 race(併發) |
DSH_VISION_BASE_URL |
https://api.siliconflow.cn/v1 |
視覺 API 端點 |
DSH_VISION_API_KEY_ENV |
SILICONFLOW_API_KEY |
API Key 環境變量引用 |
DSH_VISION_FAILURE_MODE |
annotate |
失敗模式:annotate 或 error |
DSH_VISION_MAX_TOKENS |
4096 |
識別最大 Token 數 |
DSH_VISION_TIMEOUT_MS |
180000 |
識別超時時間(毫秒) |
API Key 管理¶
插件支持兩種 API Key 配置方式,任選其一:
- Web UI:在「明眸 Mingmu」設置頁的「視覺 API Key」輸入框中粘貼 Key,點擊保存。Key 會寫入 dsh 官方憑據庫。
- 手動寫入:在
~/.dsh/.credentials.yaml文件中手動添加,例如:
SILICONFLOW_API_KEY: sk-xxx
注意事項¶
- 依賴版本:本插件基於 dsh
0.1.0-rc.6實測。dsh 接口仍處於 rc 階段,後續版本升級可能需要適配。 - 性能開銷:由於需要判斷模型能力,含圖消息的每個 step 會額外調用一次
resolveModelInfo,對延遲敏感的場景需留意。 - 隱私與端點:默認圖片會發送到 SiliconFlow (
https://api.siliconflow.cn/v1)。用戶可將其替換爲任意 OpenAI 兼容端點,但需自行評估隱私與可用性。 - Node.js 版本:運行環境 Node.js 版本要求 >= 22.19.0。
- 併發策略:
race/cascade僅在單會話內生效,不改變 dsh 本身的併發模型邏輯。
總結¶
dsh-mingmu 通過攔截和橋接,解決了純文本模型在 dsh 環境下無法處理圖片的問題。它提供了可視化的配置入口和環境變量支持,並注重 API Key 的安全性。在使用前,建議確認本地環境版本(Node.js 和 dsh)並評估第三方 API 端點的隱私策略。