前言¶
在 DSH 的使用场景里,一个常见限制是:部分模型是 text-only 的,不能直接处理图片粘贴或图片块。dsh-sight 是面向这类模型的插件,目标是用一个 vision tool 和内置 VLM preset,把图片内容转成文本描述,让 text-only 模型也能基于图片回答问题。
下面介绍它的能力、安装方式、典型用法,以及使用时的限制。
这是什么¶
dsh-sight 是一个 DSH 插件,维护者为 Fu3rte,许可证为 MIT。
它解决的问题可以概括为:给 text-only DeepSeek Harness (dsh) 模型增加“看图并描述”的能力。插件通过包装 prompt 准入流程,使图片粘贴进入流程,并将图片块转换为路径提示;随后模型可以调用 vision tool,由插件把图片交给配置的 VLM 后端,返回文本描述。
核心能力¶
内置 VLM presets¶
插件提供两类内置 preset:
opencode-zen:OpenCode Zen,免费、无需 key。gemini-flash:Gemini Flash,free tier。
它也支持 custom 模式,可以接入任意 OpenAI-compatible endpoint。配置入口在 Web 设置页中,选择 preset 或 custom endpoint 后保存即可。
vision tool¶
vision tool 接受本地路径或 http(s) URL。一次调用最多接受 10 个路径或 URL,并在一个请求中返回逐条标注的描述。
返回形式类似:
--- Image 1 ---
<description>
--- Image 2 ---
<description>
粘贴图片转路径提示¶
对于 text-only 模型,dsh 通常不会接受图片粘贴。dsh-sight 通过包装 apiProxy.sessions.prompt 实现 prompt-admission override:
- 图片粘贴被接受;
- 图片内容保存到插件目录;
- 图片块在进入历史前被转换为路径提示。
例如,粘贴图片后可能生成类似提示:
[Image #1 auto-saved to /tmp/dsh-sight/image1/xxxx.png]
这个路径提示可供后续调用 vision tool 使用。
Web 设置页¶
插件提供 Settings → Vision 页面,可以完成以下操作:
- 选择 preset 或 custom endpoint;
- 填写 model、Base URL、API key;
- 查看 effective config,确认实际会使用哪个 backend;
- 保存后热更新,无需重启。
安装与启用¶
安装命令:
dsh plugin --profile web add dsh-sight
安装后打开:
Settings → Vision
在设置页中选择一个 preset,或填写 custom endpoint,保存配置。
环境要求方面,package.json 的 engines 要求:
{
"engines": {
"node": ">=20"
}
}
典型用法¶
使用粘贴图片¶
先粘贴一张图片。插件会把图片保存到插件目录,并生成路径提示,例如:
[Image #1 auto-saved to /tmp/dsh-sight/image1/xxxx.png]
随后模型可以基于该路径调用 vision tool。
直接调用 vision tool¶
也可以直接传入本地路径或 URL:
{
"paths": ["/tmp/dsh-sight/image1/xxxx.png"],
"question": "What does this chart show?"
}
如果一次需要分析多张图片,最多可以传 10 个路径或 URL:
{
"paths": [
"/tmp/dsh-sight/image1/xxxx.png",
"https://example.com/chart-2.png"
],
"question": "Compare these two charts."
}
插件会按图片逐条返回描述。
缓存与清理¶
粘贴图片会保存到插件目录,文档示例中为:
/tmp/dsh-sight/image{N}/
缓存策略包括:
- MD5 去重;
- LRU 限制,
maxImages默认为200; - 启动时清理超过 7 天的插件图片目录。
配置优先级¶
无 GUI 或脚本化配置时,配置优先级从高到低为:
settings.yaml中的dsh-sight:段;DSH_SIGHT_*环境变量;~/.config/dsh-sight/config.json;- profile 的
cordis.patch.yml中的插件配置; - preset defaults。
相关环境变量包括:
DSH_SIGHT_PROVIDER
DSH_SIGHT_API_KEY
DSH_SIGHT_MODEL
DSH_SIGHT_BASE_URL
DSH_SIGHT_TIMEOUT_MS
DSH_SIGHT_MAX_TOKENS
DSH_SIGHT_MAX_IMAGES
DSH_SIGHT_CONFIG
安全与限制¶
插件对 API key 和输入做了限制:
- API key 标记为
secret,使用role('secret'); - API key 不随 settings response 返回;
- UI 使用 write-only 字段,并报告是否已存储;
- 本地图片读取上限为 25 MiB;
- URL 抓取有 30 秒超时;
- URL 抓取上限为 25 MiB;
- URL 抓取要求声明
image/*content type; - 仅接受
png/jpeg/webp/gif/bmp图片。
适用场景与注意¶
dsh-sight 适合以下场景:
- 正在使用 text-only DSH 模型,但需要处理图片内容;
- 希望用免费或低成本 VLM preset 完成图片描述;
- 需要把多张图片批量转成文本描述;
- 希望保留原有模型,不切换到视觉模型。
使用前需要注意:插件会运行在当前 dsh 进程的权限下,并且会读取本地文件、抓取 URL、调用外部 VLM endpoint。安装前建议先检查源码、许可证和 endpoint 配置。虽然 API key 被标记为 secret,仍应避免在不信任的环境中使用。
链接¶
GitHub:
https://github.com/Fu3rte/dsh-sight