使用dsh-vision在DeepSeek Harness中實現接近原生的圖片理解

前言

DeepSeek Harness(以下簡稱 dsh)是 DeepSeek 開源的智能體運行時,官方口號是「一切皆插件」:模型適配器、工具、會話、沙箱和界面都掛在 Cordis 內核上,可以按配置替換,而不必改 Harness 源碼。截至本文撰寫時(2026-08-17),它仍處於 Developer Preview,當前常見版本是 0.1.0-rc.6

這個架構很靈活,也把一個具體缺口暴露出來:默認走官方 DeepSeek 適配器時,主模型往往是純文本。截圖、報錯界面、兩張前後對比圖貼進輸入框後,文本模型看不到像素,只能對着附件名猜測。社區因此出現了一批視覺插件,路線並不相同——有的做成識圖工具箱,有的做成像素級 tool call。本文只介紹其中一條更「接近原生」的路徑:由 oil-oil 維護的 dsh-vision

社區插件目錄 deepseek-harness-plugin.com 把它歸在「工具與能力」,2026-08-15 收錄。需要先說明:這個目錄是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。同名或近名的倉庫還有 dsh-vision-recognizerdsh-vision-toolkitdsh-vision-router 等,能力邊界不一樣,安裝時認準 github:oil-oil/dsh-vision

插件是什麼

dsh-vision 是一個 DeepSeek Harness 插件,npm 包名爲 @oil-oil/dsh-vision,當前版本 0.1.0,主要語言 TypeScript,許可證 MIT,要求 Node.js >= 22.19。README 寫明本版本固定兼容 Harness 0.1.0-rc.6package.json 的 peerDependencies 也釘在同一組 0.1.0-rc.6 包上。GitHub 倉庫在 2026-08-17 顯示 55 star。插件聲明的客戶端平臺是 web

它解決的問題很具體:讓已經選好的主模型繼續當「大腦」,同時讓圖片以儘量接近原生多模態的方式進入對話。

  • 當前主模型本身支持圖片時,原圖直接發給該模型,不壓縮、不預先 OCR。
  • 當前主模型是 deepseek-official 這類純文本模型時,另選一個視覺模型觀察原圖,把觀察結果作爲非可信附件上下文注入,最終仍由原來的 DeepSeek 模型作答。
  • 雲端視覺都不可用時,再降級到 macOS Vision 或 Tesseract,仍然由 DeepSeek 作答。

插件不會改掉右下角選中的主模型。它會替換官方 deepseek-official 適配器,但繼續使用原有模型列表、DeepSeek 設置和憑據。倉庫裏的 cordis.patch.yml 做的就是這件事:先禁用 llm-deepseek,再插入 dsh-vision

- id: llm-deepseek
  disabled: true
- insert:
    - id: dsh-vision
      name: "@oil-oil/dsh-vision"

雲端路由、多圖聯合分析和本地降級,README 寫明參考了同一作者的 MIT 項目 oil-oil/see-skill

工作原理

README 用一張表把三條路徑寫清楚了:

當前主模型 圖片處理方式 最終回答者
支持圖片 原圖直接發送,不壓縮、不預先 OCR 當前模型
deepseek-official 等文本模型 外部視覺模型讀取原圖,觀察結果作爲非可信附件上下文注入 DeepSeek
雲端視覺不可用 macOS Vision 或 Tesseract 本地降級 DeepSeek

有幾點需要單獨看,避免和「先 OCR 再提問」的插件混在一起。

  1. 原圖優先。 主模型能看圖時,橋接路由根本不會啓用。自定義模型必須在 Harness 裏聲明 image 輸入模態,否則仍會被當成文本模型。
  2. 多圖同一次請求。 多張聊天附件會一起交給視覺模型,適合前後對比和組合證據,而不是每張圖單獨出一份報告。
  3. 問題原樣轉發。 用戶任務不會被包進固定報告模板,視覺模型看到的是原來的問題。
  4. 觀察結果不可信。 視覺輸出只作爲當前請求的上下文,不改寫歷史消息;圖片裏的提示詞不會獲得系統權限。

安裝插件

社區目錄頁給出的安裝命令是:

dsh plugin add github:oil-oil/dsh-vision

維護者 README 寫的是帶 web profile 的寫法,和官方文檔裏 dsh plugin --profile <name> add github:owner/repo 的形式一致:

npx @deepseek-ai/dsh plugin --profile web add github:oil-oil/dsh-vision

目錄頁同時提示:如需可復現安裝,應固定 commit 哈希:

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

安裝完成後需要重啓 Harness。之後可以像平時一樣在輸入框粘貼或拖入圖片。設置裏會出現新卡片:設置 → 插件 → 插件配置 → 視覺識別

倉庫同時包含 src/ 和編譯後的 lib/package.jsonfiles 字段會發布 cordis.patch.ymllib,git 安裝時加載的是已構建產物。即便如此,插件仍以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和 MIT 許可證;不要把社區目錄上的一鍵命令當成已經過官方審計的保證。

配置視覺識別

打開「設置 → 插件 → 插件配置 → 視覺識別」,可以選擇 ZenMux、阿里雲百鍊、TokenDance 或 OpenRouter,然後填寫對應的 API Key。同一張卡片還可以改模型 ID、API 地址和單次圖片上限。

