Bundle
dsh-bundle-vision
Vision bundle + plugin for DeepSeek Harness: the describe_image tool reads local images and asks any configured multimodal route, with zero core changes
- Source
- skillre
- License
- MIT
- Updated
- Updated 2 days ago
Readme
# dsh-bundle-vision
给 DeepSeek Harness 提供**零核心改动的视觉能力**,以一个可安装的 npm 包同时充当 profile bundle 与插件:
- 插件注册面向模型的 **`describe_image`** 工具;
- bundle patch 把该插件挂载到任意 profile。
工具读取本地 PNG/JPEG/WebP/GIF 文件,把字节经随附的附件服务落盘,再用**一次直接的 LLM 请求**询问**调用参数指定的**多模态路由(`provider` / `model` 是工具参数)。结果只有文本——图像块绝不进入调用会话,因此纯文本主模型无需对 dsh 做任何改动即可获得视觉能力。
## 工作原理(全部走随附的公开 seam)
工具用到的一切都随每个 dsh profile 发布:
- `ctx.fs`(有界字节读取、按会话工作区解析)——文件系统能力;
- `ctx.attachments`(`saveImage`、图像限额、魔数校验)——持久图像存储;
- `ctx.llm`(`resolveModelInfo` + `stream`)配合 pi-ai 多提供方适配器——多模态请求本身。
唯一的逐部署前提与 dsh 的任何视觉用法相同:多模态模型必须在 `llm-pi-ai` 设置段声明图像输入,例如:
```yaml
llm-pi-ai:
providers:
my-vision:
apiKeyEnv: MY_VISION_API_KEY
api: openai-completions
baseURL: https://example.invalid/v1
models:
- id: my-vision-model
input: [text, image]
```
(在 Models 页已有输入模态控件的发布版上,这一声明就是一个下拉选择。)
## 安装(已装 dsh、非源码用户)
从 npm registry:
```sh
dsh plugin --profile <name> add dsh-bundle-vision
```
或从打包好的 tarball(例如首次发布前、或需要固定版本时):
```sh
dsh plugin --profile <name> add ./dsh-bundle-vision-0.1.0.tgz
```
`dsh plugin` 会把参数转发给 profile 目录里的 pnpm,并自动调和 profile 的 bundle 层列表——声明了 `dsh.bundle` 的依赖自动加入层栈。重启 `dsh <name>`;工具对每个 agent 可见(profile 根作用域的注册对所有 preset 作用域可见)。
## 使用
让主模型带上路由调用:
> 用 describe_image,file_path 填 `/path/to/photo.jpg`,provider 填 `my-vision`,model 填 `my-vision-model`,prompt 填"OCR 图片中的文字"。
主模型按次指定 provider/model——配置多条多模态路由即可按次切换,无需改 profile。每种拒绝都会点名具体门禁(未知扩展名、部署媒体类型、模型未声明图像输入、文件缺失、类型不匹配、流错误)。
## 版本下限
包对 dsh seam 包声明 `>=0.1.0-rc.6` 的 peer 依赖。若后续发布版本有要求,请同步抬升下限。
## 开发
```sh
npm install # 开发依赖从 npm registry 解析 seam 包
npm run typecheck # tsc --noEmit(src + tests)
npm test # vitest
npm run build # tsdown(lib/index.js)+ tsc 声明(lib/types)
npm pack # 生成可安装 tarball
```
Install
dsh plugin --profile web add dsh-bundle-vision@0.1.0
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-bundle-vision from the hub