dsh-vision-suite:爲 DeepSeek Harness 補齊視覺能力的 Windows 插件

前言

用 DeepSeek Harness(DSH)搭智能體時,推理交給 DeepSeek 的文本模型沒有問題,但很多任務需要“看”:從截圖裏讀報錯文字、比較兩版界面的佈局差異、從設計稿裏取主色。常見做法是把圖片手動丟給另一個多模態服務,再把結果搬回會話,鏈路斷在中間。

dsh-vision-suite 解決的就是這個問題。它在保留官方 deepseek-official 文本路由的同時,把圖片理解、OCR、截圖裁剪、像素比較、主色提取和安全網頁截圖接進了 Harness。文本推理仍然由 DeepSeek 負責,只有調用遠程視覺工具時,插件纔會把用戶選定的圖片發送給已配置的 OpenAI-compatible 視覺模型。

這是什麼

dsh-vision-suite 由 princefrogdida-ux 維護,許可證爲 MIT,插件包名爲 dsh-vision-workbench(GitHub 倉庫名爲 dsh-vision-suite),當前版本 0.7.1,面向 Windows。DSH 的理念是“一切皆插件”,這個插件就是給文本爲主的工作流補上視覺這一環。

運行環境要求 Node ^22.19.0 || >=24.0.0。本地像素處理、OCR 和瀏覽器能力分別依賴 sharp、tesseract.js 和 playwright-core,三者均爲可選依賴,按需加載——不用本地工具就不會引入這些開銷。

核心功能

六個視覺工具

工具 作用 執行位置
vision_describe 理解 1~4 張上傳圖片或工作區圖片,支持圖片問答、多圖比較和結構化截圖證據 視覺 Provider
vision_ocr 識別整張圖片或指定區域中的文字,可選擇遠程視覺模型或本地 Tesseract Provider 或本機
vision_crop 按像素座標裁剪圖片,並保存爲可繼續使用的持久附件 本機
vision_compare 比較兩張同尺寸截圖,返回變化比例和洋紅色差異圖 本機
vision_palette 提取圖片中的近似主色 本機
vision_browser_capture 使用獨立的無頭 Edge 或 Chrome 截取白名單網頁 本機瀏覽器

可以看到分工:需要模型理解內容的走視覺 Provider,純像素操作(裁剪、比較、取色)和網頁截圖都在本機完成,圖片不必離開機器。

其他基礎能力

  • 支持 PNG、JPEG 和 WebP。
  • 圖片附件使用持久 ID,工具結果可隨會話保存和回放。
  • 支持一個主視覺 Provider 和最多三個順序後備 Provider,失敗時執行有限回退,並通過冷卻機制避免持續請求故障端點。
  • 支持圖片數量、文件大小、像素數、工作像素、超時和緩存限制。
  • API Key 通過 Harness Credentials 保存,不寫入插件配置、日誌或頁面響應。
  • 可爲插件請求單獨配置 HTTP/HTTPS 代理(proxyUrl,默認爲空),不修改全局網絡設置。

安裝與啓用

本文整理資料時,README 與 package.json 中均未包含可直接引用的一行安裝命令,這裏不自行拼接,具體安裝方式請以 GitHub 倉庫的 README 爲準。

安裝後插件默認保持關閉(enabled 默認 false),不會自動接管模型路由,也不會自動發送圖片。啓用走 Harness 原生配置頁面:

  1. 啓動安裝了本插件的 Web Profile。
  2. 打開“設置 → 插件 → 插件配置”。
  3. 點擊 Vision Workbench 展開全部配置項。
  4. 填寫文本模型、視覺 Provider 和 API Key。
  5. 打開“啓用插件”,保存配置。
  6. 重啓當前 Profile,使路由和工具配置生效。

關於 API Key 的輸入框:頁面刷新後不會回顯密鑰,只會顯示對應憑據是否已經配置;密碼框爲空時會保留已保存的密鑰,不需要重複粘貼。

最小可用配置

第一次使用只需要以下幾項:

配置項 推薦值或說明
enabled 開啓
wrapperRoute 保持 deepseek-vision-workbench,不能與 deepseek-official 或文本 Provider 重名
textProvider.provider 保持 deepseek-official
textProvider.model 選擇當前 Harness 中可用的 DeepSeek 模型(默認 deepseek-v4-pro)
visionProvider.name primary
visionProvider.baseURL 視覺服務的 OpenAI-compatible API 地址
visionProvider.model 服務商提供的視覺模型名稱
visionProvider.credentialRef 憑據名稱,例如 VISION_API_KEY
API Key 在同一 Provider 卡片的密碼框中輸入

保存並重啓 Profile 後,在模型選擇器中選擇:

DeepSeek + Vision Workbench / <配置的 DeepSeek 模型>

隨後上傳圖片並直接提問,例如“識別這張截圖中的文字”或“比較這兩張圖片的佈局差異”。

配置遠程視覺服務

任何兼容 OpenAI /chat/completions 且支持 image_url 圖片輸入的服務都可以接入。README 給出了幾個常用服務的入口:

