前言¶
DeepSeek Harness(DSH)的核心设计理念是「一切皆插件」,任何能力都可以通过插件扩展。但在实际使用中,Agent 难以处理图片、截图、图表这类视觉信息,只能依赖人工辅助。DSH Vision 插件为 DSH Agent 以及任意 MCP 客户端提供 analyze_image 工具,把本地图片或 URL 交给视觉模型,返回文字回答。默认走本机 Ollama,不花钱、不需要账号;愿意接云端时,火山方舟(豆包)作为第二候选自动兜底。
核心功能¶
插件提供两种形态:DSH 原生插件和 MCP stdio 服务。DSH 原生插件通过 index.js(inject: ['tools']、defineTool)接入,在 DSH/DPH Agent 对话内直接调用;MCP stdio 服务通过 bin/mcp-server.js 提供,可被 Claude Desktop、Cursor、DSH 的 MCP 客户端使用。
工具名为 analyze_image({ image, prompt? }),参数为:
- image:本机绝对路径(png/jpeg/webp/gif/bmp,≤ 20 MB)或 http(s) URL,必填。
- prompt:针对图片的提问,可选;省略时给出详细描述。
默认候选链为 ollama:qwen2.5vl:3b → ark:doubao-seed-2-0-pro-260215。本地模型需要先 ollama pull qwen2.5vl:3b;没装 Ollama 时该候选网络失败,会自动切下一个。ark: 候选只有配置了 Key 才会被尝试;没配 Key 直接跳过,不会报错。
失败分类规则:
- 429、404、408、409、425、5xx、超时、网络错误 → 切下一个候选。
- 401/403 → 放弃该 provider 剩余候选(Key 无效就没必要重试)。
- 其它 4xx(如 400 参数错)→ 立即失败,不浪费 token。
本地图片自动嗅探 MIME 并转成 base64 data URL;URL 原样透传,不额外下载。
环境变量¶
| 变量 | 必填 | 说明 |
|---|---|---|
VISION_MODELS |
否 | 逗号分隔候选链,可带 provider 前缀:ollama:qwen2.5vl:3b,ark:doubao-seed-2-0-pro-260215。默认就是这一串。 |
VISION_PROVIDER |
否 | 不带前缀的模型 id 归到哪个 provider:ollama(默认)/ ark / openai。 |
OLLAMA_BASE_URL |
否 | 本地 Ollama 的 OpenAI 兼容地址,默认 http://127.0.0.1:11434/v1。 |
VOLCANO_API_KEY |
否 | 火山方舟 Key(也可用 ARK_API_KEY)。只有配置了 ark: 候选时才需要。 |
ARK_BASE_URL |
否 | 火山方舟 base URL,默认 https://ark.cn-beijing.volces.com/api/v3。 |
VISION_BASE_URL / VISION_API_KEY |
否 | 接任意 OpenAI 兼容服务时用(provider 名 openai)。 |
VISION_TIMEOUT_MS |
否 | 单次请求超时,默认 60000。 |
DSH_VISION_HOME |
否 | 设置文件目录,默认 ~/.dsh-vision。 |
设置文件¶
不想动环境变量时,把配置写到 ~/.dsh-vision/config.json(Windows:%USERPROFILE%\.dsh-vision\config.json)。环境变量优先级更高,设置文件只做默认值:
{
"provider": "ollama",
"models": "ollama:qwen2.5vl:3b,ark:doubao-seed-2-0-pro-260215",
"baseUrls": { "ollama": "http://127.0.0.1:11434/v1", "ark": "https://ark.cn-beijing.volces.com/api/v3" },
"apiKeys": { "ark": "" },
"timeoutMs": 60000
}
- 换本地模型:把
models改成ollama:moondream之类,并ollama pull moondream。 - 接云端:填
apiKeys.ark,或设置VOLCANO_API_KEY,ark:候选就会生效。 - 接公司内网 / 自建 OpenAI 兼容服务:
"provider": "openai",配baseUrls.openai与apiKeys.openai。
安装¶
本地视觉模型(免费)¶
Windows:
winget install --id Ollama.Ollama
ollama pull qwen2.5vl:3b
macOS / Linux:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5vl:3b
DSH / DPH¶
在 DSH 中安装 dsh-vision 插件,并确保本地 Ollama 模型已拉取。重启 DSH 后 analyze_image 直接可用,不需要 Key。
一键脚本¶
Windows:
irm https://raw.githubusercontent.com/hunyu-feng/dsh-vision/main/install.ps1 | iex
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/hunyu-feng/dsh-vision/main/install.sh | bash
脚本会检查 Node ≥ 20、提示 Ollama 拉模型、跑一次 npx -y dsh-vision --selftest。
其它 MCP 客户端¶
{
"mcpServers": {
"dsh-vision": { "command": "npx", "args": ["-y", "dsh-vision"] }
}
}
需要云端兜底时再补 "env": { "VOLCANO_API_KEY": "..." }。
使用示例¶
analyze_image D:\pictures\error.png 提示词:这张截图里报了什么错?
analyze_image ./design.png 提示词:把界面里的字段名全部抄下来
analyze_image https://example.com/chart.png
返回根值是 { text, model, provider };DSH 里只渲染 text。
适用场景与注意¶
- 适合需要让 Agent 处理图片、截图、图表的场景。
- 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
- 本地模式:图片只发给本机
127.0.0.1:11434,不出网。 - 云端模式:图片会发给火山方舟;Key 只从环境变量或设置文件读取,不写进日志。
小结¶
DSH Vision 通过本地 Ollama + 火山方舟的双候选机制,让 Agent 在不花钱的前提下获得视觉能力,同时支持任意 OpenAI 兼容服务扩展。配置灵活、失败自动降级,适合作为 DSH Agent 的标准视觉能力组件。
- 目录页:https://www.skillhub.cn/plugins/hunyu-feng/dsh-vision
- GitHub:https://github.com/hunyu-feng/dsh-vision