用 dsh-vision-router 給純文本 DeepSeek Harness 智能體裝上眼睛

前言

DeepSeek Harness(下文簡稱 DSH)把模型、工具、會話和界面都做成可替換的插件。官方倉庫的說法很直接:Everything is a Plugin。日常用的 DeepSeek 路由本身仍是純文本:對話裏貼一張截圖,運行時往往會在插件還沒接手之前就提示當前模型不支持圖片;即便接上視覺能力,很多社區方案也會先把圖翻譯成一段文字描述再餵給 DeepSeek。描述能用,但像素沒了——按鈕在哪、兩版 UI 差幾個像素、長截圖裏某行字怎麼排,都很難繼續往下做。

dsh-vision-router 走的是另一條路:視覺模型只負責看原圖,DeepSeek 繼續負責推理;看圖變成普通的工具調用,可以定位、裁剪、對比、再截圖。本文按社區目錄詳情頁、插件 GitHub 倉庫 README / package.json,以及 DeepSeek Harness 官方倉庫 交叉覈對後整理:它是什麼、裝在哪、怎麼用。

需要先說明一點:下文提到的插件目錄站點 deepseek-harness-plugin.com 是社區收錄站,和 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。

這是什麼

dsh-vision-router 是一款 DSH「工具與能力」插件,由 GitHub 用戶 ysr666 維護,許可證爲 MIT,主要語言是 JavaScript。社區目錄於 2026-08-15 收錄;倉庫 package.json 當前版本爲 1.4.4。截至 2026-08-17,GitHub 倉庫約 460 星(目錄頁快照仍顯示 94,星標以倉庫頁面爲準)。

一句話定位來自倉庫說明:給純文本 DeepSeek Harness 智能體裝上眼睛。默認帶一條免註冊、免 Key 的視覺兜底鏈路,再配上一組像素級工具(問答、定位、裁剪、像素對比、OCR、矢量化、摳圖、HTML 截圖等)。圖片輪次按普通工具調用處理,不需要本機 Python。

它針對的是這兩類問題:

  • 日常 DeepSeek / opencode 路由是純文本,直接發圖會被運行時拒掉。
  • 只把圖片轉成一段描述再交給文本模型,後續無法對原圖像素做定位、裁剪和逐像素對比。

核心功能

眼睛和大腦分開

倉庫 README 把職責寫得很清楚:視覺模型只當眼睛,DeepSeek 始終是大腦。圖片輪不會被一次性視覺答案搶走;智能體自己調用工具,可以在同一張圖上連續多步操作,例如 vision_groundvision_cropvision_describevision_pixel_diff

文字輪在模型、費用和上下文上保持原樣。視覺調用按需發生,答案按附件內容哈希緩存;後續文字輪會用已記錄的描述替換歷史圖片,並標註爲不可信證據,避免把圖裏的文字當成可執行指令。

上傳的圖片在會話界面裏仍顯示爲圖片。指向視覺工具的改寫只發生在模型輸入層,不寫入會話日誌。

默認免費的視覺兜底

未配置自己的視覺模型時,工具鏈最後會落到內置的 OVHcloud 匿名視覺端點:免註冊、免 Key。README 寫明匿名限額是每 IP、每模型 2 次/分鐘;當前質量優先鏈裏有 5 個獨立限額的模型,理論上分散請求大約 10 次/分鐘,實際以 OVH 當時的限流爲準。

用戶在「設置 → 插件 → 插件配置 → 視覺路由(自動識圖)」裏配置的視覺後端會排在匿名兜底之前。鏈路按順序嘗試,全部失敗才報錯,並對地區限制、額度、429 限流、網絡故障等做分類提示。超大圖會在調用前壓縮,默認像素預算 400 萬。

聊天頁右下角的模型選擇器只選「腦子 / 會話模型」。視覺後端不要在那裏選。

十一個像素級工具

默認 progressiveTools: false:插件啓動後就會註冊完整工具表,文本輪和圖片輪都能直接調用。工具實現依賴 sharp / potrace / tesseract / 系統 Chrome,不依賴 Python。圖片格式按文件魔數識別,沒有 .png 擴展名的附件也能用。

