前言¶
DeepSeek Harness 的插件化思路,是把不同能力掛載到智能體上。對只能處理文本的智能體來說,截圖、圖表或照片裏的內容無法直接成爲推理輸入。dsh-image-reader 提供一個模型可見的 read_image 工具,讓智能體通過 OpenAI-compatible vision endpoint 讀取圖片,並基於圖片內容回答問題。
插件定位¶
dsh-image-reader 是一個 MIT 許可證的 DSH 插件,倉庫 owner 爲 zcXie777,倉庫地址爲:
https://github.com/zcXie777/dsh-image-reader
它的核心能力是向 DeepSeek Harness 智能體暴露一個 read_image 工具。工具接收工作區內的圖片路徑,並可選擇攜帶一個問題;隨後插件調用已配置的視覺接口,將回答返回給模型。
核心能力¶
dsh-image-reader 提供以下已覈實能力:
- 提供一個模型側
read_image工具,供 DeepSeek Harness 智能體調用。 - 通過任意 OpenAI-compatible vision endpoint 讀取圖片。
read_image支持傳入圖片路徑和可選的query。- 支持以下配置項:
provider.baseUrl、provider.model、provider.apiKeyEnv、lang、timeoutMs、maxImageBytes、allowedDirs。 - API key 在每次調用時從環境變量讀取,不寫入配置。
- 輸入路徑會結合 workspace 和
allowedDirs通過realpath解析,避免通過 symbolic link 繞過允許目錄。 - 上傳圖片前會進行大小限制和擴展名檢查。
- 本地驗證已通過:
npm run typecheck、npm run build、npm test,其中測試用例數量爲 16。
安裝與啓用¶
運行環境需要滿足:
Node engines: ^22.19.0 || >=24.0.0
Peer dependencies: @deepseek-ai/cordis ^4.0.1 and @deepseek-ai/dsh-tools ^0.0.1-rc.1
先克隆倉庫並構建一次。lib/ 目錄不會提交到倉庫,因此克隆後需要執行 npm run build。
git clone https://github.com/zcXie777/dsh-image-reader.git
cd dsh-image-reader
npm install
npm run build # lib/ is not committed; build once after cloning
cd ..
dsh plugin --profile web add "$PWD/dsh-image-reader"
dsh plugin --profile headless add "$PWD/dsh-image-reader"
dsh --profile web --dump-config | grep image-reader
安裝後,如果正在運行 Web profile,需要重啓該 profile。
配置說明¶
provider.baseUrl 和 provider.model 是必填項。插件不預設具體供應商,需要使用者在 profile patch row 中填寫對應視覺服務的 base URL 和模型名稱。
下面是一個配置示例:
- id: image-reader
config:
provider:
baseUrl: "https://vision.example.com/v1"
model: "your-multimodal-model"
apiKeyEnv: "VISION_API_KEY"
lang: "zh"
timeoutMs: 60000
maxImageBytes: 10485760
allowedDirs: []
啓動 profile 前,需要先把 API key 放到環境變量中:
export VISION_API_KEY=sk-...
各配置項含義如下:
provider.baseUrl:OpenAI-compatible vision endpoint 的 base URL,必填。provider.model:多模態模型名稱,必填。provider.apiKeyEnv:保存 API key 的環境變量名,示例中使用VISION_API_KEY。lang:回答語言,支持zh或en。timeoutMs:整次請求超時時間,單位毫秒。maxImageBytes:單張圖片允許的最大編碼字節數。allowedDirs:額外允許讀取的目錄列表;workspace 本身允許使用。
典型用法¶
在對話中,可以讓智能體調用 read_image,並指定圖片路徑和可選問題:
read_image image="screenshot.png" query="What error is shown in this dialog?"
如果只需要讀取圖片並讓模型基於圖片內容回答後續問題,也可以只傳路徑:
read_image image="diagram.png"
適用場景與注意¶
適合需要讓 DSH 智能體直接查看工作區圖片的場景,例如讀取截圖、圖表或照片中的內容,並圍繞該圖片回答問題。
使用前注意以下幾點:
- 該插件尚未對真實 live vision endpoint 完成端到端驗證。本地測試覆蓋了 mock fetch 的請求/響應邏輯,但依賴真實視覺服務前,建議先用真實
VISION_API_KEY做一次 smoke test。 - 插件會運行在當前 DSH 進程權限內。安裝前建議檢查源碼和 MIT 許可證。
- API key 每次調用時從環境變量讀取,不保存在配置中。
- 輸入路徑會通過
realpath解析到 workspace 和allowedDirs內,symbolic link 不能繞出允許目錄。 - 圖片上傳前會進行大小限制和擴展名檢查。
- 安裝後需要重啓正在運行的 Web profile。
- 需要滿足 Node engines:
^22.19.0 || >=24.0.0,以及 peer dependencies:@deepseek-ai/cordis ^4.0.1、@deepseek-ai/dsh-tools ^0.0.1-rc.1。
結尾¶
dsh-image-reader 的價值很集中:給只能處理文本的 DeepSeek Harness 智能體增加一個 read_image 工具,使其可以通過 OpenAI-compatible vision endpoint 讀取工作區圖片並回答問題。它通過 dsh plugin 安裝,配置重點是 provider.baseUrl、provider.model 和 API key 環境變量。
倉庫地址:
https://github.com/zcXie777/dsh-image-reader
DSH 社區目錄是獨立站點,可用來發現此類插件;不要把目錄頁理解爲 DeepSeek 或幻方的官方應用商店。