Back to home@sd1g1

dsh-image-describe

DeepSeek Harness 宿主插件:让纯文本主模型也能通过 describe_image 工具“看图”

Stars
1
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 16, 2026
GitHub repo

Introduction

dsh-image-describe

MIT License

DeepSeek Harness 宿主插件:让不支持图片输入(纯文本)的主模型也能"看图"

工作原理

主模型通过显式调用 describe_image 工具获得图片描述(不是偷偷改写请求的隐藏管道):

  1. 纯文本模型的请求中,图片块被替换成一段文本标记(含图片 attachmentId);
  2. 主模型看到标记后按需调用 describe_imageattachment 传标记里的 id, instruction 写它需要从图中提取什么(数值、文字、布局等);
  3. 工具把"指令 + 图片"发给配置的视觉模型,返回文字描述供主模型阅读。

支持图片输入的模型看不到该工具(直接用原生 read_image 即可),两者互补互不干扰。

安装(dsh CLI)

无需克隆到扩展目录,一条命令从 git 仓库直接安装到 web profile:

# 从 GitHub 安装(自动添加依赖并挂载到 web profile 的 bundles 层)
npx @deepseek-ai/dsh plugin --profile web add github:sd1g1/dsh-image-describe

该命令会把参数转发给 profile 目录下的 pnpm,安装成功后自动把声明了 dsh.bundle 的包加入 dsh.profile.bundles。卸载同理:

npx @deepseek-ai/dsh plugin --profile web remove @local/dsh-image-describe

npm 安装暂不可用:dsh-image-describe 包名在 npm 上已被他人占用,本插件按 源码分发(git)。

配置

复制 image-describe.example.json~/.dsh/image-describe.json,填上支持图片输入的视觉模型即可:

{
  "vision": { "provider": "my-vision-provider", "model": "vision-model" },
  "prompt": "请详细描述这张图片的内容",
  "maxTokens": 1500
}
  • vision.provider / vision.model —— 必填;负责描述图片的视觉模型
  • prompt —— 可选;主模型未提供 instruction 时的兜底指令
  • maxTokens —— 可选;描述输出上限(默认 1500)

配置文件保存即热生效,无需重启;文件不存在时插件休眠(不影响任何请求)。 配置文件含你的模型路由,不要提交进 git 仓库

关键点

  • 隐私:调用 describe_image 的图片会原样发送给你配置的视觉模型(可能是第三方服务)。
  • 失败行为:附件找不到、视觉模型未配置或调用失败,都会给主模型明确的错误文本,由它自行决定下一步;标记替换本身失败则原请求原样转发,绝不中断。
  • 描述文本作为普通工具结果留在对话里,与其他工具结果同等对待(可压缩、可见于历史)。

开发

npm test   # node --test 单元测试;插件零第三方依赖

许可证

MIT