用 dsh-vision-complete 给 DeepSeek Harness 接上看图和听声

前言

DeepSeek Harness(dsh)把模型、工具、技能、会话、沙箱、存储、循环、调度和界面都做成插件,官方口号是「一切皆插件」。开发者预览版已经把源码放在 deepseek-ai/deepseek-harness,本地 Web 界面默认跑在 127.0.0.1:3080

插件装得再多,主模型如果仍是纯文本,拖进聊天框的截图、PDF、会议录音对它来说都只是路径或附件元数据。它看不见像素,也听不到波形。社区里因此出现了一批「给纯文本模型补视觉」的插件:有的做结构化 OCR,有的做 UI 还原,有的把视觉请求转给另一条多模态路由。

dsh-vision-complete 走的是另一条路:自己不内置「眼睛」模型,而是把 skill、MCP 工具和 Windows 截图脚本打成一个包,默认去调通义千问的云端多模态接口。本文按插件目录页、GitHub README、SKILL.md 和安装脚本交叉核对后整理:它是什么、装完能做什么、以及哪些步骤不能跳。

社区目录 DeepSeek Harness 插件库 是独立站点,与 DeepSeek / 幻方没有从属或背书关系。下面介绍的也是社区维护的开源插件,不是官方应用商店里的「官方视觉」。

这是什么

dsh-vision-complete 是一款面向 DeepSeek Harness 的开发与运行时插件,由 GitHub 用户 Yts1919 维护,仓库许可证为 MIT(LICENSE 版权行写作 2026 Yonnn)。目录页把它归在「开发与运行时」。本文写作时(2026-08-17)从 GitHub API 读到的星标为 36。

它要解决的问题很具体:Harness 里的 DeepSeek 主模型是纯文本,看不了图、听不了声。这个插件把下面几样东西装到 ~/.dsh 里,让模型在遇到图片、视频、音频、PDF 时知道该调哪个工具:

组成 作用
skills/vision-multimodal 核心 skill:教模型按任务选工具。附带零第三方依赖的 vision.py,可接任意 OpenAI 兼容视觉接口
tools/screenshot-tool Windows 截图监控:截图后剪贴板变成 PNG 路径,粘贴即可让模型读图
qwen-mm-plugins MCP 安装时写入 ~/.dsh/profiles/web/cordis.patch.yml,注册 core / api / video-memory 三个 MCP 服务器
references/ API Key 配置、多供应商切换说明

仓库 README 写得很清楚:插件本身不含视觉模型。默认调用云端通义千问(阿里云百炼 DashScope)。没有 API Key,装完也用不了。

平台限制同样写在仓库徽章和安装说明里:一键安装需要 Windows + PowerShell。截图工具也只覆盖 Windows 剪贴板。

核心功能

仓库把能力分成两条通道。SKILL.md 的规则是:工具列表里已有 mcp__qwen-mm-plugins-* 就走方式 A;没有 MCP、或要换别的厂商,再走方式 B。

方式 A:MCP(默认)

install.ps1 会用 uvxQwenLM/Qwen-MM-Plugins 拉起三个 MCP 服务器,版本钉在脚本里:

  • qwen-mm-plugins-core(tag qwen-mm-plugins-core-v1.0.2):本地读图 / 读视频 / 裁剪 / 画框 / 可视化文件 / 看媒体元信息
  • qwen-mm-plugins-api(tag qwen-mm-plugins-api-v1.0.3):调用 Qwen 多模态模型做理解、OCR、检测、视频+音频融合、语音转写、音乐分析、图像分割
  • qwen-mm-plugins-video-memory(tag qwen-mm-plugins-video-memory-v1.0.1):30 分钟以上长视频的语义记忆与检索

SKILL.md 写明默认模型名:视觉用 qwen3.7-plus,Omni 用 qwen3.5-omni-plus。一般不需要手动覆盖。

方式 B:vision.py

同一目录下的 vision.py 走 OpenAI 兼容的 chat/completions 接口,Python 3.7+ 即可,不额外装包。config.example.jsonprovider 可选 openai / glm / kimi / qwen / siliconflow / ollama。本地 Ollama 不需要 Key。

能力清单

README 与 SKILL.md 列出的能力如下。除图像分割外,其余都可以在配好 Key 后直接用自然语言触发:

