DSH Hub

br1nosense/dsh-vision-solution

dsh-vision-solution

BundleVision0 GitHub stars· updated 2026-08-17

dsh-vision-solution is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx -y @deepseek-ai/dsh plugin --profile web add @dsh-user/dsh-vision-solution

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-vision-solution DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-vision-solution.svg)](https://dshhub.dev/plugins/dsh-vision-solution)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from br1nosense/dsh-vision-solution, cleaned of badges and images.

dsh-vision-solution

让 DeepSeek Harness (DSH) 里的纯文本模型(如 DeepSeek)也能发送并识别图片。

本项目把两个东西整合成一个自包含方案:

  1. 识图技能ds-vision-skill(v0.5.1,MIT):图片/截图/PDF/OCR 的统一路由与识别,输出标准 JSON 交给主模型继续推理。
  2. 宿主补丁vision-patch(幂等补丁引擎):移除 DSH 对"纯文本模型 + 图片"的拦截,让图片消息能送达到模型侧。

装上即用:纯文本模型发图不再被拒,图片自动交给视觉 API 识别。


为什么需要它

很多编码/推理 Agent 是纯文本模型(例如通过火山方舟托管的 DeepSeek 系列)。它们本身没有视觉能力,而且 DSH 会在两处直接拒绝图片消息:

  • 发送图片时:Model "xxx" does not support image input.
  • 切换到纯文本模型但会话已含图片时:does not accept image input...

本项目通过宿主补丁移除这两处拒绝,并把图片以"带本地路径的占位文本"([图片附件:xxx,本地路径:...])送给模型;模型据此调用识图技能里的 vision-router.ps1,把图片交给火山方舟 doubao-seed-2.0-lite(或任意 OpenAI 兼容视觉 API)识别,拿回结构化结果继续推理。

工作原理

用户发图/拖入图片/粘贴图片
        │
        ▼
DSH host (打补丁后不再拒绝)
        │  图片 → "[图片附件:xxx,本地路径:<path>]" 占位文本
        ▼
主模型(纯文本)收到路径占位
        │  调用 ds-vision-skill → scripts/vision-router.ps1
        ▼
vision-router 自动路由
  ├─ 图片理解:竞速池(agnes/glm) → custom-1/2/3 → local
  ├─ OCR:百度OCR → Windows OCR → 视觉推理
  └─ 文档解析:MinerU
        │
        ▼
视觉 API(本项目默认:火山方舟 doubao-seed-2.0-lite)
        │
        ▼
标准 JSON 信封 → 主模型阅读 result 并继续推理

降级链

image reasoning: race(agnes-2.5-flash, agnes-2.0-flash, glm, glm-thinking) -> custom-1 -> custom-2 -> custom-3 -> local
ocr:             baidu-ocr -> windows-ocr -> vision reasoning
document:        mineru flash -> mineru extract

特性

  • ✅ 纯文本模型(DeepSeek 等)发送图片不再被"当前模型不支持图片"拦截
  • ✅ 图片自动降级为本地路径占位文本,配合识图技能完成视觉理解
  • ✅ 多模态模型行为完全不变,图片照常直传
  • ✅ 支持火山方舟 / 任意 OpenAI 兼容视觉 API
  • ✅ 宿主补丁幂等:可安全重复执行,每次自动 node --check 自校验
  • ✅ 无密钥入库:API Key 通过环境变量提供

目录结构

dsh-vision-solution/
├── README.md                  # 本文档
├── LICENSE                    # MIT
├── install.ps1                # 一键安装脚本
├── package.json               # DSH 插件 manifest(dsh.bundle,可 `dsh plugin add` 安装)
├── cordis.patch.yml           # bundle 挂载补丁(注册两个技能)
├── lib/index.js               # 插件 host 半边(ctx.skills.register 注册技能)
├── skills/
│   ├── ds-vision-skill/       # 识图技能(来自 Sorwcyra/ds-vision-skill)
│   │   ├── SKILL.md           #   技能定义
│   │   ├── scripts/           #   vision-router / setup / 各通道脚本
│   │   └── references/        #   通道与基准文档
│   └── vision-patch/          # 宿主补丁技能
│       ├── SKILL.md           #   补丁检修说明
│       └── patch-vision.js    #   幂等补丁引擎

前置要求

要求
DeepSeek Harness (DSH)0.1.0-rc.6(补丁锚点针对该版本)
Node.js≥ 20
操作系统Windows / macOS(脚本跨平台)
视觉 API Key火山方舟(或任意 OpenAI 兼容视觉 API)

快速安装

方式一:作为 DSH 插件安装(dsh.bundle)

本仓库声明了 dsh.bundle manifest,可用 dsh plugin add 从 GitHub 安装:

dsh plugin add https://github.com/br1nosense/dsh-vision-solution

安装后重启 dsh webds-vision-skillvision-patch 两个技能即注册到技能系统; 宿主补丁仍需在「图片被拒」时执行一次 vision-patch(或手动跑 patch-vision.js)。

方式二:一键脚本(推荐)

# 在本仓库根目录执行
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

脚本会:

  1. skills/ds-vision-skillskills/vision-patch 复制到 ~/.dsh/skills/
  2. 自动执行 patch-vision.js 修补 DSH 宿主;
  3. 打印后续配置指引。

方式三:手动

# 1. 复制技能目录
Copy-Item -Recurse .\skills\ds-vision-skill $HOME\.dsh\skills\
Copy-Item -Recurse .\skills\vision-patch  $HOME\.dsh\skills\

# 2. 执行宿主补丁(幂等,可重复)
node "$HOME\.dsh\skills\vision-patch\patch-vision.js"

重启生效

补丁需重启 dsh web 才生效:

# 在启动 dsh web 的终端按 Ctrl+C 停止,再运行:
dsh web --port 3080

重启后刷新页面,从会话列表恢复会话即可。

Related plugins