dsh-vision-skill/dsh-plugins/dsh-vision-skill

7Star1Fork0Issue0Watching

把任意 OpenAI 兼容多模态模型接入 DSH:图片识别、OCR、目标定位、元素枚举、主色和长截图 OCR,提供 paste-to-path 直接贴图。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

此插件是大仓库 DDDFXYqiming/Agent_Extensions 的子包,星数与活跃度统计的是整个仓库。

语言
JavaScript
License
MIT
分支
main
agent-skillsai-agentdeepseek-harnessdsh-pluginprompt-engineeringpythonskillstranslation

安装

$ dsh plugin --profile web add github:DDDFXYqiming/Agent_Extensions#path:dsh-plugins/dsh-vision-skill

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 DDDFXYqiming/Agent_Extensions/dsh-plugins/dsh-vision-skill:先查看仓库 https://github.com/DDDFXYqiming/Agent_Extensions.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DeepSeek Harness(DSH)补齐"看图"能力:把任意 OpenAI 兼容的多模态模型封装成 8 个工具 + 1 个运行时 skill,让主模型即使不原生支持图片,也能借助本插件识别图片、提取文字、定位目标、枚举元素、取色和分块 OCR。

核心能力

  • 识别本地图片:6 种模式(描述 / OCR / 表格 / 代码 / 报错 / 结构化证据)按需切换,识别结果按 SHA-256 内容哈希缓存避免重复调用。
  • 独立 OCR:从图片中提取全部可见文字并保持原始排版,与普通识图分离。
  • 目标定位:在图片中查找指定对象(如"微信图标"),返回像素与归一化坐标框,可选保存带标注框的预览图。
  • 元素枚举:清点图片中某一类 UI 元素(按钮、链接、图标等),逐个编号 + 像素坐标框。
  • 主色分析:本地像素算法(无 API 调用),输出主题色与占比,可用于取色与配色分析。
  • 超长截图分块 OCR:聊天记录、超长网页截图自动切块(带重叠)→ 优先本地 tesseract → VLM 兜底 → 合并全文。
  • 剪贴板图片识别:把剪贴板图片保存到工作区后再识别,作为"模型不支持贴图"时的兜底通道。
  • 直接贴图(paste-to-path):在 Web 输入框粘贴图片时由客户端截获、同源上传到 .dsh-vision/pasted/、仅以路径文本进入消息,规避 MODEL_DOES_NOT_SUPPORT_IMAGES

技术实现

  • 语言: JavaScript(Node ESM,1327 行)+ Python 3(识别脚本)
  • 关键依赖: @deepseek-ai/dsh-tools / @deepseek-ai/dsh-credentials / @deepseek-ai/schemastery(peer 依赖,由 DSH 宿主注入);@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation(optional peer,用于 Web 客户端)
  • 架构模式: Cordis 插件(ctx.skills.register 注册 runtime 层 vision 技能 + ctx.tools.register 注册工具;progressive 模式下按 Agent 渐进暴露;ctx.inject(['webServer'])/dsh-vision-skill/paste 同源上传路由)。识别核心走外部 Python 子进程(scripts/vision.py,Qwen 官方动态分辨率预处理 + OpenAI 兼容 VLM)
  • 入口文件: lib/index.js(插件主体)/ client.js(Web 客户端粘贴逻辑)/ scripts/vision.py(识别核心)

适用场景

主模型不支持直接读取图片时(常见的纯文本模型场景),用户通过路径文本、剪贴板截图或在 Web 输入框粘贴图片即可让 DSH 看到图、读出文字、定位目标、提取表格等。适用于让纯文本模型具备视觉能力的场景(截图问答、报错图分析、长聊天记录归档、UI 元素坐标定位、取主题色)。

前置依赖与兼容性

依赖最低版本说明
DSH 宿主0.1.0-rc.6+peer 依赖声明 @deepseek-ai/dsh-client-runtime ^0.1.0-rc.6@deepseek-ai/dsh-client-ui-conversation ^0.1.0-rc.6;cordis 4.x
Node.js>=22.19package.json engines.node
Python3.x外部脚本 scripts/vision.py 运行环境,建议安装 Pillow
Pillow任意vision.py --check 自检;OCR/分块/色彩分析依赖
tesseract任意长截图 OCR 本地优先路径的依赖;未安装时自动回退 VLM
多模态模型 API Key任意 OpenAI 兼容默认 MiniMax-M3 + VISION_API_KEY 凭证引用;也可用 apiKey 明文(不推荐)
平台支持macOS / Windows / Linux服务器侧与 Web 客户端跨平台;vision_clipboard 依赖 PowerShell + WinForms,仅 Windows 可用

安装方式

dsh plugin --profile web add github:DDDFXYqiming/Agent_Extensions#path:dsh-plugins/dsh-vision-skill

配置项

