前言¶
DSH 插件機制允許開發者在現有 DeepSeek Harness 上擴展能力。對已經使用純文本 DeepSeek 模型的人來說,圖片輸入仍是一個實際缺口:聊天窗裏可以貼圖,瀏覽器可以截圖,工具也可能返回圖片,但模型本身不直接接收 image。
dsh-deepseek-vision 解決的就是這個缺口。它爲純文本 DeepSeek 模型增加一條視覺語言網關路由,讓圖片能夠進入後續處理,而不是要求開發者整體更換模型。
下面介紹它是什麼、核心能力、安裝方式、配置要點,以及需要注意的邊界。
這是什麼¶
dsh-deepseek-vision 是 siegfly 維護的 DSH 插件,當前發佈版本爲 0.1.7,許可證爲 MIT。
一句話定位:它是給 DeepSeek Harness 的視覺語言網關插件,爲純文本 DeepSeek 模型增加圖片輸入路由;目錄聲明支持 image 的模型可以直通官方視覺端點,其他模型可以由可配置 VL 模型先把圖片描述爲文字。
它覆蓋兩條路徑:
- 目錄聲明支持 image 的模型,例如
deepseek-v4-flash-vision-exp,圖片直通原生 DeepSeek 視覺端點。 - 其他純文本或未列目錄模型,先由可配置 VL 模型把圖片描述成文字,再交給 DeepSeek。
運行環境要求如下:
Node.js ^22.19.0 || >=24.0.0
安裝插件時還需要 PATH 中有 pnpm。
核心功能¶
註冊獨立 provider 路由¶
插件會註冊一條獨立路由,並在模型選擇器中使用顯示名 DeepSeek + Vision:
provider: deepseek-vision
displayName: DeepSeek + Vision
inputModalities: text, image
這條路由明確聲明輸入模態包含 text 和 image。
支持的圖片輸入¶
以下圖片來源可以進入該路由:
- 聊天窗貼圖
tool-fs read_image- 瀏覽器截圖
- MCP 工具返回圖片
- ACP 客戶端內聯圖片
按模型分流處理¶
插件會根據所選模型選擇不同處理方式:
- 如果模型目錄聲明支持 image,例如
deepseek-v4-flash-vision-exp,圖片會直通原生 DeepSeek 視覺端點。 - 如果模型是純文本模型或未在目錄中列出,插件會先調用可配置 VL 模型,將圖片描述成文字,再交給 DeepSeek 繼續處理。
描述緩存¶
插件按 attachmentId 在進程內使用 LRU 緩存描述結果。
這意味着同一張圖片在重試、上下文壓縮或後續輪次中複用時,會複用同一份描述,避免重複計費。
保留原始會話記錄¶
原始圖片仍會持久化進 session log。
這樣可以保持歷史、回放、重構等會話行爲不受影響。
可配置 VL 端點¶
插件支持配置 VL 端點、模型、提示詞和密鑰,併兼容 OpenAI 風格 /chat/completions 網關。
失敗策略¶
插件提供 fail-closed 失敗語義,也可以配置 placeholder 降級,並有穩定錯誤碼。
默認失敗策略爲 fail。
安裝與啓用¶
前置條件¶
安裝前需要滿足:
dshCLI 可用- PATH 中有
pnpm - Node.js 版本滿足
^22.19.0 || >=24.0.0
安裝 DSH CLI¶
如果是新機器,先安裝 DSH CLI:
npm install -g @deepseek-ai/dsh
這一步用於讓 dsh 命令進入 PATH,後續可以直接調用 dsh plugin 相關命令。
安裝插件¶
通過 web profile 安裝插件時,可以使用 npm spec:
dsh plugin --profile web add dsh-deepseek-vision
也可以使用 git spec 鎖定具體 commit:
dsh plugin --profile web add github:siegfly/dsh-deepseek-vision#<sha>
該插件支持 npm、git、目錄、tarball 等 spec,並支持 web 與 headless profile。實際使用時按當前環境和發佈渠道選擇對應 spec。
啓用插件¶
安裝完成後,重啓 dsh web。
然後按以下步驟啓用:
- 在 Models 頁選擇
DeepSeek + Vision。 - 在插件配置中填寫 VL 密鑰。
- 在聊天窗貼圖併發送消息。
卸載插件¶
如需移除插件,執行:
dsh plugin --profile web remove dsh-deepseek-vision
典型配置¶
在“設置 → 插件 → 插件配置”卡片中,可以配置以下 vl.* 項:
vl.apiKeyEnv
vl.model
vl.baseURL
vl.describePrompt
vl.timeoutMs
vl.maxCacheEntries
vl.onFailure
憑據解析優先級如下:
進程環境變量(最高、只讀)→ GUI 管理的 .credentials.yaml → .env 回退
因此,通過 Web Models 頁寫入的憑據可用;而本次進程顯式導出的 key 始終優先,並且不能在 GUI 內修改。
失敗策略方面,vl.onFailure 可配置爲 fail 或 placeholder:
fail:描述失敗時,整個請求失敗。placeholder:描述失敗時,降級爲文字佔位繼續。
數據流與兼容邊界¶
使用這個插件時,需要注意以下邊界:
- 圖片數據流只經過用戶配置的 VL 端點;無匿名回退、代理服務器、磁盤答案緩存。
- 發佈版不鎖定官方 dsh 版本。
- 官方 CLI 路徑直接安裝發佈產物,兼容性未經目標機驗證。
install-profile重建路徑會在目標機使用自己的 dsh 重建;構建成功即兼容證明,無 CLI 路徑有分級提示。dshCompat.anchorVersion 0.1.1-rc.2僅表示 committed lib provenance,不是安裝門禁。provider/displayName修改即時生效;改成已被佔用的路由 id 時,兩個註冊表保留舊值並記日誌。
該插件會隨 dsh 進程加載運行。安裝前請檢查源碼、依賴與許可證;當前許可證爲 MIT。
適用場景¶
適合以下情況:
- 想繼續使用純文本 DeepSeek 模型,同時處理聊天窗圖片、截圖或工具返回圖片。
- 已經有一個可配置的 VL 端點,並希望通過 OpenAI 風格
/chat/completions網關提供圖片描述能力。 - 希望原始圖片保留在 session log,同時避免同一張圖片重複描述和重複計費。
不適合以下情況:
- 無法訪問自配置 VL 端點的環境。
- 要求圖片完全不出網,且不經過自己配置端點的場景。
鏈接¶
- 目錄頁:
https://www.skillhub.cn/plugins/siegfly/dsh-deepseek-vision - GitHub:
https://github.com/siegfly/dsh-deepseek-vision