前言¶
在 DeepSeek Harness(DSH)里,主对话模型往往是你已经配好路由的那一档:有的支持多模态,有的运行时会把图片块投影成占位文本再发出请求。后者在对话里仍然可以「提到」图片路径或附件,但主模型本身看不到像素。常见做法是换一条 vision 路由当主模型,或在应用层自己接 OCR / 识图 API;dsh-image-bridge 的做法是在 Harness 内注册一个面向模型的工具,由单独配置的子智能体去读图并把答案以纯文本交回主模型。
下面介绍该插件的定位、能力与配置方式。事实以 GitHub README 为准。
这是什么¶
- 名称:
dsh-image-bridge(社区目录:caipanjin/dsh-image-bridge,分类:模型推理) - 维护者:caipanjin
- npm 包名:
dsh-image-bridge(当前资料中的版本为0.2.6,许可证 MIT) - 一句话:通过独立的 vision 子智能体识别图片;子智能体使用的
provider/model与主智能体无关。
核心功能¶
插件在启用后主要做以下几件事(均来自 README 说明):
-
注册模型侧工具
默认工具名为recognize_image(可通过配置改名为其他名称)。 -
解析并托管图片
调用时根据模型传入的参数解析图片:文件路径(绝对或相对于工作区)、图片附件 id,或未传参时使用会话中最近一张图片;经 Harness 附件服务存储后交给子智能体。 -
启动视觉子智能体
在ctx.subagents下创建子智能体,使用本插件配置中的provider与model,不使用父智能体的路由。子智能体带着图片与调用方的问题作答,返回纯文本供主模型继续推理。 -
子智能体运行约束
-maxDepth: 1:子智能体不能再派生下一层 agent。
-delivery: 'caller':完成通知不会泄露到主对话。
- 每次调用回答一个问题后即销毁。
- 默认单次超时180000ms。 -
提示主模型使用该工具
在guideline为真(默认)时,会在系统提示中加入简短说明,让在运行时剥离图片的主模型知道应通过该工具处理图像。 -
启动前校验
provider与model未配置时插件拒绝运行;发起调用时若仍为空会给出明确错误。启动子智能体前会检查所配模型的inputModalities,若路由不接受图片则提前失败,避免把占位文本误发给纯文本模型。
安装与启用¶
包发布在 npm,作为 DSH profile bundle 安装,无需额外构建步骤(入口为 lib/index.js)。官方安装命令如下:
dsh plugin --profile <profile> add dsh-image-bridge
也可在 DSH 插件中心 / 插件管理器按包名 dsh-image-bridge 安装。运行时依赖 @deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-subagent 等 peer dependency,由 Harness 安装提供,插件包本身不附带这些模块的 node_modules。
package.json 中声明的引擎约束包括 Node ^22.19.0 || >=24.0.0,以及 DSH >=0.2.0 <0.3.0-0;安装前请对照你本地的 Harness 与 Node 版本。
配置¶
在 profile 的 cordis.patch.yml 中配置键 vision-bridge;带 * 的字段可在 Settings UI 中 live 编辑。
| 字段 | 默认值 | 含义 |
|---|---|---|
provider |
(必填) | 子模型 provider,如 openai、anthropic、deepseek。 |
model |
(必填) | 该 provider 上的视觉模型 id,如 gpt-4o-mini、qwen-vl-max。 |
reasoningEffort* |
'' |
子路由推理力度;空则走模型默认。 |
maxTokens* |
4096 |
单次子调用输出上限。 |
subagentProvider |
spawn |
ctx.subagents 后端;spawn 随 dsh base 提供。 |
subagentLabel |
vision |
子智能体标签前缀,后会追加问题摘要。 |
labelQuestionChars |
40 |
追加到标签的问题字符数;0 则仅保留前缀。 |
toolName |
recognize_image |
暴露给主模型的工具名。 |
maxDepth |
1 |
委托深度上限。 |
timeoutMs |
180000 |
单次调用超时(毫秒)。 |
systemPrompt* |
'' |
覆盖子智能体内建分析指令。 |
guideline* |
true |
是否向主模型添加「有图时调用此工具」的提示行。 |
随包自带的 cordis.patch.yml 故意将 provider / model 留空,需要你在 profile 里填入一条接受图片输入的路由;二者未设置前插件不会正常工作。
工具参数与典型用法¶
工具参数(README 定义):
question(必填):希望从图片中得到什么答案。images(可选):一个或多个图片路径或图片附件 id;省略则使用会话中最近一张图。
典型流程是:主模型在无法直接读像素的环境下,对用户关于截图、照片、图表的问题调用 recognize_image,传入 question 与可选的 images;子智能体用你配置的视觉模型作答,主模型再把返回的文本融入回复。具体触发方式取决于主模型与 DSH 工具调用行为,README 未给出固定对话示例,此处不臆造样例对话。
开发侧可对无外部依赖的 lib/pure.js 跑单元测试:
npm test
(node --test,无需完整 Harness 运行时。)
适用场景与注意¶
更适合:主路由是纯文本或多模态被运行时剥成占位文本,但仍需在对话里处理用户上传的图片、工作区内的图像文件或附件;希望 vision 能力与主模型解耦(例如主模型用 DeepSeek 文本档,识图用另一家 gpt-4o-mini / qwen-vl-max 等)。
需要注意:
- 子智能体每次调用消耗所配视觉模型的配额与时延,并受
timeoutMs、maxTokens限制。 - 插件在 DSH 进程权限下运行,能访问你配置的路径与附件;安装前应阅读源码与 MIT 许可证,确认路由与密钥配置符合你的安全策略。
- DSH 社区插件目录(如 skillhub.cn 上的条目)为独立生态站点,与 DeepSeek / 幻方无官方从属关系;星标等元数据以各站点当时展示为准(资料中 GitHub 星标为 0)。
结尾¶
dsh-image-bridge 用一条可配置的路由和一层深度为 1 的视觉子智能体,把「看图」从主模型运行时里拆出来,让文本优先的主 agent 仍可通过 recognize_image 获得像素级答案。安装命令为 dsh plugin --profile <profile> add dsh-image-bridge,配置核心在 vision-bridge 的 provider 与 model。