dsh-vision-primitives:给 DSH 智能体加一组像素级视觉推理原语

前言

在 DSH 里做图像或屏幕相关的智能体任务时,常见的问题是:模型能“看懂”内容,但给出的位置不够精确;后续要做标注、测量、帧差分或 OCR 时,又缺少可复现的坐标基准。如果再额外引入一套 MCP 服务器,部署和权限边界也会变复杂。

下面介绍 dsh-vision-primitives。它是一个面向 DeepSeek Harness(DSH)的原生视觉推理插件,先把图像或截图变成带编号的网格,再把格子解析成精确坐标,然后做局部放大和确定性验证。需要多模态理解时,可以接入 MiMo V2.5 后端;不需要时,本地视觉原语也可以单独使用。

这是什么

dsh-vision-primitives 可以理解为 DSH 插件生态中的一组视觉原语:

  • 核心目标是精确像素 grounding:SOM 网格、缩放、标注、测量、差分、颜色查找、OCR。
  • 提供 MiMo V2.5 多模态后端,并注册 mimo 模型路由,支持流式、函数调用和图像输入。
  • 不依赖外部 MCP 服务器。
  • 仓库所有者为 zouyuanqing,许可证为 MIT。
  • GitHub 地址:https://github.com/zouyuanqing/dsh-vision-primitives

一句话概括:它把“看图—选位置—放大—验证”拆成一组可调用、可复现的步骤,而不是让模型凭感觉输出坐标。

核心能力

像素级定位

先做帧,再做网格,最后解析坐标。典型链路是:

vision_capture -> vision_grid -> read_image -> vision_resolve

其中:

  • vision_capture 可以截取屏幕,或读取工作区 PNG,形成会话帧。
  • vision_grid 叠加 Set-of-Mark 编号网格,用来降低视觉模型直接输出坐标时的误差。
  • read_image 用于读取图像内容。
  • vision_resolve 将格子解析为精确像素坐标。

局部无损放大

vision_zoom 做局部最近邻放大,并保留到原帧的坐标映射链。经过这一步,模型可以在放大图里继续判断细节,同时坐标仍能回到原始帧。

确定性验证

插件提供一组用于验证的工具,适合在“模型判断”之后做像素级确认:

vision_annotate / vision_measure / vision_ocr / vision_find_color
  • vision_annotate:标注。
  • vision_measure:测量。
  • vision_ocr:OCR。
  • vision_find_color:颜色查找。
  • vision_diff:帧差分,用于检测变化区域。

MiMo V2.5 多模态后端

插件支持 MiMo V2.5 多模态后端,并注册 mimo 模型路由。该路由支持流式、函数调用和图像输入。

使用 MiMo 相关工具时需要配置 API key;纯本地视觉原语不需要 key。

聊天图片输入

插件提供三种聊天图片输入模式:

  1. 视觉模型原生图片附件。
  2. 纯文本模型发送时图片桥接。
  3. paste-to-path 文本注入。

发送时图片桥接会把图片缓存到 .vispri/incoming-*.png,并注入类似 [Attached image: path] 的文本,供文本模型按路径继续处理。

视觉证据协议(VEP)

插件提供 Visual Evidence Protocol(VEP),输出结构化视觉证据,包括:

  • caption;
  • layout;
  • elements;
  • normalized boxes 与 pixel boxes;
  • SOM cell IDs;
  • screen coordinates。

这层结构化结果用于把模糊的视觉感知桥接到后续确定性坐标操作。

最小 OS 边界

插件的 OS 边界较小:只通过 host subprocess 调用 Windows PowerShell 系统脚本完成三类操作:

  • screenshot;
  • OCR;
  • binary file persistence。

它不包含桌面鼠标/键盘控制。

密钥处理

插件不硬编码密钥。MiMo API key 从 DSH credentials 中惰性读取。

安装与启用

先确认环境:Node engine requirement 是 >=18。该包是纯 JS 包,没有 build 脚本,也不需要 pnpm allowBuilds 权限。依赖包括:

  • @deepseek-ai/dsh-settings
  • @deepseek-ai/dsh-tools
  • @deepseek-ai/schemastery

安装命令如下:

dsh plugin --profile <name> add github:zouyuanqing/dsh-vision-primitives

这里的 <name> 是 profile 占位符;本文未提供具体 profile 名称。安装后启动 DSH,即可在当前会话中使用该插件提供的视觉工具。

如果需要固定版本安装:

dsh plugin --profile <name> add github:zouyuanqing/dsh-vision-primitives#<commit-sha>

如果走 npm 包安装:

dsh plugin add dsh-vision-primitives

如果需要使用 MiMo 后端,配置 API key:

dsh credentials set MIMO_API_KEY <your-key>

配置解析优先级为:

WebUI user settings > row config > defaults

其中 apiKey 的查找顺序是:先查 settings,再查 credentials。

注意安装形态会影响 WebUI 配置卡片可用性:WebUI config card 只在 bundle install form 下可用。动态插件沙箱形态因为 approval policy 是 never,无法激活 Client half;该形态下可以用 CLI 配置 credentials。

典型用法

一个交互式视觉推理工作流可以写成:

vision_capture -> vision_grid -> read_image -> vision_resolve -> vision_zoom -> vision_annotate / vision_measure / vision_ocr / vision_find_color -> vision_diff

按步骤理解:

1、vision_capture 先把屏幕或工作区 PNG 变成会话帧。
2、vision_grid 叠加编号网格。
3、read_image 读取图像内容。
4、vision_resolve 把目标格子解析成精确坐标。
5、vision_zoom 对局部区域放大,保留原帧坐标映射。
6、用 vision_annotatevision_measurevision_ocrvision_find_color 做验证。
7、需要检测变化时,再使用 vision_diff

帧文件会存储在:

sandboxPolicy.workspaceRoot/.vispri

发送时图片桥接产生的 incoming 文件路径形如:

.vispri/incoming-*.png

如果要运行内核测试:

node kernel-test.js
node inflate-diff-test.js

适用场景与注意

适合:

  • 在 DSH 智能体里处理屏幕截图或图片;
  • 需要把视觉结果落到精确像素坐标;
  • 需要标注、测量、帧差分、颜色查找、OCR 等确定性验证;
  • 希望减少外部 MCP 服务器依赖;
  • 可选接入 MiMo V2.5 做多模态理解。

注意:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 屏幕截取和原生 OCR 当前是 Windows 实现,使用 PowerShell Graphics.CopyFromScreen 和 WinRT OcrEngine
  • 插件不包含桌面鼠标/键盘控制。
  • MiMo 工具需要 API key;纯本地视觉原语不需要 key。

结尾

dsh-vision-primitives 的价值在于把视觉推理从“模型直接猜坐标”变成“网格—解析—放大—验证”的工程化流程,并可选接入 MiMo V2.5 多模态后端。

GitHub:https://github.com/zouyuanqing/dsh-vision-primitives
本文未采用未经核实的社区目录页 URL;如需目录页,请以当前插件目录实际提供的入口为准。

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

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

小夜