服務商 baseURL API Key 官網
OpenAI https://api.openai.com/v1 platform.openai.com/api-keys
OpenRouter https://openrouter.ai/api/v1 openrouter.ai/settings/keys
硅基流動 SiliconFlow https://api.siliconflow.cn/v1 cloud.siliconflow.cn/account/ak
阿里雲百鍊 中國大陸:https://dashscope.aliyuncs.com/compatible-mode/v1;國際:https://dashscope-intl.aliyuncs.com/compatible-mode/v1 help.aliyun.com

配置時按三步走:

  1. 把服務商的 API 地址填入 visionProvider.baseURL。
  2. 從服務商官網複製一個支持圖片輸入的模型 ID,填入 visionProvider.model。
  3. 爲該服務設置獨立的 credentialRef,例如 OPENAI_VISION_KEY 或 OPENROUTER_VISION_KEY,真實 Key 粘貼到對應 Provider 卡片的密碼框。

注意三點:同一個服務商可能同時提供純文本模型和視覺模型,選模型前必須確認它支持 image_url 輸入及 /chat/completions 接口;baseURL 中不能嵌入用戶名、密碼或 API Key;正常使用必須是 HTTPS,只有 allowInsecureLocalhost 顯式開啓時才允許連接本機迴環地址上的 HTTP 測試服務。

本地 OCR

vision_ocr 默認走遠程視覺 Provider,只有明確選擇 backend="local" 時才進入本地 Tesseract。本地 OCR 默認關閉(localOcr.enabled 默認 false),且需要自行準備可信來源的語言數據文件——插件不會自動下載語言包、訪問 CDN、寫入 Tesseract 緩存,本地識別失敗後也不會自動切換到遠程 Provider。

Windows 配置示例:

localOcr:
  enabled: true
  languagePath: 'D:\vision-data\tesseract'
  languages: [eng, chi_sim]
  gzip: true
  timeoutMs: 60000
  maxLanguageBytes: 52428800
  maxRegions: 50
  pageSegMode: auto
  autoRotate: true
  lowConfidenceThreshold: 40

languagePath 指向的目錄中應存在 eng.traineddata.gz、chi_sim.traineddata.gz 等與配置一致的文件。默認啓用 gzip、自動處理方向,低置信度提示閾值爲 40。

網頁截圖

vision_browser_capture 默認關閉(browserCapture.enabled 默認 false)。開啓後必須填寫精確的主機白名單,插件使用獨立的無頭瀏覽器(browserCapture.browserChannel 默認 msedge,可選用 chrome)只截取白名單內的頁面。

Provider 回退與限制

除了主 Provider(visionProvider),最多可以配置三個後備 Provider(fallbackProviders)。插件按列表順序逐個嘗試,不會併發把圖片發給多個端點;主備 Provider 之間不能重名。

回退行爲由三個參數控制:

字段 默認值 說明
providerRouting.attemptTimeoutMs 45000 單個 Provider 的嘗試超時
providerRouting.failureThreshold 2 連續失敗多少次後進入冷卻
providerRouting.cooldownSeconds 60 故障 Provider 的冷卻時間

總超時 timeoutMs(默認 120000)應大於 attemptTimeoutMs,否則可能沒有足夠時間嘗試後備 Provider。

圖片與緩存方面的默認限制:單次調用最多 4 張圖片,單張最大 10485760 字節(10 MiB)、40000000 像素;視覺結果緩存默認開啓,200 條,TTL 3600 秒;本地處理最大工作像素 16000000;視覺模型最大輸出 maxTokens 默認 4096。這些都有對應配置項,可按需調整。

另外,vision_compare 要求兩張截圖尺寸完全相同,插件不會自動縮放或對齊圖片,以免掩蓋真實佈局變化。

適用場景與注意

這個插件適合在 Windows 上使用 DSH、需要處理截圖和圖片的智能體開發者:比如讓智能體讀界面截圖裏的文字、對比兩版 UI 的變化區域、從圖片裏取色,或者把白名單網頁截圖作爲會話證據。前提是你手上有一個兼容 OpenAI image_url 格式的視覺服務 API Key,或者願意自行準備 Tesseract 語言文件做本地 OCR。

使用前有幾點需要清楚:

  1. 插件以當前 dsh 進程的權限運行,本地工具能讀寫你的工作區圖片、調用本機瀏覽器。安裝前建議檢查倉庫源碼與許可證(MIT),確認符合自己的安全要求。
  2. 插件默認關閉,不會在你不知情時接管路由或發送圖片;圖片只會在調用遠程視覺工具時發送給你自己配置的端點。
  3. 遠程視覺服務必須 HTTPS、baseURL 不夾帶密鑰、網頁截圖走精確白名單,這三條是插件內置的邊界,配置時不要繞開。

小結

dsh-vision-suite 做的事情很聚焦:不替換 DeepSeek 的文本推理,只在需要“看”的時候補上六個工具,並把憑據、回退、限制這些工程細節都做成了顯式配置。如果你在 DSH 上經常和截圖打交道,值得裝上試一次。

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

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

小夜