lcb522
dsh-plugin-vision-bridge
DSH plugin: let text-only model sessions see images via a vision-model bridge (chat uploads + read_image)
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-plugin-vision-bridge
让纯文本模型会话也能"看图",覆盖两条路径:
- 聊天框发图/贴图:上传预检会以"当前模型不支持图片"拒绝纯文本模型——插件拦截
session.promptRPC,被拒绝时自动把图片交给配置的视觉模型(默认zai/glm-4.6v) 识别,用文字描述替换图片后重新提交。会话历史中只有文字,没有图片块。 read_image工具:模型调用 read_image 读工作区图片文件时,同样转由视觉模型 识别,返回文字描述。
两种情况下,会话本身继续使用你选定的文本模型(如 glm-5.2 / deepseek)。
行为
- 会话模型不支持图像(glm-5.2、deepseek 系列)→ 上述两条路径都走视觉桥。
- 会话模型支持图像(如你把会话切到 GLM-4.6V 本身)→ 原生直通,桥完全不介入 (聊天发图先原样提交,只有被拒才桥接,零额外开销)。
- 视觉调用失败(配额、网络)→ 返回明确的错误信息,不静默丢图。
配置(profile 的 cordis.patch.yml 中挂载行)
| 字段 | 默认 | 说明 |
|---|---|---|
provider | zai | 视觉模型所在 provider 路由(settings.yaml 里配置的) |
model | glm-4.6v | 视觉模型 id(必须在该 provider 的 models 列表中声明) |
system | 见代码 | 视觉调用的系统提示词(如何描述图片) |
userText | 见代码 | 视觉调用的用户侧指令 |
maxTokens | 16384 | 视觉调用输出上限 |
timeoutMs | 180000 | 视觉调用软超时 |
redirectReadImage | true | 是否拦截 read_image 工具调用 |
redirectChatUploads | true | 是否桥接聊天框图片上传 |
更换视觉模型
编辑 ~/.dsh/profiles/web/cordis.patch.yml 中 vision-bridge 行的 provider/model,
重启 harness 即可。模型需在 ~/.dsh/settings.yaml 的 llm-pi-ai.providers.<provider>.models
中声明(含 input: [text, image])。
前提
~/.dsh/settings.yaml 中对应 provider 的 models 列表必须包含视觉模型,例如:
llm-pi-ai:
providers:
zai:
apiKeyEnv: ZAI_API_KEY
models:
- id: glm-4.5-air
- id: glm-4.7
- id: glm-5-turbo
- id: glm-5.1
- id: glm-5.2
- id: glm-5v-turbo
- id: glm-4.6v # ← 新增的视觉模型
name: GLM-4.6V
contextWindow: 200000
maxTokens: 131072
input: [text, image]
注意:models 列表会整体替换该 provider 的内置目录,原有条目要以裸 id 形式保留。
安装与使用
1. 获取源码
git clone https://github.com/lcb522/dsh-plugin-vision-bridge.git
# 或 Gitee 镜像:
# git clone https://gitee.com/lcb522/dsh-plugin-vision-bridge.git
2. 复制到运行时位置
Copy-Item -Recurse -Force dsh-plugin-vision-bridge "$env:USERPROFILE\.dsh\profiles\node_modules\dsh-plugin-vision-bridge"
运行时位置 ~/.dsh/profiles/node_modules/dsh-plugin-vision-bridge/ 是共享回退层,
所有 profile 都能解析。依赖 @deepseek-ai/schemastery 已由官方共享层提供,无需自带。
3. 挂载到 profile
编辑 ~/.dsh/profiles/web/cordis.patch.yml,加入:
- insert:
- id: vision-bridge
name: dsh-plugin-vision-bridge
config:
provider: zai # 视觉模型所在 provider
model: glm-4.6v # 视觉模型 id
maxTokens: 16384
timeoutMs: 180000
redirectReadImage: true
redirectChatUploads: true
4. 重启 harness
双击桌面 harness 图标(或重新运行 npx @deepseek-ai/dsh web)。
怎么用(无需额外操作)
- 聊天框发图/贴图:直接往输入框拖图。纯文本模型会话中,图片自动转成 视觉模型生成的文字描述再提交;支持图像的模型则原生直通,桥不介入。
- 读工作区图片:让模型调用
read_image读任意工作区图片文件,返回的同样是 视觉模型的文字描述。
更新
cd dsh-plugin-vision-bridge
git pull
Copy-Item -Recurse -Force . "$env:USERPROFILE\.dsh\profiles\node_modules\dsh-plugin-vision-bridge"
复制后重启 harness 生效。
已知边界
- 聊天框桥接发生在
session.prompt(浏览器 RPC)层;subagent.prompt等其他入口未桥接。 - 视觉模型看到的只有单张图片 + 固定提示词,不携带会话上下文。