配置类型说明默认值
apiUrlstring主视觉模型 OpenAI 兼容接口地址(含路径)https://api.minimaxi.com/v1/chat/completions
modelstring主视觉模型名称MiniMax-M3
apiKeystring主 provider 明文密钥(不推荐,优先用 credential)
credentialstring主 provider 密钥的 DSH Credential 引用名VISION_API_KEY
pythonstringPython 解释器路径python
pwshstringPowerShell 路径(剪贴板识别工具使用)powershell.exe
timeoutMsnumber单次识图接口超时(毫秒)180000
concurrencynumber并发识图数(1-8)2
progressiveboolean是否按 Agent 渐进暴露(仅全局挂一个激活工具)true
allowedDirsstring[]图片路径白名单(除工作区与 DSH 附件目录外)[]
visionProvidersobject[]备用 provider 链路(顺序 = 优先级;429/错误自动切下一个)[]
tesseractstringtesseract 可执行文件路径tesseract
tesseractLangsstringtesseract 语言包(默认中英混合)chi_sim+eng
pasteMaxBytesnumberpaste-to-path 同源上传单图字节上限(1KB-100MB)10485760
cacheboolean是否启用图片内容哈希识别结果缓存true
cacheTtlSecondsnumber缓存有效期(秒,10-86400)3600
cacheMaxEntriesnumber缓存条目上限(LRU,1-10000)200

注:bundle 安装已写入默认配置,profile 不写任何 vision-skill 行也可工作。自定义时用裸条目按 id 覆盖(不要使用 insert:,否则会触发 duplicate loader entry id 启动失败)。

常见问题

Q: 这个插件需要付费的视觉模型 API 吗?

A: 支持任意 OpenAI 兼容的多模态模型(Qwen-VL、MiniMax-M3、Gemini、GPT-4o 等)。默认 MiniMax-M3,可在配置里换 apiUrlmodel。密钥推荐用 DSH Credential 引用 VISION_API_KEY 而不是写在明文 config 里。

Q: 用 deepseek-official 纯文本模型时怎么"看图"?

A: 三种方式:① 直接发图片路径;② 截图后说"看图"触发剪贴板识别;③ 在 Web 输入框直接粘贴图片。v0.4 起粘贴图片会走 paste-to-path 进入消息时只含路径文本,不会触发 DSH 的 MODEL_DOES_NOT_SUPPORT_IMAGES 准入检查,旧版 pi-ai 图片补丁仅作为兼容保留。

Q: 同一张图第二次识别还要扣视觉 API 额度吗?

A: 默认不会。vision_analyze 启用 SHA-256 内容哈希 + mode/budget/crop/prompt 组合的缓存,TTL 内命中直接返回 cached: true,不重复调用视觉 API。需要禁用时把 cache 设为 false

Q: 长聊天截图这种超高图怎么办?

A: 用 vision_long_screenshot_ocr:自动按目标高度切块(带重叠)→ 每块先跑本地 tesseract,识别失败才回退到 VLM,最后合并成带块边界信息的全文,比单次 API 适合超高图。

Q: 图片不在工作区或 DSH 附件目录会怎样?

A: 会被路径围栏拒绝并报 vision-skill: 路径超出允许范围。三种放行方式:① 把图放进工作区;② 放进 ~/.dsh/attachments 默认放行目录;③ 在 config 的 allowedDirs 数组里加入该目录。

Q: 安装后启动报 "duplicate loader entry id" 怎么修?

A: bundle 已在 cordis.patch.yml 贡献了 vision-skill 行,不要再在 profile 自己的 patch 里 insert 同 id 条目。需要自定义时,用裸条目按 id 覆盖 config(覆盖会整行替换 config,所以保留字段也写全)。

Q: 已经装了 user/project 层的同名 vision 技能怎么办?

A: 本插件以 runtime 层注册 skill 名 vision,可能与 user/project 层同名技能互相遮蔽。建议二选一,卸载其中一处以免识别流程被另一个同名技能抢走。

上手难度

入门 — 默认值已经能工作,DSH 0.1.0-rc.6+ 用户只需配置一个视觉模型 API 即可使用全部 8 个工具,无需修改代码或补丁框架。

已知问题与限制

  • vision_clipboard 依赖 PowerShell + System.Windows.Forms.Clipboard,仅 Windows 可用;macOS / Linux 客户端无法触发该工具。
  • DSH 宿主进程对 DSH_HOME 环境变量可能被清理(路径围栏已用 homedir() 回退到 ~/.dsh/attachments,但其他依赖 DSH_HOME 的行为仍可能受宿主清理影响)。
  • 同名技能(vision)冲突:runtime 层技能可能与 user/project 层技能互相遮蔽,按 DSH 优先级 project > runtime > user 解析。
  • bundle 安装后 cordis.patch.yml 已贡献 id: vision-skill,profile 不应再额外 insert: 同一 id,否则插件加载失败。
  • lib/index.js 后需重启 DSH 宿主生效;patch 配置层支持热重载。
  • 直接贴图走 paste-to-path,最大单图字节由 pasteMaxBytes 控制(默认 10MB),超过上限会被拒绝。
  • pi-ai 适配器旧版"图片→路径"补丁 v0.4 起已不需要;scripts/reapply-pi-ai-vision-patch.ps1scripts/restore-pi-ai-vision-patch* 仅作为兼容保留脚本,随包分发需要用户在本机修改硬编码路径。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/DDDFXYqiming/Agent_Extensions/dsh-plugins/dsh-vision-skill)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录