用 dsh-vision-router 给纯文本 DeepSeek Harness 智能体装上眼睛

前言

DeepSeek Harness(DSH)把「一切皆插件」贯彻得很彻底:对话模型、工具集、界面能力,都可以按需拼装。但对不少开发者来说,日常用的仍是纯文本模型——DeepSeek、Qwen 或其他 OpenAI 兼容路由,本身并不接收图片。社区里已有不少视觉插件,常见做法是把图片先「翻译」成一段文字描述,再交给主模型推理。这条路能跑通,却容易丢像素细节,也难做多步、可验证的图像操作。

dsh-vision-router 是维护者 ysr666 开源的 DSH 视觉路由插件(GitHub 约 964 star,MIT 许可证)。它的思路不同:视觉模型只当「眼睛」,DeepSeek 继续当「大脑」;图片轮次像普通工具调用一样工作,内置免密钥免费视觉链路,并附带 14 个像素级视觉工具。下文基于 SkillHub 目录页GitHub 仓库 README 核实后整理。

这是什么

一句话定位:给纯文本 DSH 智能体补上一套可路由、可工具化的视觉能力。

它解决的核心痛点包括:

  • 纯文本模型无法直接看图,又不想为每张图手动切模型;
  • 传统「描述桥接」把图像压成文字,定位、裁剪、像素对比等精细操作难以复现;
  • 视觉 API 配置繁琐,希望开箱即用、失败能自动换后端。

与部分社区方案相比,dsh-vision-router 走的是 路由桥接:图像轮次把原始像素交给视觉模型处理,DeepSeek 侧仍负责推理与编排;默认还提供 OVHcloud 匿名视觉端点,无需注册即可试用(有速率限制)。

核心功能与亮点

1. 大脑与眼睛分离

文本轮次不改动你选定的日常模型;只有需要看图时,才通过内部视觉包装路由调用视觉后端。视觉答案会按附件内容哈希缓存,后续文字轮可引用历史图片描述,减少重复识图开销。

2. 内置免费视觉链路

默认启用 OVHcloud 匿名视觉回退链,无需 API Key。官方说明中,匿名额度约为 每个 IP、每个模型 2 次/分钟;链路内多个模型有独立桶,理论合计约 10 RPM。若需更高配额,可在插件设置中配置智谱、百炼、Intern AI 等免费视觉渠道,或申请 OVH 访问密钥(README 记载免费档可达约 400 req/min)。

3. 14 个像素级视觉工具

默认从会话启动即注册完整工具 schema(progressiveTools: false),避免中途扩展工具列表影响长上下文缓存。核心工具包括:

工具 作用
vision_describe 图像问答、多图对比、结构化 JSON 证据输出
vision_ground / vision_detect 按描述定位目标,返回原始像素坐标
vision_crop 按像素框裁剪放大
vision_pixel_diff 像素级对比,输出差异率与热力图
vision_ocr 本地 Tesseract 优先,失败回退视觉模型
vision_colors 主色提取
vision_trace SVG 矢量化(适合图标/Logo)
vision_extract_foreground 纯色背景抠图
vision_html_screenshot 本地 HTML 无头截图
vision_long_screenshot_ocr 长截图分块 OCR 并拼接
vision_present 把生成图发布为会话附件
vision_materialize 把附件落到工作区路径,供本地解析
vision_bootstrap 可选的结构化首轮视觉证据采集

另有 vision_screenshot(桌面截屏)需显式开启隐私开关。整套图像处理基于 sharp / potrace / tesseract / 系统 Chrome,不依赖 Python

4. 可验证的像素闭环

适合 UI 还原、设计稿比对等场景:参照图 → vision_html_screenshot 生成实现 → vision_pixel_diff 量化差异 → 修复 → 再对比。README 示例中,最终差异可收敛到约 2.54%。

5. 自动降级与选择性代理

视觉后端按链路依次尝试:用户配置的视觉模型 → 可选本地 Ollama / LM Studio → 自定义 HTTP 端点 → 内置匿名 OVH 回退。遇到地区限制、额度、429 限流、网络错误等会分类处理并尝试下一后端;仅视觉供应商域名可走代理,DeepSeek 保持直连。

6. 一条命令安装

插件自带 dsh.bundle.patch,通过官方 CLI 安装即可自动接入 admission 包装与附件限制,无需手改配置文件。