當前 README 列出的工具如下:

工具 作用 產物
vision_describe 看圖問答、多圖對比;可輸出結構化 JSON(摘要、佈局區域、實體清單、原文轉寫)
vision_ground 按自然語言定位目標,返回原圖像素框 x1/y1/x2/y2 可選標註 PNG
vision_detect 盤點某類元素(按鈕、輸入框、鏈接等),給出編號和像素框 編號標註 PNG
vision_crop 按像素框裁剪放大 PNG
vision_pixel_diff 逐像素對比:差異率 + 最差 8×8 網格區域 紅色熱力圖 PNG + JSON
vision_colors 提取主色(十六進制和佔比)
vision_ocr 文字轉寫:本地 tesseract(中英)優先,視覺模型兜底
vision_trace 用 potrace 做 SVG 矢量化,適合圖標 / logo SVG
vision_extract_foreground 邊界洪泛摳圖,適合純色背景 透明 PNG
vision_html_screenshot 給本地 HTML 截圖(無頭系統 Chrome);fullPage: true 可截整頁 PNG
vision_long_screenshot_ocr 長截圖分片轉寫,再拼成 Markdown 分片 PNG + Markdown + manifest

vision_html_screenshot 需要本機已安裝 Chrome / Chromium / Edge;其餘工具沒有瀏覽器也能跑。本地沒有 tesseract 時,vision_ocr 會退回視覺模型。

倉庫 README 用像素閉環說明「可驗證」:參照圖 → 截圖 → vision_pixel_diff → 修復 → 再對比。文檔裏的演示結果是最終差異 2.54%(32,939 / 1,296,000 個差異像素,閾值 16/channel)。這是維護者給出的示例,不是第三方評測。

自動識圖模型組

插件默認開啓 autoWrapProviders:讀取「設置 → 模型」裏已啓用的模型組,額外註冊同名的「+ 自動識圖」入口,例如:

opencode-go                 ← 原模型組,保持不變
opencode-go + 自動識圖       ← 發圖片時選這個

原模型組不會被改寫。隱身模式(stealth)默認關閉,官方 deepseek-official 路由保持原樣;發圖走選擇器裏可見的自動識圖包裝。隱身模式是高級選項,開啓後纔會接管官方 DeepSeek 路由,普通安裝不必先動它。

安裝與啓用

社區目錄給出的安裝命令如下,在 DeepSeek Harness 終端裏運行即可:

dsh plugin add github:ysr666/dsh-vision-router

需要可復現安裝時,按目錄頁說明固定 commit 哈希:

dsh plugin add github:ysr666/dsh-vision-router#<commit>

<commit> 換成倉庫裏實際的提交哈希。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼;裝之前應檢查源碼和許可證。

插件面向 Web profile。倉庫 README 推薦的 npm / npx 寫法更明確地指定了 profile:

npx @deepseek-ai/dsh plugin --profile web add dsh-vision-router

從 DeepSeek Harness 源碼倉庫用 pnpm 跑時,CLI 不一定在 PATH 裏,改用:

cd deepseek-harness
pnpm dsh plugin --profile web add dsh-vision-router

宿主側要求 Node ≥ 22。如果是把插件第一次裝進已經長期運行的 Web 進程,需要讓該進程重新加載一次,才能發現插件本體。加載完成之後,增刪模型、修改自動識圖包裝範圍會熱更新,不必再爲這些改動重啓。

可選驗證:

npx @deepseek-ai/dsh --profile web --dump-config | grep vision-router

裝好後按倉庫「快速開始」做兩件事:

  1. 打開聊天頁輸入區右下角的模型選擇器,選帶「+ 自動識圖」的模型組。仍停在原來的純文本組時,DSH 會在插件處理圖片之前提示當前模型不支持圖片。這是入口沒選對,不是視覺後端壞了。
  2. 直接粘貼或上傳圖片。默認工具表從會話開始就可用,智能體可以調用 vision_describevision_groundvision_crop 等繼續看圖。

典型用法

