前言¶
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 或幻方的官方应用商店。