dsh-image-bridge:为纯文本主模型补上独立视觉子智能体识图

前言

在 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 说明):

  1. 注册模型侧工具
    默认工具名为 recognize_image(可通过配置改名为其他名称)。

  2. 解析并托管图片
    调用时根据模型传入的参数解析图片:文件路径(绝对或相对于工作区)、图片附件 id,或未传参时使用会话中最近一张图片;经 Harness 附件服务存储后交给子智能体。

  3. 启动视觉子智能体
    在 ctx.subagents 下创建子智能体,使用本插件配置中的 provider 与 model,不使用父智能体的路由。子智能体带着图片与调用方的问题作答,返回纯文本供主模型继续推理。

  4. 子智能体运行约束
    - maxDepth: 1:子智能体不能再派生下一层 agent。
    - delivery: 'caller':完成通知不会泄露到主对话。
    - 每次调用回答一个问题后即销毁。
    - 默认单次超时 180000 ms。

  5. 提示主模型使用该工具
    在 guideline 为真(默认)时,会在系统提示中加入简短说明,让在运行时剥离图片的主模型知道应通过该工具处理图像。

  6. 启动前校验
    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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