dsh-image-describe
DeepSeek Harness 宿主插件:让不支持图片输入(纯文本)的主模型也能通过 describe_image 工具“看图”。
安装
npx @deepseek-ai/dsh plugin --profile web add github:sd1g1/dsh-image-describe配置
首次启动会自动创建 ~/.dsh/image-describe.json(路径遵循 $DSH_HOME)。模板把 vision.provider / vision.model 留空,此时插件休眠,不影响正常请求;填写视觉模型后保存即热生效,无需重启:
{
"vision": { "provider": "my-vision-provider", "model": "vision-model" },
"prompt": "请详细描述这张图片的内容",
"maxTokens": 1500,
"image": { "autoResize": true }
}vision.provider/vision.model:必填;留空 = 休眠prompt:可选,默认兜底指令maxTokens:可选,默认 1500image.autoResize:可选,默认true。发送给视觉模型前沿用 pi-coding-agent 的图片处理方法:大图先缩到 2000x2000,再在 PNG/多档 JPEG 中选最小编码;处理失败时回退原图,不影响看图。设为false关闭
调用方式
describe_image 的 attachment 和 path 二选一:
attachment:使用之前标记里出现过的attachmentId,无需用户重新发送图片。插件会依次搜索当前会话的派生消息、完整事件日志(被压缩的历史仍可解析)以及当前已加载的其他会话。path:直接描述本地图片文件(绝对路径,或相对会话 cwd 的相对路径;支持 png/jpeg/webp/gif)。插件通过宿主fs服务读取文件,再交给附件服务校验并转为视觉模型可读的引用;与attachment一样,描述前会按image.autoResize预处理。
验证
- 给纯文本模型发送一张图片:请求会被替换为
attachmentId标记,模型可调用describe_image获取图片描述;之后让模型直接凭该attachmentId再次调用,也应成功。 - 让模型调用
describe_image({ path: "/绝对路径/图片.png" }),应返回该图片的描述。
卸载
npx @deepseek-ai/dsh plugin --profile web remove @local/dsh-image-describe