前言¶
在 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 工具门禁仍会拒绝主模型路由 inputModalities 为 undefined 的情况,因此委托流保持不变:视觉子代理通过 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、主模型基于该描述作答。
验证安装¶
向状态端点发送 method 为 status 的 client-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 对应 dsh0.1.0-rc.x @deepseek-ai/dsh >=0.1.1-rc.2在peerDependencies中为 optional- 插件会在当前
dsh进程权限下参与会话处理,安装前应检查源码与许可证 - 许可证为 MIT
- DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应将其理解成官方应用商店
结尾¶
dsh-image-subagent 的价值在于:主模型保持纯文本路由,图片附件通过显式占位符进入上下文,读取工作交给视觉子代理。如果你的 DSH 配置中已有可用的视觉子代理,并希望避免把图片直接发给纯文本端点,可以按上面的步骤安装并验证。