dsh-auto-vision:給 DeepSeek Harness 的純文本主模型裝上 vision 工具

前言

用 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 / 幻方無官方從屬關係)
羽毛球分组比赛记分
小程序二维码

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

小夜