前言¶
用 DeepSeek Harness(DSH)做智能體開發時,你大概率遇到過這個問題:內置的 read_image 工具會把圖片塊直接塞進當前模型的上下文,只有當前主模型本身支持圖片才能用。如果你的主模型是 deepseek v4 flash 這類純文本模型,調用 read_image 會被直接拒絕——主模型看不見圖,讀圖這條路徑就斷了。
dsh-auto-vision 換了一條路:由插件內部把圖片轉發給一個多模態模型識別,主模型全程只看到文本。本文介紹它的原理、安裝和配置方式。
這是什麼¶
dsh-auto-vision 是一個 DSH 插件,由 NormanFxxkingRockwell 維護,MIT 協議開源,當前版本 0.4.0(2026-08-24 發佈)。它的定位一句話可以說清:自動發現你已配置的多模態模型,給純文本主模型裝上 vision 工具,識別結果以純文本返回,零配置,一條命令安裝。
前提是你的 dsh 裏至少配置了一個聲明瞭圖片輸入的多模態模型。沒有的話,插件會在啓動時報錯並給出處理建議。
核心工作方式¶
插件做了三件事:
1、自動隱藏 read_image。純文本主模型的會話裏,插件會藏掉必然失敗的 read_image,讓模型只能走 vision,不會先撞一次失敗再換路。切到多模態主模型時,原生 read_image 自動恢復,兩者互不干擾。
2、vision 工具調用多模態模型。主模型給你一個圖片文件路徑(或讓它訪問某個圖片文件),它會自動調 vision,插件把圖片轉給多模態模型,識別結果以純文本返回。
3、圖片不進主會話。圖片塊只存在於插件內部的視覺請求中,主模型上下文裏不會有任何圖片,不會被污染、不會報錯。
識別請求走的是宿主自己的模型運行時(ctx.llm),用你已配置的 key 和重試策略,不需要任何額外的 API key 或服務。整個插件零運行時依賴,不依賴任何 npm 包,只用宿主服務。
自動發現與 failover¶
默認零配置。插件把已註冊 provider 中所有聲明 image 模態的模型列爲候選,按「顯式 prefer → 你在 settings 配置的 provider → 其餘已註冊 provider」排序。
候選模型按序嘗試,遇到空內容、報錯或中止會自動切換下一個——目錄裏聲明瞭 image 但實際不可用(比如未配 key 的官方佔位模型)不會被卡住。插件還會記錄上次成功的模型,下次優先使用它。
啓動時有預檢:如果手動指定的模型不支持圖片,或自動發現落空,插件會在啓動時就報出可操作的錯誤,而不是等你調用時才崩。
vision 工具的參數:
file_path:單圖路徑file_paths:多圖路徑數組,一次請求最多 10 張,按編號逐張描述instruction:可選,識別要求
它與 read_image 共用同一套附件管線和大小限制。
安裝¶
兩種方式任選。方式一,npm 安裝(推薦):
dsh plugin --profile <你的profile名> add dsh-auto-vision
方式二,GitHub 源碼安裝(純 JS、零構建步驟,無需構建授權):
dsh plugin --profile <你的profile名> add github:NormanFxxkingRockwell/dsh-auto-vision
裝好後直接用,不需要額外配置。
配置(均可選)¶
所有配置項都是可選的,不配置也能通過自動發現工作。
在 profile 的 cordis.patch.yml 裏覆蓋插件配置,比如手動指定視覺模型:
- id: dsh-auto-vision
config:
provider: bailian
model: qwen3.7-plus
可用配置項:
| 配置項 | 說明 |
|---|---|
provider + model |
手動指定視覺模型,兩個必須成對給出,啓動時校驗確實支持圖片,否則報錯 |
prefer |
自動發現時優先嚐試的 provider 順序,例如 prefer: [bailian] |
discovery: false |
關閉自動發現,此時必須手動指定 provider/model,否則插件報錯 |
autoHideReadImage: false |
關閉「自動隱藏 read_image」 |
transcribeImages: false |
關閉「粘貼圖片轉述」(實驗性功能,見下文) |
自動發現靠的是「模型聲明瞭 image 模態」。如果你的模型還沒聲明,在 settings.yaml 裏給支持圖片的模型加上 input: [text, image]:
providers:
bailian:
models:
- id: qwen3.7-plus
name: Qwen3.7-Plus
contextWindow: 100000
input: [text, image]
典型用法¶
裝好後,在主對話裏直接說:
讀這張圖
C:\path\to\image.jpg描述一下
主模型會自動調用 vision 工具,把識別結果以文本形式返回給你。多張圖也一樣,把多個路徑放進 file_paths,一次請求最多 10 張,按編號逐張描述。
有一點要明確:在聊天框直接粘貼圖片,目前無法自動讀。dsh 官方在消息准入層硬編碼拒絕了純文本模型攜帶圖片(報錯 MODEL_DOES_NOT_SUPPORT_IMAGES),這一步發生在任何插件鉤子之前,且沒有公開擴展點。所以請把圖片保存爲文件,再把文件路徑給模型——文件路徑讀圖這段是全自動的。
插件已經實現了「粘貼圖片自動轉述」(agent/pre-step 鉤子,把會話內消息的圖片塊轉述爲【圖片轉述】開頭的文字,帶緩存),但受上述准入限制,該路徑當前不可達,屬於實驗性功能,等官方開放後可自動生效。
適用場景與注意¶
這個插件適合的場景很明確:主模型用純文本模型(如 deepseek v4 flash),但手頭有其他已配置的多模態模型(如 qwen3.7-plus),想讓前者獲得讀圖能力,又不想改主模型或加服務。
使用前注意三點:
1、必須已配置至少一個聲明瞭圖片輸入的多模態模型,否則插件啓動即報錯。
2、手動指定視覺模型時,provider 與 model 必須成對給出,且啓動時會校驗該模型確實支持圖片。
3、插件以當前 dsh 進程的權限運行,安裝前建議先檢查源碼與許可證。dsh-auto-vision 是 MIT 協議,源碼在 GitHub 上可查。
結尾¶
dsh-auto-vision 解決的是一個具體問題:純文本主模型讀不了圖。它不引入新服務、不加新 key,靠自動發現你已有的多模態模型,把文件路徑讀圖變成一條命令裝好就能用的能力,且啓動時就把配置錯誤報出來。如果你在 DSH 裏用純文本主模型,又偶爾需要讀圖,值得一試。
- GitHub:https://github.com/NormanFxxkingRockwell/dsh-auto-vision
- 社區目錄頁:https://www.skillhub.cn/plugins/NormanFxxkingRockwell/dsh-auto-vision (獨立社區站點,與 DeepSeek / 幻方無官方從屬關係)