ysr666/dsh-vision-router
ysr666/dsh-vision-router为纯文本 Agent 提供视觉能力:内置免 Key 视觉链 + 像素级视觉工具(看图问答、定位、裁剪、像素对比、取色、OCR、矢量化、抠图、截图);粘贴图片即可用。
将会话图片转交可配置视觉服务,并向符合条件的 DeepSeek Harness 模型路由返回纯文本分析。
为 DeepSeek Harness 中的文本模型扩展视觉能力
dsh-vision-bridge 是一个可安装的 DeepSeek Harness bundle,用来为文本模型路由补充图片理解能力。它保留 Harness 原有的模型列表,只在适合桥接的模型右侧增加一个眼镜开关,并把图片分析委托给单独配置的视觉 Provider。
插件支持 Gemini 原生协议、OpenAI 兼容的 Chat Completions/Responses,以及 Anthropic 兼容的 Messages API。视觉 Provider 只返回有长度限制的文本分析;图片块不会直接发送给当前上游模型。
DeepSeek + Vision Bridge Provider 分组。| 操作或状态 | 结果 |
|---|---|
| 灰色眼镜 | 该模型未开启视觉桥接。 |
| 蓝色眼镜 | 该模型已开启视觉桥接。 |
| 点击眼镜 | 只切换并记住偏好,不改变当前选中的模型。 |
| 点击模型名称或模型行 | 选择模型;蓝色时走视觉桥接,灰色时走普通上游路由。 |
| 悬停眼镜 | 显示负责图片理解的视觉 Provider 和模型。 |
只有在存在对应桥接路由,并且上游模型是纯文本或图片能力未知时,才会显示眼镜。开关偏好按上游模型保存在本地 Harness 客户端中。
vision_bridge,工具通过 Harness 附件服务读取最近的会话图片。仍然支持显式 image_paths;工作区路径通过 Harness 文件系统策略解析。
0.1.0-rc.5 或兼容的 0.1.x 版本^22.19 或 >=24为了兼容旧配置,默认 Provider 使用 GOOGLE_API_KEY、Gemini 原生端点和 gemini-3.6-flash。
安装语义化版本最高的发布标签:
dsh plugin --profile web add "github:GXX182/dsh-vision-bridge#semver:*"
#semver:* 会选择 GitHub 上符合语义化版本的最新标签。需要可复现安装时,请固定具体标签,例如 #v0.2.0。
如果使用 npx 启动 Harness:
npx @deepseek-ai/dsh plugin --profile web add "github:GXX182/dsh-vision-bridge#semver:*"
npx @deepseek-ai/dsh plugin --profile web list
npx @deepseek-ai/dsh web
除非修改 DSH_HOME,持久化的 web profile 默认保存在 ~/.dsh/profiles/web。
npm install
npm run build
dsh plugin --profile web add .
dsh --profile web --dump-config
dsh --profile web
配置输出中应包含 dsh-vision-bridge 层和 vision-bridge 插件行。
打开 设置 → 插件 → 插件配置 → 图片理解。
每个 Provider 配置包含:
添加 Provider 时会先验证模型列表接口。凭证通过 Harness 凭证服务保存,完整 Key 永远不会返回浏览器。切换 Provider 后,眼镜的悬停提示会立即更新为新的 Provider 名称和模型。
使用 apiFormat: auto 时,插件先检查完整接口路径,再检查官方域名与版本路径:
:generateContent、/v1beta 或 generativelanguage.googleapis.com → Gemini 原生协议/v1/messages 或 api.anthropic.com → Anthropic 兼容协议/chat/completions 或 /responses → OpenAI 兼容协议如果一个不明确的中转地址实际使用 Gemini 或 Anthropic 语义,请显式设置接口格式。插件不会为了探测协议而把同一张图片重复发送给多个接口。
默认 schema 无需修改即可使用。如果需要覆盖,请在 profile 的 cordis.patch.yml 中完整替换该插件行的 config:
- id: vision-bridge
config:
bridgeProvider: deepseek-vision-bridge
upstreamProvider: deepseek-official
apiKeyEnv: GOOGLE_API_KEY
apiFormat: auto
baseURL: https://generativelanguage.googleapis.com/v1beta
model: gemini-3.6-flash
maxImages: 8
maxImageBytes: 8388608
maxTotalImageBytes: 12582912
maxQuestionChars: 8000
maxOutputTokens: 4096
maxResponseBytes: 524288
maxAnswerBytes: 131072
timeoutMs: 90000
会话附件通常不需要显式指定工具。如果要检查工作区文件,可以直接告诉 Agent:
使用
vision_bridge检查screens/settings.png,列出可见控件和校验错误。
Code Mode 可以调用 await tools.vision_bridge(...)。省略图片参数时使用最近的会话附件;使用 attachment_ids 指定 session 图片;使用 image_paths 读取工作区文件。
apiFormat。llm/stream 中间件会同时观察桥接请求和委托后的上游请求。npm install
npm run verify
npm pack --dry-run
仓库会提交构建后的 lib/,以支持直接从 GitHub 安装。
MIT