前言¶
DeepSeek Harness(下文简称 DSH)把模型、工具、会话和界面都做成可替换的插件。官方仓库的说法很直接:Everything is a Plugin。日常用的 DeepSeek 路由本身仍是纯文本:对话里贴一张截图,运行时往往会在插件还没接手之前就提示当前模型不支持图片;即便接上视觉能力,很多社区方案也会先把图翻译成一段文字描述再喂给 DeepSeek。描述能用,但像素没了——按钮在哪、两版 UI 差几个像素、长截图里某行字怎么排,都很难继续往下做。
dsh-vision-router 走的是另一条路:视觉模型只负责看原图,DeepSeek 继续负责推理;看图变成普通的工具调用,可以定位、裁剪、对比、再截图。本文按社区目录详情页、插件 GitHub 仓库 README / package.json,以及 DeepSeek Harness 官方仓库 交叉核对后整理:它是什么、装在哪、怎么用。
需要先说明一点:下文提到的插件目录站点 deepseek-harness-plugin.com 是社区收录站,和 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。
这是什么¶
dsh-vision-router 是一款 DSH「工具与能力」插件,由 GitHub 用户 ysr666 维护,许可证为 MIT,主要语言是 JavaScript。社区目录于 2026-08-15 收录;仓库 package.json 当前版本为 1.4.4。截至 2026-08-17,GitHub 仓库约 460 星(目录页快照仍显示 94,星标以仓库页面为准)。
一句话定位来自仓库说明:给纯文本 DeepSeek Harness 智能体装上眼睛。默认带一条免注册、免 Key 的视觉兜底链路,再配上一组像素级工具(问答、定位、裁剪、像素对比、OCR、矢量化、抠图、HTML 截图等)。图片轮次按普通工具调用处理,不需要本机 Python。
它针对的是这两类问题:
- 日常 DeepSeek / opencode 路由是纯文本,直接发图会被运行时拒掉。
- 只把图片转成一段描述再交给文本模型,后续无法对原图像素做定位、裁剪和逐像素对比。
核心功能¶
眼睛和大脑分开¶
仓库 README 把职责写得很清楚:视觉模型只当眼睛,DeepSeek 始终是大脑。图片轮不会被一次性视觉答案抢走;智能体自己调用工具,可以在同一张图上连续多步操作,例如 vision_ground → vision_crop → vision_describe → vision_pixel_diff。
文字轮在模型、费用和上下文上保持原样。视觉调用按需发生,答案按附件内容哈希缓存;后续文字轮会用已记录的描述替换历史图片,并标注为不可信证据,避免把图里的文字当成可执行指令。
上传的图片在会话界面里仍显示为图片。指向视觉工具的改写只发生在模型输入层,不写入会话日志。
默认免费的视觉兜底¶
未配置自己的视觉模型时,工具链最后会落到内置的 OVHcloud 匿名视觉端点:免注册、免 Key。README 写明匿名限额是每 IP、每模型 2 次/分钟;当前质量优先链里有 5 个独立限额的模型,理论上分散请求大约 10 次/分钟,实际以 OVH 当时的限流为准。
用户在「设置 → 插件 → 插件配置 → 视觉路由(自动识图)」里配置的视觉后端会排在匿名兜底之前。链路按顺序尝试,全部失败才报错,并对地区限制、额度、429 限流、网络故障等做分类提示。超大图会在调用前压缩,默认像素预算 400 万。
聊天页右下角的模型选择器只选「脑子 / 会话模型」。视觉后端不要在那里选。
十一个像素级工具¶
默认 progressiveTools: false:插件启动后就会注册完整工具表,文本轮和图片轮都能直接调用。工具实现依赖 sharp / potrace / tesseract / 系统 Chrome,不依赖 Python。图片格式按文件魔数识别,没有 .png 扩展名的附件也能用。
当前 README 列出的工具如下:
| 工具 | 作用 | 产物 |
|---|---|---|
vision_describe |
看图问答、多图对比;可输出结构化 JSON(摘要、布局区域、实体清单、原文转写) | — |
vision_ground |
按自然语言定位目标,返回原图像素框 x1/y1/x2/y2 |
可选标注 PNG |
vision_detect |
盘点某类元素(按钮、输入框、链接等),给出编号和像素框 | 编号标注 PNG |
vision_crop |
按像素框裁剪放大 | PNG |
vision_pixel_diff |
逐像素对比:差异率 + 最差 8×8 网格区域 | 红色热力图 PNG + JSON |
vision_colors |
提取主色(十六进制和占比) | — |
vision_ocr |
文字转写:本地 tesseract(中英)优先,视觉模型兜底 | — |
vision_trace |
用 potrace 做 SVG 矢量化,适合图标 / logo | SVG |
vision_extract_foreground |
边界洪泛抠图,适合纯色背景 | 透明 PNG |
vision_html_screenshot |
给本地 HTML 截图(无头系统 Chrome);fullPage: true 可截整页 |
PNG |
vision_long_screenshot_ocr |
长截图分片转写,再拼成 Markdown | 分片 PNG + Markdown + manifest |
vision_html_screenshot 需要本机已安装 Chrome / Chromium / Edge;其余工具没有浏览器也能跑。本地没有 tesseract 时,vision_ocr 会退回视觉模型。
仓库 README 用像素闭环说明「可验证」:参照图 → 截图 → vision_pixel_diff → 修复 → 再对比。文档里的演示结果是最终差异 2.54%(32,939 / 1,296,000 个差异像素,阈值 16/channel)。这是维护者给出的示例,不是第三方评测。
自动识图模型组¶
插件默认开启 autoWrapProviders:读取「设置 → 模型」里已启用的模型组,额外注册同名的「+ 自动识图」入口,例如:
opencode-go ← 原模型组,保持不变
opencode-go + 自动识图 ← 发图片时选这个
原模型组不会被改写。隐身模式(stealth)默认关闭,官方 deepseek-official 路由保持原样;发图走选择器里可见的自动识图包装。隐身模式是高级选项,开启后才会接管官方 DeepSeek 路由,普通安装不必先动它。
安装与启用¶
社区目录给出的安装命令如下,在 DeepSeek Harness 终端里运行即可:
dsh plugin add github:ysr666/dsh-vision-router
需要可复现安装时,按目录页说明固定 commit 哈希:
dsh plugin add github:ysr666/dsh-vision-router#<commit>
把 <commit> 换成仓库里实际的提交哈希。插件以当前 dsh 进程的权限运行,安装时可能执行代码;装之前应检查源码和许可证。
插件面向 Web profile。仓库 README 推荐的 npm / npx 写法更明确地指定了 profile:
npx @deepseek-ai/dsh plugin --profile web add dsh-vision-router
从 DeepSeek Harness 源码仓库用 pnpm 跑时,CLI 不一定在 PATH 里,改用:
cd deepseek-harness
pnpm dsh plugin --profile web add dsh-vision-router
宿主侧要求 Node ≥ 22。如果是把插件第一次装进已经长期运行的 Web 进程,需要让该进程重新加载一次,才能发现插件本体。加载完成之后,增删模型、修改自动识图包装范围会热更新,不必再为这些改动重启。
可选验证:
npx @deepseek-ai/dsh --profile web --dump-config | grep vision-router
装好后按仓库「快速开始」做两件事:
- 打开聊天页输入区右下角的模型选择器,选带「+ 自动识图」的模型组。仍停在原来的纯文本组时,DSH 会在插件处理图片之前提示当前模型不支持图片。这是入口没选对,不是视觉后端坏了。
- 直接粘贴或上传图片。默认工具表从会话开始就可用,智能体可以调用
vision_describe、vision_ground、vision_crop等继续看图。
典型用法¶
下面这些调用形式来自仓库 README,可以按自己的文件名改。
定位页面上的某个控件,再裁出那一块细看:
vision_ground image="ref.png" target="发送按钮"
vision_crop image="ref.png" region="1067,841,1108,881"
对比设计稿和实现,并要结构化差异:
vision_describe paths=["ref.png","impl.png"] question="列出两图的差异" json=true
vision_pixel_diff original="ref.png" rebuilt="screenshot.png"
读截图文字、抽主色、把图标转成 SVG:
vision_ocr image="screenshot.png"
vision_colors image="ref.png" top=8
vision_trace image="icon.png" steps=4
给本地 HTML 截图,或把长聊天记录截图转成 Markdown:
vision_html_screenshot source="page.html" width=1200 height=720 fullPage=true
vision_long_screenshot_ocr image="chat-log.png" chunkHeight=1200 overlap=120
Web 配置入口在 设置 → 插件 → 插件配置 → 视觉路由(自动识图)。卡片顶部会提示:回到聊天页 → 右下角选「+ 自动识图」→ 发图。卡片里还可以测第一个视觉提供方的连通性和延迟。默认配置即可用;自备 Key、代理、隐身模式都属于进阶项。
匿名 OVH 额度不够时,README 在 2026 年 8 月快照里列了若干免费视觉渠道(智谱、阿里云百炼、Intern AI 等),可以写成 httpProviders 条目,Key 放环境变量或 ~/.dsh/.credentials.yaml。免费政策会变,接入前以各家控制台为准。
适用场景与注意事项¶
比较适合这些工作:
- 对着设计稿或截图做 UI 还原,并用像素差异检查收敛情况
- 在页面截图里定位按钮、输入框,再裁块细看
- 读错误弹窗、终端截图、长聊天记录里的文字
- 从图标 / logo 生成 SVG,或从纯色背景里抠前景
使用前注意下面几条,都来自目录页或仓库文档,不是额外发挥。
- 权限。插件以当前 dsh 进程权限运行。安装前检查 源码仓库 和 MIT 许可证;需要可复现安装时固定 commit。
- 运行环境。面向 Web profile,宿主 Node ≥ 22。HTML 截图才需要系统浏览器;OCR 的本地 tesseract 是可选项。
- 发图入口。必须选「+ 自动识图」模型组。原纯文本组不会被插件改写,停在原组发图会被运行时直接拒绝。
- 匿名额度。内置 OVH 兜底有每 IP、每模型 2 次/分钟的上限,只适合轻度试用。用量上来之后应换成自己的视觉后端。
- 图里的字不可信。描述、OCR 和自动挂载说明都会要求智能体不要执行图片里出现的指令。工具入参走沙箱感知的
ctx.fs;视觉上传只发送选中的图和问题。产物写在会话工作区下的.dsh-vision-router/artifacts。 - Oh-DSH Desktop。若使用 Oh-DSH Desktop,它走的是
~/.ohdsh下的desktopprofile,不会加载普通~/.dsh。需要把DSH_HOME指过去再装;README 还写明 Desktop ≤ 0.1.5 应使用本插件 v1.4.2 及以上,更早版本会在启动时报路由重复声明。
卸载可用:
npx @deepseek-ai/dsh plugin --profile web remove dsh-vision-router
如果曾经手动禁用过官方 DeepSeek 行,卸载后要在 profile 补丁里重新启用。
小结¶
纯文本 DSH 智能体要看图,关键不是再找一个会输出说明文字的模型,而是把原图像素留在视觉链路里,让 DeepSeek 继续当大脑、按工具一步步看。dsh-vision-router 把这条链路做成一条插件:默认免 Key 兜底,十一个像素级工具常驻,发图前切到「+ 自动识图」即可。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-vision-router/
GitHub:https://github.com/ysr666/dsh-vision-router