yuqingsh/dsh-image-subagent3

dsh-image-subagent

让纯文本主模型(如 DeepSeek V4)通过视觉子代理和 read_attachment/read_image 工具接收并读取图片附件的插件。

AI 分析

核心用途是让纯文本大模型具备看图能力。适合需要处理图片附件但主模型不支持多模态的用户。必要条件是需配置一个声明了 image 输入的多模态子代理,且子代理需在当前会话内派生。

包名
dsh-image-subagent
版本
0.1.0
许可证
MIT
最近更新
2026年8月14日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:yuqingsh/dsh-image-subagent

使用方法

1. 一次性:配置视觉子代理

插件只负责「放行图片 + 投影占位符」;真正看图的是你预设里的视觉子代理。在 DSH 网页的 Agent 预设里添加一个子代理(如 observer):

  • 模型选声明了 image 输入的多模态模型(如 MiniMax M3 / Kimi 视觉模型);
  • 工具集勾选 read_attachmentread_image(由核心 dsh-tool-fs 提供,多数完整预设默认已挂载);
  • 主模型保持纯文本(如 DeepSeek V4 Pro / Flash)。

子代理读图的硬性要求(缺一不可)

  1. 子代理模型必须声明 image 输入(inputModalitiesimage)——若子代理也是纯文本路由,本插件的投影会把图片同样变成占位符,子代理只能拿到元数据、看不到像素;
  2. 工具集包含 read_attachment / read_image
  3. 子代理必须在本会话内派生(spawn / fork)——附件读取按会话日志的引用授权,独立新会话无权读取该 id;
  4. 主模型委托时把占位符里的 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 应含 imagereal 为路由真实声明):

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_attachmentread_image(由核心 dsh-tool-fs 提供,多数完整预设默认已挂载);
  • 主模型保持纯文本(如 DeepSeek V4 Pro / Flash)。

子代理读图的硬性要求(缺一不可)

  1. 子代理模型必须声明 image 输入(inputModalitiesimage)——若子代理也是纯文本路由,本插件的投影会把图片同样变成占位符,子代理只能拿到元数据、看不到像素;
  2. 工具集包含 read_attachment / read_image
  3. 子代理必须在本会话内派生(spawn / fork)——附件读取按会话日志的引用授权,独立新会话无权读取该 id;
  4. 主模型委托时把占位符里的 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 读图并作答 → 本轮正常完成。