deepseek-visionary/packages/dsh-plugin

13Star2Fork2Issue0Watching

为 DeepSeek Harness 提供 DeepSeek 网页版视觉模型原生工具(识图/OCR/登录)与文本模型图片桥接,无需 API Key。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
Rust
分支
main
agentdeepseekdeepseek-harnessdsh-pluginharnessmcpmcp-serverskills

安装

$ dsh plugin --profile web add github:xlight/deepseek-visionary#path:packages/dsh-plugin

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

对话式安装

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

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

一句话定位

DSH 插件,把 DeepSeek 网页版视觉与 OCR 能力封装为宿主级原生工具(无需 API Key),并补齐"纯文本模型粘贴图片就被拒绝"的桥接能力。

核心能力

  • 注册 5 个 DSH 原生工具:deepseek_vision(识图,支持多图/续聊)、deepseek_ocr(纯文字提取)、deepseek_vision_status(登录状态)、deepseek_vision_login(浏览器自动登录)、deepseek_vision_logout(清除凭据)
  • 复用 visionary-server Rust 二进制处理 PoW、上传、fork、HIF、SSE 等重活,插件仅做参数映射与 JSON 解析
  • 在宿主进程内直接执行(不经 bash 沙箱),所以浏览器登录与多轮会话续聊不受工作区写权限限制
  • 为纯文本模型(如 deepseek-v4-flash)自动桥接粘贴图片:落盘到 pastedDir 后改写为引导文本,由 agent 调 deepseek_vision 完成分析
  • 设置面板与 $DSH_HOME/settings.yaml 双入口,修改即时热重载,无需重启 DSH
  • 桥接支持 deterministic 模式:直接调用 CLI 完成分析并以"不可信证据"标注注入模型消息

技术实现

  • 语言: Node.js(ESM,"type": "module"
  • 关键依赖: @deepseek-ai/dsh-toolsdefineTool)、@deepseek-ai/dsh-settingsinstallSettingsSection)、@deepseek-ai/dsh-attachment@deepseek-ai/cordis + @deepseek-ai/schemastery(运行时配置 schema)
  • 架构模式: Cordis 插件,通过 packages/dsh-plugin/cordis.patch.ymldsh.profile.bundles 叠加层注册 3 个插件行(visionary-visionvisionary-image-bridgevisionary-settings-card);exec.signal 与子进程 kill 联动实现可取消超时
  • 入口文件: packages/dsh-plugin/lib/index.mjs(主工具集),子路径 lib/image-bridge/index.mjslib/settings-card/index.mjs

适用场景

在 DeepSeek Harness 中希望让模型"看懂"用户粘贴的图片、截图、文档,但不愿自备 API Key 或受限于 bash 沙箱的开发者。特别适用于使用纯文本模型(如 deepseek-v4-flash)又希望支持图片输入的用户,以及需要在多个工具调用之间对同一张图做多轮追问的场景。

前置依赖与兼容性

依赖最低版本说明
DSH 宿主^0.1.0-rc.6peerDependencies 锁定 dsh-tools / dsh-llm / dsh-attachment / dsh-settings;cordis ^4.0.1
Node>=20来自 package.json#engines.node
平台macOS / Windows / Linux插件本体跨平台;Windows 额外解析 npm shim 定位 .bin_real/ 下的 exe 真身
原生模块无原生编译依赖,但需要宿主外可执行的 visionary-server 二进制
visionary-server 二进制≥0.5.x0.5.x 修复了无 OCR 文字图片上报 CONTENT_EMPTY 的旧问题

安装方式

dsh plugin --profile web add github:xlight/deepseek-visionary#path:packages/dsh-plugin

配置项

visionary-vision 命名空间(视觉工具配置):

配置类型说明默认值
binaryPathstringvisionary-server 二进制的绝对路径;留空则按 DEEPSEEK_VISIONARY_BINPATH 顺序懒解析""
modelTypeenumdeepseek_vision 上传管道:vision(完整视觉理解)或 ocr(纯文字提取);切换即时生效vision
loginTimeoutSecondsnumber浏览器登录等待超时(秒),DEEPSEEK_LOGIN_TIMEOUT 环境变量可覆盖600
visionTimeoutMsnumberdeepseek_vision / deepseek_ocr 单次调用超时300000
statusTimeoutMsnumberstatus / logout 调用超时60000

visionary-image-bridge 命名空间(图片桥接配置):