能力 说明
图片理解 / 问答 描述、问答、看图说话
OCR 取字 截图、票据、文档拍照提取文字
物体检测定位 找目标、画框、裁剪;grounding 坐标是 0–1000 归一化,不是像素
视频理解 画面+声音时间线、按事件定位、计数
语音转写 普通转写、带时间戳、多说话人分离
音乐分析 风格、情绪、乐器、调性
文档可视化 PDF / Office / CSV / 代码 / 3D / notebook
截图直读 截图自动存盘并把剪贴板换成路径
图像分割 把目标抠出来;进阶能力,需要另起 SAM3 服务
长视频 30 分钟以上走 video-memory,不要整段塞进单次工具

安装与启用

目录页给出的安装命令如下。在 DeepSeek Harness 终端里运行即可,dsh CLI 会从 GitHub 解析插件并装到当前配置:

dsh plugin add github:Yts1919/dsh-vision-complete

目录页同时提醒:如需可复现安装,应固定 commit 哈希:

dsh plugin add github:Yts1919/dsh-vision-complete#commit

#commit 换成仓库里某个具体提交的 SHA。插件以当前 dsh 进程的权限运行,安装时可能执行代码,装之前应检查源码和许可证。

作者 README 还提供了一条更完整的 Windows 安装路径。目录页的 dsh plugin add 负责把仓库登记进 Harness;要把 skill 拷进 ~/.dsh/skills、把三个 MCP 写进 cordis.patch.yml、并把截图工具放到 ~/.dsh/tools,需要再跑仓库里的安装脚本。README 要求全程约 5 分钟,环境是 Windows + PowerShell。

  1. 克隆或下载仓库。国内访问 GitHub 不稳定时,README 提供了 Gitee 镜像 https://gitee.com/yonnn/dsh-vision-complete
git clone https://github.com/Yts1919/dsh-vision-complete.git
# 或
git clone https://gitee.com/yonnn/dsh-vision-complete.git

解压到哪个盘、文件夹叫什么名字都不影响,后面只要进到那个目录即可。

  1. 双击 install.bat。不要右键 install.ps1 选「使用 PowerShell 运行」——脚本一结束窗口会闪退,错误信息看不到。install.bat 会装 skill、注册 MCP、拷截图工具,并检查 uvx / Python / ffmpeg / DASHSCOPE_API_KEY。命令行等价写法:
cd C:\DeepSeek-Vision
powershell -ExecutionPolicy Bypass -File .\install.ps1

路径换成你自己的实际位置。若自检提示没有 uvx,方式 A 的 MCP 暂时不可用,需要先安装 uv 再重跑脚本。

  1. 配置 API Key。打开安装后生成的说明文件:
C:\Users\你的用户名\.dsh\skills\vision-multimodal\references\api-key-setup.md

阿里云百炼 创建 API-KEY,然后在 PowerShell 执行:

setx DASHSCOPE_API_KEY "sk-你的key"

setx 只影响之后新启动的进程。必须完全退出并重启 DeepSeek Harness,Key 才会进到 MCP 进程。也可以在「编辑账户的环境变量」里新建用户变量 DASHSCOPE_API_KEY

API Key 只放环境变量,不要写进 config.json。仓库已经把该文件列入 .gitignore

  1. 验证。找一张图拖进聊天框,对它说「描述这张图」。能返回画面内容即成功。报 401 / 没有 API Key,回到上一步并确认已经重启 Harness。模型说没有 mcp__qwen-mm-plugins-* 工具,先确认装了 uv,再完全退出重开 Harness——MCP 服务器要重启才加载。

卸载:双击仓库里的 uninstall.bat

典型用法

装好后不需要记工具名。README 给的说法是:直接跟 DeepSeek 说话,模型会触发 vision-multimodal 并自己选工具。文档里的例子包括:

  • 「描述一下这张图」并发送图片
  • 「把这张截图里的文字提取出来」
  • 「图里的猫在哪个位置,帮我画个框」
  • 「总结这段视频讲了什么」并发送视频
  • 「把这个会议录音转成文字」
  • 「这张 PDF 第 2 页讲了什么」

SKILL.md 要求图片、视频一律传绝对路径,相对路径会找不到。中文路径可以直接传。处理视频前应先调 core 的 media_info,拿到时长、分辨率、fps、音轨和旋转,再决定抽帧还是走 Omni。

截图直读