API Key 走的是 Harness 官方憑據服務。README 說明它在瀏覽器裏是單向寫入:界面只能知道 Key 是否存在,不會把 Key 讀回頁面、聊天、普通設置或會話日誌。不要把 Key 寫進下面的 YAML。

大多數情況用界面即可。等價的非敏感字段在 $DSH_HOME/settings.yaml 現有的 llm-deepseek 段落裏,README 給出的示例是:

llm-deepseek:
  visionBackend: zenmux
  visionBackendModel: qwen/qwen3.7-plus
  visionBackendBaseURL: https://zenmux.ai/api/v1
  maxImages: 8

改這些字段後無需重啓。路由規則如下:

  • 「視覺識別」裏選定的平臺,是文本模型的主視覺路由。
  • Harness 裏其他已啓用的視覺模型、已有 see 配置、本地 OCR,只在主路由失敗後嘗試。
  • 當前主模型本身支持圖片時,原圖始終直接進入當前模型,不經過這些橋接。
  • 選擇「自動選擇」時,不必在插件裏保存雲端 Key。插件會依次嘗試 Harness 中已配置且聲明支持圖片的模型、see 私有配置,最後纔是本地 OCR。

兼容 see-skill 與本地降級

如果 Harness 裏沒有可用的視覺模型,插件還會讀 ~/.config/see/config.env,兼容 ZenMux、百鍊、OpenRouter 和 TokenDance。環境變量優先於該文件:

export SEE_PROVIDER=zenmux
export ZENMUX_API_KEY=你的Key

SEE_PROVIDER 指定主平臺;其他已填寫 Key 的平臺只作失敗後的備用。沒有指定時,只配置了哪個平臺就用哪個平臺。

沒有云端 Key,或所有云端路由都失敗時,纔會嘗試本地能力:

  • macOS:系統自帶 Vision OCR,無需額外安裝。
  • Linux / Windows:Tesseract,需要自行安裝對應語言包。

本地降級以文字識別爲主,不等同於多模態模型的完整語義理解。截圖裏的佈局、圖標含義、前後視覺差異,不能指望這一層補上。

日常怎麼用

配置完成後,使用方式和普通多模態對話接近。

  1. 確認 Harness 已重啓,當前 profile 是 web(插件的 dsh.client.platformweb)。
  2. 右下角仍選擇原來的 DeepSeek 模型,不必換成另一個「識圖專用」入口。
  3. 在輸入框粘貼或拖入一張或多張圖片,直接寫任務,例如對比兩張 UI 截圖、讀報錯彈窗、看錶格截圖裏的數字。
  4. 若主模型能看圖,原圖會原樣進入該模型;若不能,插件先讓配置好的視覺模型觀察原圖,再把觀察結果交給 DeepSeek。

沒有單獨的 CLI 子命令,也不需要把圖片先轉成文字再粘貼。這就是 README 說的「接近原生」:輸入習慣不變,主模型身份不變,變的是文本模型背後多了一座視覺橋。

適用場景和注意點

比較適合下面這類用法:日常已經把 DeepSeek 當作 Harness 裏的主模型,偶爾需要看截圖、報錯、表格或前後對比,又不想換一套識圖專用對話。多圖一起問、問題保持原樣,也更接近「把圖貼進能看圖的模型」而不是「先生成一份固定格式的看圖報告」。

使用前有幾條邊界需要當成事實,而不是可選項。

  • 版本釘得很死。 當前發佈面向 0.1.0-rc.6。Harness 還在 Developer Preview,核心插件和 API 會繼續變,升級前應對一下 peerDependencies。
  • 它替換的是官方適配器。 cordis.patch.yml 會禁用 llm-deepseek。如果同一個 profile 裏還裝了其他也替換 DeepSeek 適配器的插件,加載順序和衝突需要自己覈對,README 沒有保證可以疊放。
  • 圖片會離開本機。 原圖只發送給用戶配置的視覺服務,但只要走了雲端路由,像素就會到達對應供應商。敏感截圖應使用自己控制的端點,或接受本地 OCR 的能力上限。
  • 本地 OCR 不是多模態。 macOS Vision / Tesseract 只能在雲端都失敗時頂一陣,不能當作完整看圖。
  • 安全模型是「觀察不可信」。 視覺結果只參與當前請求;圖片中的指令沒有系統權限。這能降低間接提示注入的風險,但不能替代你對供應商和源碼的審查。
  • 權限與許可證。 插件以當前 dsh 進程權限運行,安裝時可能執行代碼。安裝前閱讀 oil-oil/dsh-vision 源碼和 MIT 許可證;需要可復現環境時固定 commit。
  • 目錄不是官方商店。 dsh-vision 目錄頁 便於檢索分類和安裝命令,權威信息以倉庫 README、package.json 和許可證爲準。

小結

dsh-vision 把「DeepSeek 繼續回答、圖片按能力走原生或橋接」做成了一個可安裝的 web 插件。主模型能看圖就走原圖;不能看圖就調用 ZenMux / 百鍊 / TokenDance / OpenRouter(或 see-skill / 本地 OCR)做觀察,再把非可信上下文交給原來的 DeepSeek。安裝和配置都掛在 Harness 現有的插件與憑據機制上,不另起一套對話入口。

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

GitHub:https://github.com/oil-oil/dsh-vision

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

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

小夜