dsh-image-reader:爲 DeepSeek Harness 智能體提供 read_image 圖片讀取工具

前言

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 或幻方的官方應用商店。

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

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

小夜