dsh-image-subagent:让纯文本主模型也能接收图片附件

前言

在 DSH 的插件体系里,扩展通常来自对路由声明、占位投影和工具门禁的适配。dsh-image-subagent 处理的是一个具体问题:主模型是纯文本路由,但会话里仍然需要接收图片附件。插件会把图片投影为携带完整 attachmentId 的显式文本占位符,再由主模型委托视觉子代理读取。

这是什么

  • 插件名:yuqingsh/dsh-image-subagent
  • 维护者:yuqingsh
  • 许可证:MIT
  • 本文介绍版本:v0.2.0
  • 兼容:@deepseek-ai/dsh >=0.1.1-rc.2,该 peerDependency 为 optional
  • 运行环境:engines 要求 node >=20

一句话定位:让纯文本主模型(DeepSeek V4 等)也能接收图片附件,同时保持主模型不直接读图,由视觉子代理通过 read_image 读取附件对象。

核心功能

放行图片准入门禁

v0.2.0 将旧版“补报 image 能力”改为“抹除纯文本路由的 inputModalities 声明”。在 dsh 0.1.1 的图片准入门禁下,声明省略(undefined)会被视为负能力直接放行,因此贴图不再被显式拒绝。

投影为显式文本占位符

图片进入会话后,会被投影为携带完整 attachmentId 的显式文本占位符。主模型收到该占位符后,可以据此把附件对象路径传给视觉子代理。

附件对象路径规则为:

~/.dsh/attachments/v1/objects/<id 前 2 位 hex>/<64 位 hex>

主模型委托视觉子代理读取

主模型不能自己读图。read_image 工具门禁仍会拒绝主模型路由 inputModalitiesundefined 的情况,因此委托流保持不变:视觉子代理通过 read_image 工具读取附件对象路径,并返回像素级描述。

视觉路由原生直读

如果路由本身就是视觉路由,例如 deepseek-v4-flash-vision-exp,且声明包含 image,插件会旁路,保留原生直读路径。

提供状态端点

插件提供 /image-subagent/status 状态端点,用于验证当前安装与投影状态。

安装与启用

安装前需要 pnpm

brew install pnpm

下面给出两种安装方式:本地 checkout,或按 git 标签安装。

本地 checkout:

dsh plugin --profile web add ./dsh-image-subagent

按 git 标签安装:

dsh plugin --profile web add github:yuqingsh/dsh-image-subagent#v0.2.0

安装后,重启 dsh web 并刷新页面。

典型用法

前置条件

  • 预设里有一个视觉子代理,例如 subagent_observer
  • 该子代理的模型声明 image 输入,例如 deepseek-v4-flash-vision-exp
  • 该子代理的工具集包含 read_image

使用流程

1、在 DSH 会话中贴图,并附上问题。

2、图片准入门禁放行。

3、主模型收到富占位符,其中包含完整 attachmentId 和附件对象路径。

4、主模型委托 subagent_observer 使用 read_image 读取该路径。

5、subagent_observer 返回像素级描述。

6、主模型基于该描述作答。

验证安装

向状态端点发送 methodstatusclient-request

curl -s -X POST http://127.0.0.1:3080/image-subagent/status \
  -H 'content-type: application/json' \
  -d '{"type":"client-request","rpcId":"s1","method":"status","payload":{}}'

v0.2.0 的预期结果是:

  • bridged"(omitted — paste gate passes)"
  • real["text"]

旧版 v0.1.x 的预期是 bridged"image"

适用场景与注意

适合以下情况:

  • 主模型是纯文本路由,但会话中需要接收图片附件
  • 已有可声明 image 输入的视觉子代理
  • 希望主模型不直接读图,而是把图片读取委托给视觉子代理
  • 想在 dsh 0.1.1 及更高 rc 版本中适配图片附件进入流程

需要注意:

  • v0.2.0 对应 dsh >=0.1.1-rc.2;v0.1.x 对应 dsh 0.1.0-rc.x
  • @deepseek-ai/dsh >=0.1.1-rc.2peerDependencies 中为 optional
  • 插件会在当前 dsh 进程权限下参与会话处理,安装前应检查源码与许可证
  • 许可证为 MIT
  • DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应将其理解成官方应用商店

结尾

dsh-image-subagent 的价值在于:主模型保持纯文本路由,图片附件通过显式占位符进入上下文,读取工作交给视觉子代理。如果你的 DSH 配置中已有可用的视觉子代理,并希望避免把图片直接发给纯文本端点,可以按上面的步骤安装并验证。

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

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

小夜