DeepSeek Harness plugin

dsh-vlm-bridge

DeepSeek Harness (dsh) bundle plugin: vision_analyze tool lets text-only LLM agents read images via SenseNova VLM, with Schemastery config and single-source credentials

Jump to install

Source facts

Repository
me9rez/dsh-vlm-bridge
Latest update
Aug 14, 2026
Category
Tools & Capabilities
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/me9rez/dsh-vlm-bridge
Plugin: dsh-vlm-bridge
Author: me9rez

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer2 files
README.mdSource · read only

dsh-vlm-bridge

DeepSeek Harness 组合包(bundle)插件:为纯文本模型提供视觉能力。

功能

vision_analyze 工具:读取图片文件 → 调用 VLM(默认 ModelScope Qwen/Qwen3-VL-8B-Instruct)→ 返回文字描述。 适合当前模型(如 deepseek-v4-flash)不支持图片输入时:

  • 识别图片内容(默认详细描述)
  • 追问图片细节(传 question 参数)

文件结构

dsh-vlm-bridge/
├── package.json        # dsh.bundle manifest + dependencies
├── cordis.patch.yml    # 插入 dsh-vlm-bridge 插件行的 patch 层
├── index.js            # 插件实现(name / inject / Config / apply)
├── scripts/
│   ├── verify.mjs      # 自检脚本(模块解析 + schema + 工具注册 + 真实 VLM E2E)
│   └── demo.png        # E2E 测试用图(真实 UI 截图,非 1×1/64×64 占位)
└── README.md

安装(profile web)

dsh plugin --profile web add github:me9rez/dsh-vlm-bridge
# bundle 层在启动时读取,安装后需重启 dsh 进程
dsh --profile web --dump-config   # 应看到 "# == dsh-vlm-bridge" 层

其他分发方式:

# 从 npm 安装(已发布后)
dsh plugin --profile web add dsh-vlm-bridge

# 从 tarball 安装(无需构建权限)
pnpm pack && dsh plugin --profile web add ./dsh-vlm-bridge-0.1.4.tgz

# 从本地目录安装(开发时)
dsh plugin --profile web add C:/workspace/dsh-vlm-bridge

# 维护
dsh plugin --profile web update dsh-vlm-bridge            # 更新
dsh plugin --profile web remove dsh-vlm-bridge            # 卸载(同时移除 bundle 层)

> 参考 dsh 生态做法(如 dsh-agent-teams 的安装方式:dsh plugin --profile web add github:NanmiCoder/dsh-agent-teams)——dsh 支持直接从 GitHub 安装 bundle 包。

配置层由 cordis.patch.yml 提供:插入 dsh-vlm-bridge 插件行(id 可被用户层覆盖)。

配置

单一来源:baseUrl/model 等只从 config 来(schema 默认值兜底);密钥只从 credentials 来

Config 字段(patch 层 config:)类型默认值说明
baseUrlstringhttps://api-inference.modelscope.cn/v1VLM API 地址
modelstringQwen/Qwen3-VL-8B-InstructVLM 模型名
cacheTtlMsnumber600000识别结果缓存时长 ms
cacheMaxnumber64缓存条目上限
fetchTimeoutMsnumber120000VLM 请求超时 ms
maxTokensnumber4096VLM 输出 token 上限(图片详细描述易超过 1024,调大缓解截断/空内容)
logFilestringos.tmpdir()/dsh-vlm-plugin/dsh-vlm-bridge.log(即 %TEMP%)日志路径

凭证(~/.dsh/.credentials.yaml,密钥唯一来源):VLM_API_KEY(必需)。 注意:VLM_BASE_URL / VLM_MODEL 不再从 credentials 读取(0.1.0 单一来源化), 要改端点/模型请在 config 里配。

示例(profile 的 cordis.patch.yml,覆盖 bundle 层已有的行):

# 顶层直接按 id 覆盖——不需要 insert/update 关键字。
# 覆盖 = 整行 config 替换:未写出的键回落 schema 默认值。
# 本 bundle 层 config 为空,所以只写想改的键即可。
- id: dsh-vlm-bridge
  config:
    model: glm-5.2-vision     # 换 VLM
    cacheTtlMs: 300000        # 想改就写,不想改可省(回落默认 600000)

若 bundle 未提供该行(如本地 --patch overlay),用 insert 提供:

- insert:
    - id: dsh-vlm-bridge
      name: dsh-vlm-bridge
      config:
        model: sensenova-6.8-flash-lite

覆盖规则:patch 按 id 整行替换 config,不深度合并。如果 bundle 层的行带显式 config,覆盖时必须重述想保留的全部键(否则回落到 schema 默认值);值等于 schema 默认的键可以省略。

已知坑:@deepseek-ai/* 模块解析

bundle 通过 pnpm link: 装进 profile 时是 junction 链接,Node 按 realpath 解析 bundle 内 import '@deepseek-ai/dsh-tools',即从 bundle 目录向上找 node_modules。

开发模式(bundle 源在外部目录):本机解法是在源目录旁建 junction 指向 dsh 安装目录的依赖:

New-Item -ItemType Junction -Path "C:\workspace\dsh-vlm-bridge\node_modules\@deepseek-ai" `
  -Target "C:\Users\15165\.dsh\profiles\node_modules\@deepseek-ai"

GitHub / tarball / npm 安装:包被复制进 profile 依赖树,向上能找到 hoisted 的 @deepseek-ai无此问题

> dsh publish 文档关于 git 安装的注意事项同样适用:若决定不预先打包 tarball, > 用户需要在 pnpm-workspace.yaml 里授权 allowBuilds,否则 git 安装的 prepare > 脚本会被 pnpm 10+ 拒绝运行。

验证

node scripts/verify.mjs

覆盖:模块解析、Config schema 校验(默认值/非法配置报错)、apply() 工具注册、 真实 VLM 调用 E2E(需 credentials 里有 VLM_API_KEY,否则跳过 E2E)。

变更记录

  • 0.1.5(2026-08-14):README 补充 GitHub/tarball/npm 三种安装方式(参考

dsh-agent-teamsgithub:NanmiCoder/dsh-agent-teams 安装用法)。

  • 0.1.4(2026-08-14):E2E 测试图打包进 bundle(scripts/demo.png,不再依赖外部路径)。
  • 0.1.3(2026-08-14):verify.mjs E2E 改用真实截图——1×1/64×64

极小图 ModelScope 会静默拒绝返回空内容,让人误以为是 base64 不支持。

  • 0.1.2(2026-08-14):默认 VLM 改为 ModelScope https://api-inference.modelscope.cn/v1 +

Qwen/Qwen3-VL-8B-Instruct(Sensenova 接口慢,降级为可配项)。

  • 0.1.1(2026-08-14):修复 VLM 输出被 1024 token 上限截断/偶发空内容——

maxTokens 可配置(默认 4096);空内容报错区分"推理占用全部 token"与"无输出"; 截断时在结果末尾附加提示;logFile 默认值改为动态 os.tmpdir()(不再写死本机路径)。

  • 0.1.0(2026-08-14):打包为 dsh bundle;新增 Config schema(Schemastery);

配置单一来源化——baseUrl/model 只从 config 来(schema 默认值兜底), 密钥 VLM_API_KEY 只从 credentials 来;新增 scripts/verify.mjs 自检脚本。