前言¶
用 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 原生配置頁面:
- 啓動安裝了本插件的 Web Profile。
- 打開“設置 → 插件 → 插件配置”。
- 點擊 Vision Workbench 展開全部配置項。
- 填寫文本模型、視覺 Provider 和 API Key。
- 打開“啓用插件”,保存配置。
- 重啓當前 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 |
配置時按三步走:
- 把服務商的 API 地址填入
visionProvider.baseURL。 - 從服務商官網複製一個支持圖片輸入的模型 ID,填入
visionProvider.model。 - 爲該服務設置獨立的
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。
使用前有幾點需要清楚:
- 插件以當前 dsh 進程的權限運行,本地工具能讀寫你的工作區圖片、調用本機瀏覽器。安裝前建議檢查倉庫源碼與許可證(MIT),確認符合自己的安全要求。
- 插件默認關閉,不會在你不知情時接管路由或發送圖片;圖片只會在調用遠程視覺工具時發送給你自己配置的端點。
- 遠程視覺服務必須 HTTPS、
baseURL不夾帶密鑰、網頁截圖走精確白名單,這三條是插件內置的邊界,配置時不要繞開。
小結¶
dsh-vision-suite 做的事情很聚焦:不替換 DeepSeek 的文本推理,只在需要“看”的時候補上六個工具,並把憑據、回退、限制這些工程細節都做成了顯式配置。如果你在 DSH 上經常和截圖打交道,值得裝上試一次。