dsh-vision-any
August 15, 2026 · View on GitHub
简体中文 | English
让纯文本的 DeepSeek Harness Agent 直接粘贴图片,并用任意 OpenAI 兼容 / Anthropic / Gemini 视觉 API 看图。
💖 赞助支持
我是大学生村官,收入比较低。
如果这个插件帮到了你,欢迎打赏支持我。
打多打少是个缘,感谢每一份心意!
dsh-vision-any 是一个标准的 DeepSeek Harness(DSH)插件,为 DeepSeek V4、GLM 等纯文本模型补上真正的图像理解能力。
一个插件同时解决两件事:
- 粘贴准入:即使当前主模型是纯文本,也能把图片粘贴进聊天框;图片会保存到本地,并替换成路径提示。
vision工具:Agent 用这个路径(或任意本地路径 / URL / data URI)调用vision,由你配置的视觉模型返回文字描述。
不需要切换模型,不绑定厂商,自带任意视觉 API。
特性
- ✅ 纯文本模型也能直接在 DSH 聊天框粘贴 / 拖拽图片
- ✅ 支持任意 OpenAI 兼容端点(OpenAI、OpenCode Go、智谱、通义、Ollama、vLLM、LM Studio 等)
- ✅ 支持 Anthropic Messages API 和 Google Gemini
generateContent - ✅ 多图批量:一次最多分析 10 张图
- ✅ 本地图片存储:MD5 去重、LRU 上限、过期清理
- ✅ API Key 不进源码,通过配置 / 环境变量读取
- ✅ 标准 DSH bundle:可用
dsh plugin安装 / 卸载
安装
本地安装:
dsh plugin --profile web add /path/to/dsh-vision-any
dsh plugin --profile headless add /path/to/dsh-vision-any
GitHub 安装(发布后):
dsh plugin --profile web add github:<你的用户名>/dsh-vision-any
重启 dsh web 并刷新浏览器。
快速开始(OpenCode Go + MiMo V2.5)
创建 ~/.config/dsh-vision-any/config.json:
{
"provider": "openai",
"openai": {
"baseUrl": "https://opencode.ai/zen/go/v1",
"model": "mimo-v2.5",
"apiKeyEnv": "OPENCODE_GO_API_KEY"
}
}
确保环境里有 OPENCODE_GO_API_KEY(例如写在 ~/.dsh/.env 或 shell 环境变量里)。
然后启动:
dsh web
把图片粘贴进聊天框即可。模型会看到路径提示,并自动调用 vision 工具。
配置
配置优先级(高到低):
- profile patch / overlay 里的插件行配置
~/.config/dsh-vision-any/config.jsonVISION_ANY_*环境变量- 内置默认值(OpenAI 兼容)
简单配置(推荐)
可以直接在顶层填 provider、baseUrl、model、apiKeyEnv:
{
"provider": "openai",
"baseUrl": "https://opencode.ai/zen/go/v1",
"model": "mimo-v2.5",
"apiKeyEnv": "OPENCODE_GO_API_KEY"
}
常见模型速查表
| 想用哪个 | provider | baseUrl | model | apiKeyEnv |
|---|---|---|---|---|
| OpenCode Go / MiMo | openai | https://opencode.ai/zen/go/v1 | mimo-v2.5 | OPENCODE_GO_API_KEY |
| 通义千问 / DashScope | openai | https://dashscope.aliyuncs.com/compatible-mode/v1 | qwen-vl-plus | QWEN_API_KEY |
| OpenAI | openai | https://api.openai.com/v1 | gpt-4o-mini | OPENAI_API_KEY |
| Anthropic / Claude | anthropic | https://api.anthropic.com | claude-sonnet-4-5 | ANTHROPIC_API_KEY |
| Gemini | gemini | https://generativelanguage.googleapis.com/v1beta | gemini-2.0-flash | GEMINI_API_KEY |
| 本地 Ollama | openai | http://localhost:11434/v1 | llava | ollama(或任意) |
想换模型就改 model。如果用其他 OpenAI 兼容网关,保持 provider: "openai",填它的 baseUrl 和 model 即可。
进阶:按 provider 分块配置
也可以把配置写进 openai / anthropic / gemini 块里:
{
"provider": "openai",
"openai": {
"baseUrl": "https://api.openai.com/v1",
"model": "gpt-4o-mini",
"apiKeyEnv": "OPENAI_API_KEY"
}
}
插件行配置(也可以不用配置文件)
在 profile 的 cordis.patch.yml 里写:
- insert:
- id: vision
name: dsh-vision-any
config:
provider: openai
baseUrl: https://opencode.ai/zen/go/v1
model: mimo-v2.5
apiKeyEnv: OPENCODE_GO_API_KEY
环境变量
| 变量 | 含义 |
|---|---|
VISION_ANY_PROVIDER | openai / anthropic / gemini |
VISION_ANY_BASE_URL | 视觉 API 的 Base URL |
VISION_ANY_MODEL | 视觉模型 ID |
VISION_ANY_API_KEY | API Key(兜底) |
VISION_ANY_API_KEY_ENV | 存放 API Key 的环境变量名 |
VISION_ANY_TIMEOUT_MS | 请求超时(默认 120000) |
VISION_ANY_MAX_TOKENS | 最大输出 token(默认 4096) |
VISION_ANY_MAX_IMAGES | 粘贴图片 LRU 上限(默认 200) |
VISION_ANY_SYSTEM_PROMPT | true / false |
使用方法
粘贴图片
直接把图片粘贴或拖进 DSH 聊天框。插件会保存图片并注入类似提示:
[Image #1 auto-saved to /tmp/dsh-vision-any/image1/xxxx.png]
模型会自动调用 vision 工具。
手动调用工具
也可以让模型分析本地文件或 URL:
用
vision工具读取C:\path\to\screenshot.png,告诉我里面显示什么错误。
工具参数示例:
{
"paths": ["/tmp/dsh-vision-any/image1/xxxx.png", "https://example.com/a.png"],
"question": "这张图表说明了什么?"
}
工作原理
- DSH 默认会拒绝纯文本模型的图片附件。
dsh-vision-any包装 API 代理的 prompt 准入:图片先保存到本地临时目录,再替换成文本路径提示。- Agent 调用
vision工具。 - 工具解析图片(本地路径 / URL / data URI),发送给你配置的视觉后端,返回纯文本。
- 纯文本主模型基于描述继续对话。
环境要求
- Node.js 20+(实际 DSH 通常要求 22.19+)
- DeepSeek Harness 0.1.x(开发者预览版)
- 一个支持图片输入的视觉模型端点 + API Key
常见问题
| 现象 | 解决办法 |
|---|---|
仍提示 The current model does not support images | 重启 dsh web 并刷新浏览器;确认插件已安装 |
| 图片能粘贴,但模型说看不到图 | 确认模型调用了 vision 工具;检查系统提示是否开启 |
vision provider error (HTTP 401) | 检查 apiKeyEnv / API Key / Base URL |
vision provider error (HTTP 404) | 检查 baseUrl 和 model;Anthropic 要确保最终请求到 /messages |
| 模型不支持图片输入 | 换支持视觉的模型,例如 mimo-v2.5、gpt-4o-mini、kimi-k2.6、qwen3.6-plus、claude-sonnet-4-5、gemini-2.0-flash |