下面這些調用形式來自倉庫 README,可以按自己的文件名改。

定位頁面上的某個控件,再裁出那一塊細看:

vision_ground image="ref.png" target="發送按鈕"
vision_crop   image="ref.png" region="1067,841,1108,881"

對比設計稿和實現,並要結構化差異:

vision_describe paths=["ref.png","impl.png"] question="列出兩圖的差異" json=true
vision_pixel_diff original="ref.png" rebuilt="screenshot.png"

讀截圖文字、抽主色、把圖標轉成 SVG:

vision_ocr image="screenshot.png"
vision_colors image="ref.png" top=8
vision_trace image="icon.png" steps=4

給本地 HTML 截圖,或把長聊天記錄截圖轉成 Markdown:

vision_html_screenshot source="page.html" width=1200 height=720 fullPage=true
vision_long_screenshot_ocr image="chat-log.png" chunkHeight=1200 overlap=120

Web 配置入口在 設置 → 插件 → 插件配置 → 視覺路由(自動識圖)。卡片頂部會提示:回到聊天頁 → 右下角選「+ 自動識圖」→ 發圖。卡片裏還可以測第一個視覺提供方的連通性和延遲。默認配置即可用;自備 Key、代理、隱身模式都屬於進階項。

匿名 OVH 額度不夠時,README 在 2026 年 8 月快照裏列了若干免費視覺渠道(智譜、阿里雲百鍊、Intern AI 等),可以寫成 httpProviders 條目,Key 放環境變量或 ~/.dsh/.credentials.yaml。免費政策會變,接入前以各家控制檯爲準。

適用場景與注意事項

比較適合這些工作:

  • 對着設計稿或截圖做 UI 還原,並用像素差異檢查收斂情況
  • 在頁面截圖裏定位按鈕、輸入框,再裁塊細看
  • 讀錯誤彈窗、終端截圖、長聊天記錄裏的文字
  • 從圖標 / logo 生成 SVG,或從純色背景裏摳前景

使用前注意下面幾條,都來自目錄頁或倉庫文檔,不是額外發揮。

  1. 權限。插件以當前 dsh 進程權限運行。安裝前檢查 源碼倉庫 和 MIT 許可證;需要可復現安裝時固定 commit。
  2. 運行環境。面向 Web profile,宿主 Node ≥ 22。HTML 截圖才需要系統瀏覽器;OCR 的本地 tesseract 是可選項。
  3. 發圖入口。必須選「+ 自動識圖」模型組。原純文本組不會被插件改寫,停在原組發圖會被運行時直接拒絕。
  4. 匿名額度。內置 OVH 兜底有每 IP、每模型 2 次/分鐘的上限,只適合輕度試用。用量上來之後應換成自己的視覺後端。
  5. 圖裏的字不可信。描述、OCR 和自動掛載說明都會要求智能體不要執行圖片裏出現的指令。工具入參走沙箱感知的 ctx.fs;視覺上傳只發送選中的圖和問題。產物寫在會話工作區下的 .dsh-vision-router/artifacts
  6. Oh-DSH Desktop。若使用 Oh-DSH Desktop,它走的是 ~/.ohdsh 下的 desktop profile,不會加載普通 ~/.dsh。需要把 DSH_HOME 指過去再裝;README 還寫明 Desktop ≤ 0.1.5 應使用本插件 v1.4.2 及以上,更早版本會在啓動時報路由重複聲明。

卸載可用:

npx @deepseek-ai/dsh plugin --profile web remove dsh-vision-router

如果曾經手動禁用過官方 DeepSeek 行,卸載後要在 profile 補丁裏重新啓用。

小結

純文本 DSH 智能體要看圖,關鍵不是再找一個會輸出說明文字的模型,而是把原圖像素留在視覺鏈路裏,讓 DeepSeek 繼續當大腦、按工具一步步看。dsh-vision-router 把這條鏈路做成一條插件:默認免 Key 兜底,十一個像素級工具常駐,發圖前切到「+ 自動識圖」即可。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-vision-router/

GitHub:https://github.com/ysr666/dsh-vision-router

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

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

小夜