安装与启用

环境要求(来自 README):

  • DeepSeek Harness Web profile
  • 主机侧 Node ≥ 22
  • 默认免费链路无需 API Key;vision_html_screenshot 需要本机 Chrome/Chromium/Edge

常规 npm/npx 安装,一条命令:

npx @deepseek-ai/dsh plugin --profile web add dsh-vision-router

若从 DeepSeek Harness 源码仓库用 pnpm 开发,可改用:

cd deepseek-harness
pnpm dsh plugin --profile web add dsh-vision-router

全局已安装 dsh CLI 时,也可简写为 dsh plugin --profile web add dsh-vision-router。安装后按平常方式启动或重载 DSH Web;若 Web 进程长期运行,建议让其重载一次以发现新插件包。

可选验证:

npx @deepseek-ai/dsh --profile web --dump-config | grep vision-router

注意:若 profile 里已通过 cordis.patch.yml 手动加载社区插件,不要与 dsh plugin add 混用,否则可能重复注册。详见 deepseek-harness discussion #2889

典型用法

第一步:选择日常模型,再打开「👁 Vision」

右下角模型选择器仍决定你的对话/推理模型(DeepSeek、Qwen 等)。需要发图时,在输入框旁点击 「👁 Vision」

  • 👁 Vision:视觉关闭;
  • 👁 Vision ✓:已切换到对应模型的内部视觉包装路由。

该状态会跨轮次保持,不会自动复位。粘贴或上传图片不会自动开启视觉,发图前务必确认显示 👁 Vision ✓

第二步:正常发图,让 Agent 调工具

开启视觉后,直接粘贴或上传图片即可。Agent 可像普通工具轮次一样连续调用,例如:

vision_ground image="ref.png" target="the send button"
vision_crop   image="ref.png" region="1067,841,1108,881"
vision_describe paths=["ref.png","impl.png"] question="list the differences" json=true
vision_pixel_diff original="ref.png" rebuilt="screenshot.png"
vision_ocr image="screenshot.png"

第三步:按需调整视觉后端(可选)

大多数场景默认可用。进阶配置在 设置 → 插件 → 插件配置 → 视觉路由(自动识图)

  • 视觉后端链:为 vision_describe 等工具指定已配置的图像模型;
  • 自动创建视觉包装:默认开启,跟随模型目录热更新;
  • 本地视觉:可启用 Ollama(如 qwen2.5vl)或 LM Studio 做离线优先识别;
  • 隐身模式(stealth):默认关闭;开启后会接管官方 deepseek-official 路由,需按 README 调整 profile。

本地 Ollama 示例(profile patch):

- id: vision-router
  config:
    localOllama:
      enabled: true
      baseURL: 'http://127.0.0.1:11434/v1'
      model: 'qwen2.5vl'
    instantDescribe: true
    localDescribeStyle: 'structured'

适用场景与注意事项

适合谁:

  • 日常用纯文本 DeepSeek 模型,但偶尔需要看图、比图、读截图;
  • 做前端/UI 还原,希望有像素级验证闭环;
  • 想先零配置试用视觉能力,再逐步接入自有 VLM Key 或本地 Ollama。

使用注意:

  1. 权限与安全:插件以当前 dsh 进程权限运行,安装前请阅读源码与 MIT 许可证,确认工具(如桌面截屏、文件读写)符合你的安全策略。
  2. 免费额度:匿名 OVH 链路有速率上限,生产环境建议配置自有视觉后端。
  3. 图像证据不可信:描述、OCR 等输出会标注为不可信证据,避免执行图片内嵌指令。
  4. 与其他插件共存:若同时安装 dsh-web-ui 等会改写图片发送的插件,需关闭其「发送时改写为 describe-image 引用」选项,以免拦截原始图像块。
  5. 生态说明SkillHubDeepSeek Harness 插件库 均为独立社区目录,与 DeepSeek / 幻方无官方从属关系;插件列表仅供发现与溯源,不代表官方背书。

结尾

如果你已经在用 DeepSeek Harness 处理代码与文档,却总在「发图」这一步卡住,dsh-vision-router 值得试一次:一条命令装上,免费链路先跑起来,需要时再接入自己的视觉模型或本地 Ollama。它把「看图」从一次性描述,变成了可组合、可度量、可重复的工具链。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