截图工具不是 skill,也不是 MCP,而是一个 Windows 后台脚本:只有本机 127.0.0.1:3080 在监听时才会接管剪贴板。

开启监控(做一次,窗口保持开着):

  1. 打开 C:\Users\你的用户名\.dsh\tools\screenshot-tool\
  2. 双击 start-screenshot-autosave.bat,弹出的黑色窗口不要关
  3. 可选:双击 install-autostart.bat,以后开机自动跑

之后按 Win+Shift+S(或 PRTSC / Alt+PRTSC)截图,回到聊天框 Ctrl+V。粘贴出来的是 .png 路径文字,不是图片本体,这是预期行为。再说「读一下这张图」即可。

默认保存目录是 %USERPROFILE%\Pictures\DeepSeek-Shots,可用环境变量 DS_SHOT_DIR 改位置。Harness 不在 3080 端口时,设 DS_PORT 或改脚本里的默认值。DeepSeek 关掉后,脚本不再改剪贴板,截图可以正常贴到微信、Word。

命令行调用 vision.py

没有 MCP、或要换厂商时,把 config.example.json 复制为 config.json,改 provider,设置对应环境变量后运行:

python vision.py chat --image 图.png --prompt "描述这张图"
python vision.py ocr --image 图.png --lang zh
python vision.py grounding --image 图.png --prompt "所有猫"
python vision.py compare --image 图.png --prompt "描述这张图" --models qwen,glm,kimi
python vision.py providers

各厂商的 base_url、模型名和 Key 环境变量写在 skills/vision-multimodal/references/providers.md。临时覆盖可以用 --provider / --model / --base-url / --api-key

适用场景与注意事项

适合已经在 Windows 上跑 DeepSeek Harness Web UI、并且能申请阿里云百炼 Key 的人。典型任务是:读截图和票据、给图里的目标画框、转写会议录音、问一段短视频讲了什么、打开本地 PDF 问某一页。方式 B 还可以把同一套 skill 接到 OpenAI、智谱、Kimi、硅基流动或本地 Ollama。

下面这些限制来自仓库文档和安装脚本,不是推测:

  • 没有 Key 就不能看云端模型。 这是 README 标成「唯一绕不开」的一步。README 提到可以把 Key 临时贴进当前对话,但那只对这一次会话有效,重启后仍要配环境变量。
  • 一键安装和截图直读绑定 Windows。 仓库徽章写的是 Platform: Windows。install.ps1install.bat 和截图监控都按用户目录 ~/.dsh 与 PowerShell 来写。
  • 方式 A 依赖 uvx 没装 uv,MCP 注册也会写进 patch 文件,但服务器拉不起来。视频转写还可能需要把 ffmpeg 加进 PATH。
  • 图像分割不是开箱即用。 SKILL.md 写明 segmentation 需要 SAM3 服务。
  • 长视频不要整段塞进单次调用。 30 分钟以上走 qwen-mm-plugins-video-memory:先 get_summary / get_super_events,需要细节再检索子图或 ASR/OCR 文本。视频抽帧默认约 1 fps、约 448²,文档不建议无故调高 fps。
  • 插件以当前 dsh 进程权限运行。 安装脚本会改 ~/.dsh/profiles/web/cordis.patch.yml,并复制文件到用户目录。安装前检查源码和 MIT 许可证;依赖的 qwen-mm-plugins 由 QwenLM 提供,按各自许可证使用。云端调用会把图片、音视频发到百炼接口,按各平台的隐私与计费规则处理。
  • grounding 坐标是 0–1000 归一化。 画框、裁剪必须用同一套坐标,不要自行换算成像素。

常见报错与 README 对照表一致:401 多半是 Key 没配或没重启;找不到 MCP 工具就检查 uv 并重启 Harness;vision.py 报 SSL / _ssl 常见于损坏的 Anaconda 环境,换官网安装的 Python。

小结

dsh-vision-complete 做的不是把 DeepSeek 换成多模态模型,而是给纯文本 Harness 接上一套可切换的视觉/听觉工具:默认 MCP 走通义千问,备用 vision.py 走任意 OpenAI 兼容接口,再加一个 Windows 截图路径桥。真正挡住使用的通常不是安装脚本,而是 API Key、uvx 和一次完整的进程重启。

目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-vision-complete/

GitHub:https://github.com/Yts1919/dsh-vision-complete

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

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

小夜