配置类型说明默认值
enabledboolean总开关;关闭后完整恢复宿主"文本模型拒绝图片"原行为true
routesarray桥接路由的 provider/model 列表;空数组 = 全部路由生效[]
pastedDirstring图片落盘目录,目录权限 0700 / 文件 0600,支持 ~~/.deepseek-visionary/pasted
promptTemplatestring引导模板(agentic 模式),必须含 {path} 占位符(缺失会被校验拒绝)内置默认含"不可信证据"标注
retainHoursnumber落盘副本保留小时数;<= 0 表示不清理168(7 天)
scopeenumtext-only(仅桥接文本模型)或 also-vl(VL 模型同样经桥接改写)text-only
modeenumagentic(改写为引导文本)或 deterministic(桥接直接调用 CLI 分析并注入"不可信证据"标注)agentic
cleanPastedboolean手动清理触发器:设为 true 即清理 pastedDir 全量副本并自动复位为 falsefalse

常见问题

Q: 安装后工具没出现在 DSH 工具列表里怎么办?

A: 确认通过 dsh plugin --profile web add 安装成功,并已重启 DSH(bundle 装载需要重启)。可用 dsh --profile web --dump-config 检查是否出现 @xlight-oss/visionary-dsh 层,且其中包含 visionary-visionvisionary-image-bridge 两行。

Q: 需要 DeepSeek API Key 吗?

A: 不需要。本插件调用的是 DeepSeek 网页版视觉模型(chat.deepseek.com),通过浏览器自动登录复用网页端凭据;首次使用前需运行 deepseek_vision_login 完成登录,凭据保存到 ~/.deepseek-visionary/config.json,与 skill/CLI/MCP 路径共用。

Q: 纯文本模型粘贴图片被宿主拒绝,怎么开启桥接?

A: visionary-image-bridge 默认开启(enabled: true)。如果被关闭,前往"设置 → 左侧导航 → Visionary"将 enabled 重新打开;如显式配置了 routes,需要把当前会话的 provider/model 列入白名单。设置面板修改无需重启 DSH。

Q: 图片和会话数据保存在哪里?会自动清理吗?

A: 桥接会把粘贴图片落到 ~/.deepseek-visionary/pasted(目录权限 0700、文件 0600),按 retainHours 默认 7 天惰性清理;宿主附件库中的原始图片字节永久保留,不受 retainHours 影响,如需彻底删除请清除对应会话。

Q: 如何卸载插件?

A: 使用 dsh plugin --profile web remove @xlight-oss/visionary-dsh 卸载并重启 DSH。卸载后纯文本模型粘贴图片会恢复为宿主原行为(直接拒绝)。

Q: deepseek_visionFile ... processing failed: status=CONTENT_EMPTY 怎么办?

A: 这是上游二进制已知问题:后端会对上传图片做 OCR 文本提取,纯插画、渐变、深色无文字图会被标记 CONTENT_EMPTY。已在 visionary-server ≥0.5.x 修复(不再中止,继续走 vision 模型)。请按 README 指引重新安装最新二进制。

Q: 支持哪些操作系统?二进制怎么装?

A: 插件本体跨平台。visionary-server 在 macOS、Linux、Windows 都提供安装脚本(一键安装脚本、Homebrew、npm install -g);Windows 下插件会额外解析 npm shim(.cmd / .ps1)文本,定位包内 .bin_real/visionary-server.exe 真身来避免丢 stdout 管道与孤儿进程。

上手难度

入门 — 安装即用,工具自动出现在 DSH 中;只有当默认行为不符合预期(如只想桥接特定模型、想关闭 deterministic 模式)时才需要进设置面板调配置。

已知问题与限制

  • 上游二进制旧版(<0.5.x)会在无 OCR 文字的图片(如纯插画/渐变/纯色)上报 CONTENT_EMPTY 并中止;用户必须升级 visionary-server 到 ≥0.5.x 才能正常使用
  • 落盘副本(pastedDir)按 retainHours 独立清理,与宿主附件库永久保留策略分离:清理可能删掉旧会话仍在引用的路径副本,导致用户很久后翻旧会话重分析拿到失效路径;可通过调大 retainHours 或设为 <= 0 缓解
  • Windows 上 binaryPath 解析依赖 shim 文本匹配 node_modules\@xlight-oss\visionary-server\run-visionary-server.js 模式;若通过非常规方式(如手动改名/自定义目录结构)安装,二进制可能找不到并返回安装指引错误
  • 自定义 promptTemplate 必须含 {path} 占位符,缺失会被设置面板写入与加载两侧拒绝(fail-loud);自定义时需自行保留"不可信证据"框架以避免提示注入面
  • 设置面板的 Visionary 入口依赖宿主 webServer / settings 服务;只读部署或未启用 Web 面板的宿主演示为「设置服务不可用」
  • settings-card 插件行提供独立的 /visionary/api/settings.* 路由(loopback + Origin 校验),目的是绕过宿主 settings.describe 对第三方命名空间的白名单;禁用该插件行会导致面板不可用,但不影响工具与桥接行

收录徽章

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/xlight/deepseek-visionary/packages/dsh-plugin)

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

返回插件目录
deepseek-visionary/packages/dsh-plugin — DeepSeek Harness 插件 | deepseek-plugin.org