dsh-vision-bridge(视觉桥接)
DSH profile 插件包:面向使用不支持图片模型的会话(如 DeepSeek)。它不再让 "当前模型不支持图片"的拦截出现,而是执行以下流程:
1. 把图片落盘到会话工作区(.dsh-vision-bridge/); 2. 通过平台授权的 agent/pre-step 消息改写通道,把消息改写为携带图片路径的 [图片桥接] 指令; 3. 注册系统提示词规则(顺序 150),要求模型先调用所选视觉工具 (默认 vision_glance,支持模糊输入 glance / ground / detect, 按 agent 实际工具集模糊匹配)分析图片,再基于结果回答——工具调用卡片 与结果会正常显示在会话中; 4. 补丁 llm.streamWithRegistration(llm.stream 与 agent 循环 prepared-call 路径的共同分派漏斗),在文本型 adapter 序列化前剥离图片块(包括嵌套在 工具结果内的图片块),替换为占位文本。
命中排除的会话预设(默认 minimal 极简模式,仅 bash + 文件编辑工具)的 会话不做桥接:图片替换为"当前模型不支持图片"的拦截文案。会话实际运行的预设 按 DSH 自身的解析方式判定:最新一条 agent-preset/selected 事件优先, 创建时头部仅作回退。
拦截来自哪里?——DSH 自身的限制
dsh-host-apiproxy的promptRPC 在消息进入会话之前检查
llm.resolveModelInfo().inputModalities,非视觉模型直接拒绝(界面上看到的横幅)。
- DeepSeek adapter 序列化时对任何含图片块的消息抛
UNSUPPORTED_CONTENT。
本插件在三个层面介入:
| 层面 | 机制 |
|---|---|
| 准入 | 给 llm.resolveModelInfo 打补丁,桥接模型返回含 image 的模态 |
| 当前消息 | agent/pre-step 落盘图片并注入"调用视觉工具"指令 |
| 历史兜底 | 给 llm.streamWithRegistration(共同分派漏斗)打补丁,adapter 序列化前剥离图片块 |
设置(设置 → 视觉桥接)
| 设置 | 默认 | 说明 |
|---|---|---|
| 启用视觉桥接 | 开 | 关闭 = 完全恢复 DSH 原生拦截 |
| 视觉工具(模糊输入) | vision_glance | 指定模型调用的工具,按 agent 实际工具集模糊匹配 |
| 自定义提问(可选) | 空 | 传给视觉工具的分析指令 |
| 需要桥接的模型 | deepseek-official*,deepseek* | provider[:model] 模式,支持 * 通配 |
| 排除的会话预设 | minimal | 多选勾选 + 附加通配模式;命中则不桥接 |
配置通过 DSH 设置服务持久化(命名空间 vision-bridge),重启后保留。
环境兼容:WSL+Ubuntu 与 Windows
- 图片字节经 stdin base64 写入工作区(避免命令行超长):Linux/WSL 用
bash(base64 -d),Windows 原生用 PowerShell([IO.File]::WriteAllBytes); shell 口味启动后自动探测(Write-Output 探针 + resolveExecutable('pwsh') 备用)。
- shell 命令携带按会话解析的沙箱策略(与 bash 工具一致):
danger-full-access 会话无需沙箱后端即可运行;受限会话在有后端时被约束在工作区内。
- 视觉工具本身是 DSH 原生工具(vision-tools 技能),其运行环境自带跨平台支持。
前提
- 会话需已加载 vision-tools 技能(或其它视觉插件),使 agent 工具集里存在视觉工具;
否则降级为"先加载技能"的自愈指令或明确提示。
- 标准/cordis 预设含
skill工具;极简模式没有(默认已被排除)。
安装
解压本包后加入 profile:
unzip dsh-vision-bridge.zip -d dsh-vision-bridge
dsh plugin --profile web add ./dsh-vision-bridge(dsh plugin 会把参数转发给 profile 目录下的 pnpm;也可将解压目录放入 profile 的 node_modules/@dsh-external/ 后重新对账插件。)
已知限制
- 准入补丁为进程级,被排除会话无法走原生错误横幅,以文本呈现同一原因。
- 插件挂载期间,其全局效果(llm 补丁、pre-step 监听、系统规则)作用于整个进程。
- 桥接模型不会收到图片块(adapter 不允许),附件仍保留在会话中可查看。