yuqingsh/dsh-image-subagent ↗★ 3
dsh-image-subagent
让纯文本主模型(如 DeepSeek V4)通过视觉子代理和 read_attachment/read_image 工具接收并读取图片附件的插件。
AI 分析
核心用途是让纯文本大模型具备看图能力。适合需要处理图片附件但主模型不支持多模态的用户。必要条件是需配置一个声明了 image 输入的多模态子代理,且子代理需在当前会话内派生。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:yuqingsh/dsh-image-subagent說明文件
閱讀完整 README ↗使用方法
1. 一次性:配置视觉子代理
插件只负责「放行图片 + 投影占位符」;真正看图的是你预设里的视觉子代理。在 DSH 网页的 Agent 预设里添加一个子代理(如 observer):
- 模型选声明了 image 输入的多模态模型(如 MiniMax M3 / Kimi 视觉模型);
- 工具集勾选
read_attachment、read_image(由核心dsh-tool-fs提供,多数完整预设默认已挂载); - 主模型保持纯文本(如 DeepSeek V4 Pro / Flash)。
子代理读图的硬性要求(缺一不可):
- 子代理模型必须声明 image 输入(
inputModalities含image)——若子代理也是纯文本路由,本插件的投影会把图片同样变成占位符,子代理只能拿到元数据、看不到像素; - 工具集包含
read_attachment/read_image; - 子代理必须在本会话内派生(spawn / fork)——附件读取按会话日志的引用授权,独立新会话无权读取该 id;
- 主模型委托时把占位符里的
attachmentId一并传给子代理(占位符自带 id,主模型按提示传递即可)。
没有视觉子代理时,占位符会进入对话,但无人能读图——主模型会告知你这一情况。
2. 日常使用:贴图 → 委托 → 读图
直接在聊天框粘贴图片,附上你的问题:
你:[贴上截图] 看看这个面板报错是什么
主模型(纯文本):收到占位符
"[image attachment "image.png" (image/png, 774x542 px, id=sha256:…)
— not visible to this text-only model route; a vision-capable
subagent can inspect it with the read_attachment tool]"
主模型:把附件 id 交给 observer 子代理,请求读图
observer(多模态):read_attachment(sha256:…) → 完整描述图片
主模型:基于描述继续推理作答(可继续追问细节)
已实测的组合(DeepSeek V4 主模型 + MiniMax M3 observer):贴图 → 准入放行 → 附件入库 → 主模型收到占位符 → observer 读图并作答 → 本轮正常完成。
3. 验证安装是否生效
重启后探测桥接状态(bridged 应含 image,real 为路由真实声明):
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":{}}'
预期:
{ "result": { "ok": true, "value": {
"name": "image-subagent",
"bridged": ["text", "image"],
"real": ["text"] } } }
1. 一次性:配置视觉子代理
插件只负责「放行图片 + 投影占位符」;真正看图的是你预设里的视觉子代理。在 DSH 网页的 Agent 预设里添加一个子代理(如 observer):
- 模型选声明了 image 输入的多模态模型(如 MiniMax M3 / Kimi 视觉模型);
- 工具集勾选
read_attachment、read_image(由核心dsh-tool-fs提供,多数完整预设默认已挂载); - 主模型保持纯文本(如 DeepSeek V4 Pro / Flash)。
子代理读图的硬性要求(缺一不可):
- 子代理模型必须声明 image 输入(
inputModalities含image)——若子代理也是纯文本路由,本插件的投影会把图片同样变成占位符,子代理只能拿到元数据、看不到像素; - 工具集包含
read_attachment/read_image; - 子代理必须在本会话内派生(spawn / fork)——附件读取按会话日志的引用授权,独立新会话无权读取该 id;
- 主模型委托时把占位符里的
attachmentId一并传给子代理(占位符自带 id,主模型按提示传递即可)。
没有视觉子代理时,占位符会进入对话,但无人能读图——主模型会告知你这一情况。
2. 日常使用:贴图 → 委托 → 读图
直接在聊天框粘贴图片,附上你的问题:
你:[贴上截图] 看看这个面板报错是什么
主模型(纯文本):收到占位符
"[image attachment "image.png" (image/png, 774x542 px, id=sha256:…)
— not visible to this text-only model route; a vision-capable
subagent can inspect it with the read_attachment tool]"
主模型:把附件 id 交给 observer 子代理,请求读图
observer(多模态):read_attachment(sha256:…) → 完整描述图片
主模型:基于描述继续推理作答(可继续追问细节)
已实测的组合(DeepSeek V4 主模型 + MiniMax M3 observer):贴图 → 准入放行 → 附件入库 → 主模型收到占位符 → observer 读图并作答 → 本轮正常完成。