dsh-vision-suite:为 DeepSeek Harness 补齐视觉能力的 Windows 插件

前言

用 DeepSeek Harness(DSH)搭智能体时,推理交给 DeepSeek 的文本模型没有问题,但很多任务需要“看”:从截图里读报错文字、比较两版界面的布局差异、从设计稿里取主色。常见做法是把图片手动丢给另一个多模态服务,再把结果搬回会话,链路断在中间。

dsh-vision-suite 解决的就是这个问题。它在保留官方 deepseek-official 文本路由的同时,把图片理解、OCR、截图裁剪、像素比较、主色提取和安全网页截图接进了 Harness。文本推理仍然由 DeepSeek 负责,只有调用远程视觉工具时,插件才会把用户选定的图片发送给已配置的 OpenAI-compatible 视觉模型。

这是什么

dsh-vision-suite 由 princefrogdida-ux 维护,许可证为 MIT,插件包名为 dsh-vision-workbench(GitHub 仓库名为 dsh-vision-suite),当前版本 0.7.1,面向 Windows。DSH 的理念是“一切皆插件”,这个插件就是给文本为主的工作流补上视觉这一环。

运行环境要求 Node ^22.19.0 || >=24.0.0。本地像素处理、OCR 和浏览器能力分别依赖 sharp、tesseract.js 和 playwright-core,三者均为可选依赖,按需加载——不用本地工具就不会引入这些开销。

核心功能

六个视觉工具

工具 作用 执行位置
vision_describe 理解 1~4 张上传图片或工作区图片,支持图片问答、多图比较和结构化截图证据 视觉 Provider
vision_ocr 识别整张图片或指定区域中的文字,可选择远程视觉模型或本地 Tesseract Provider 或本机
vision_crop 按像素坐标裁剪图片,并保存为可继续使用的持久附件 本机
vision_compare 比较两张同尺寸截图,返回变化比例和洋红色差异图 本机
vision_palette 提取图片中的近似主色 本机
vision_browser_capture 使用独立的无头 Edge 或 Chrome 截取白名单网页 本机浏览器

可以看到分工:需要模型理解内容的走视觉 Provider,纯像素操作(裁剪、比较、取色)和网页截图都在本机完成,图片不必离开机器。

其他基础能力

  • 支持 PNG、JPEG 和 WebP。
  • 图片附件使用持久 ID,工具结果可随会话保存和回放。
  • 支持一个主视觉 Provider 和最多三个顺序后备 Provider,失败时执行有限回退,并通过冷却机制避免持续请求故障端点。
  • 支持图片数量、文件大小、像素数、工作像素、超时和缓存限制。
  • API Key 通过 Harness Credentials 保存,不写入插件配置、日志或页面响应。
  • 可为插件请求单独配置 HTTP/HTTPS 代理(proxyUrl,默认为空),不修改全局网络设置。

安装与启用

本文整理资料时,README 与 package.json 中均未包含可直接引用的一行安装命令,这里不自行拼接,具体安装方式请以 GitHub 仓库的 README 为准。

安装后插件默认保持关闭(enabled 默认 false),不会自动接管模型路由,也不会自动发送图片。启用走 Harness 原生配置页面:

  1. 启动安装了本插件的 Web Profile。
  2. 打开“设置 → 插件 → 插件配置”。
  3. 点击 Vision Workbench 展开全部配置项。
  4. 填写文本模型、视觉 Provider 和 API Key。
  5. 打开“启用插件”,保存配置。
  6. 重启当前 Profile,使路由和工具配置生效。

关于 API Key 的输入框:页面刷新后不会回显密钥,只会显示对应凭据是否已经配置;密码框为空时会保留已保存的密钥,不需要重复粘贴。

最小可用配置

第一次使用只需要以下几项:

配置项 推荐值或说明
enabled 开启
wrapperRoute 保持 deepseek-vision-workbench,不能与 deepseek-official 或文本 Provider 重名
textProvider.provider 保持 deepseek-official
textProvider.model 选择当前 Harness 中可用的 DeepSeek 模型(默认 deepseek-v4-pro
visionProvider.name primary
visionProvider.baseURL 视觉服务的 OpenAI-compatible API 地址
visionProvider.model 服务商提供的视觉模型名称
visionProvider.credentialRef 凭据名称,例如 VISION_API_KEY
API Key 在同一 Provider 卡片的密码框中输入

保存并重启 Profile 后,在模型选择器中选择:

DeepSeek + Vision Workbench / <配置的 DeepSeek 模型>

随后上传图片并直接提问,例如“识别这张截图中的文字”或“比较这两张图片的布局差异”。

配置远程视觉服务

任何兼容 OpenAI /chat/completions 且支持 image_url 图片输入的服务都可以接入。README 给出了几个常用服务的入口:

服务商 baseURL API Key 官网
OpenAI https://api.openai.com/v1 platform.openai.com/api-keys
OpenRouter https://openrouter.ai/api/v1 openrouter.ai/settings/keys
硅基流动 SiliconFlow https://api.siliconflow.cn/v1 cloud.siliconflow.cn/account/ak
阿里云百炼 中国大陆:https://dashscope.aliyuncs.com/compatible-mode/v1;国际:https://dashscope-intl.aliyuncs.com/compatible-mode/v1 help.aliyun.com

配置时按三步走:

  1. 把服务商的 API 地址填入 visionProvider.baseURL
  2. 从服务商官网复制一个支持图片输入的模型 ID,填入 visionProvider.model
  3. 为该服务设置独立的 credentialRef,例如 OPENAI_VISION_KEYOPENROUTER_VISION_KEY,真实 Key 粘贴到对应 Provider 卡片的密码框。

注意三点:同一个服务商可能同时提供纯文本模型和视觉模型,选模型前必须确认它支持 image_url 输入及 /chat/completions 接口;baseURL 中不能嵌入用户名、密码或 API Key;正常使用必须是 HTTPS,只有 allowInsecureLocalhost 显式开启时才允许连接本机回环地址上的 HTTP 测试服务。

本地 OCR

vision_ocr 默认走远程视觉 Provider,只有明确选择 backend="local" 时才进入本地 Tesseract。本地 OCR 默认关闭(localOcr.enabled 默认 false),且需要自行准备可信来源的语言数据文件——插件不会自动下载语言包、访问 CDN、写入 Tesseract 缓存,本地识别失败后也不会自动切换到远程 Provider。

Windows 配置示例:

localOcr:
  enabled: true
  languagePath: 'D:\vision-data\tesseract'
  languages: [eng, chi_sim]
  gzip: true
  timeoutMs: 60000
  maxLanguageBytes: 52428800
  maxRegions: 50
  pageSegMode: auto
  autoRotate: true
  lowConfidenceThreshold: 40

languagePath 指向的目录中应存在 eng.traineddata.gzchi_sim.traineddata.gz 等与配置一致的文件。默认启用 gzip、自动处理方向,低置信度提示阈值为 40。

网页截图

vision_browser_capture 默认关闭(browserCapture.enabled 默认 false)。开启后必须填写精确的主机白名单,插件使用独立的无头浏览器(browserCapture.browserChannel 默认 msedge,可选用 chrome)只截取白名单内的页面。

Provider 回退与限制

除了主 Provider(visionProvider),最多可以配置三个后备 Provider(fallbackProviders)。插件按列表顺序逐个尝试,不会并发把图片发给多个端点;主备 Provider 之间不能重名。

回退行为由三个参数控制:

字段 默认值 说明
providerRouting.attemptTimeoutMs 45000 单个 Provider 的尝试超时
providerRouting.failureThreshold 2 连续失败多少次后进入冷却
providerRouting.cooldownSeconds 60 故障 Provider 的冷却时间

总超时 timeoutMs(默认 120000)应大于 attemptTimeoutMs,否则可能没有足够时间尝试后备 Provider。

图片与缓存方面的默认限制:单次调用最多 4 张图片,单张最大 10485760 字节(10 MiB)、40000000 像素;视觉结果缓存默认开启,200 条,TTL 3600 秒;本地处理最大工作像素 16000000;视觉模型最大输出 maxTokens 默认 4096。这些都有对应配置项,可按需调整。

另外,vision_compare 要求两张截图尺寸完全相同,插件不会自动缩放或对齐图片,以免掩盖真实布局变化。

适用场景与注意

这个插件适合在 Windows 上使用 DSH、需要处理截图和图片的智能体开发者:比如让智能体读界面截图里的文字、对比两版 UI 的变化区域、从图片里取色,或者把白名单网页截图作为会话证据。前提是你手上有一个兼容 OpenAI image_url 格式的视觉服务 API Key,或者愿意自行准备 Tesseract 语言文件做本地 OCR。

使用前有几点需要清楚:

  1. 插件以当前 dsh 进程的权限运行,本地工具能读写你的工作区图片、调用本机浏览器。安装前建议检查仓库源码与许可证(MIT),确认符合自己的安全要求。
  2. 插件默认关闭,不会在你不知情时接管路由或发送图片;图片只会在调用远程视觉工具时发送给你自己配置的端点。
  3. 远程视觉服务必须 HTTPS、baseURL 不夹带密钥、网页截图走精确白名单,这三条是插件内置的边界,配置时不要绕开。

小结

dsh-vision-suite 做的事情很聚焦:不替换 DeepSeek 的文本推理,只在需要“看”的时候补上六个工具,并把凭据、回退、限制这些工程细节都做成了显式配置。如果你在 DSH 上经常和截图打交道,值得装上试一次。

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

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

Xiaoye