DeepSeek Harness 插件

huashenglian/dsh-omni-workstation

Star 数 ★ 7 下载量(近 30 天) 1,517 分类 视觉与多模态 收录于 2026-09-19 npm dsh-omni-workstation

面向 DSH 的全模态工作站:analyze_image 走有序多卡片 VLM 故障转移链;六个视觉工具箱工具(局部放大、色调采样、像素比对、OCR、元素检测、内联展示)共用同一套图片来源解析;generate_image 支持 OpenAI/DashScope/ComfyUI 协议;多卡片异步 generate_video 配 /build-video-tool 构建器;speak/clone_voice 语音合成覆盖七家供应商;全部由一个自动保存的设置页驱动。

安装

# npm 包(预构建)

dsh plugin --profile web add dsh-omni-workstation

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:huashenglian/dsh-omni-workstation

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

dsh-omni-workstation

用于 DeepSeek Harness(dsh)的全模态工作台插件。给 AI 装上眼睛、画笔、摄像机和嗓音:图像分析由有序多卡片 VLM 回退链驱动,配备 6 个本地视觉工具、图像生成(含 ComfyUI 工作流)、多卡片异步视频生成(带 AI 工具构建指令)以及覆盖 3 家云端 + 4 个本地供应商的语音合成与音色克隆——全部在一个自动保存的设置页(中/英文)完成配置。

English | 中文

安装 · 快速开始 · 功能 · 文档 · 工作原理


安装

本插件是 bundle:自带 cordis.patch.yml 并自我激活——一条命令完成,无需手动修改 profile 的 patch 文件。

# 本地目录安装
dsh plugin --profile web add ./dsh-omni-workstation

# GitHub 安装
dsh plugin --profile web add github:huashenglian/dsh-omni-workstation

# tarball 安装(pnpm pack / npm pack 打包后)
dsh plugin --profile web add ./dsh-omni-workstation-0.2.0-beta.1.tgz

dsh plugin add 会自动安装依赖,并把该 bundle 追加到 dsh.profile.bundles。

[!NOTE] 不要在 profile 的 cordis.patch.yml 里再加 - insert: - id: omni-workstation 一行——bundle 已自带,重复 insert 会导致启动时报 duplicate loader entry id: omni-workstation。

手动放置(备选):把插件包放到 $DSH_HOME/profiles/web/plugins/dsh-omni-workstation/,在 profile 的 package.json dependencies 加 "dsh-omni-workstation": "file:./plugins/dsh-omni-workstation",并把 "dsh-omni-workstation" 加入 dsh.profile.bundles 数组,运行 pnpm install 后重启 dsh web。

重启 dsh web 后打开 http://127.0.0.1:3080。若还没有 dsh CLI,可直接启动 web 服务:

npx @deepseek-ai/dsh web

环境要求

  • dsh CLI(DeepSeek Harness)且已装 web profile——或任意 CLI/headless profile(见 CLI / headless)
  • PATH 中有 pnpm(或用 npx --yes pnpm@<version> 代替)

快速开始

  1. 重启 dsh web,打开 设置 → 全模态。
  2. 在 VLM Tab 点「添加模型」(或编辑默认卡片):选供应商、粘贴 API Key、获取并选择模型。
  3. 给 AI 发一张图片(或一个本地路径)并提问——analyze_image 工具已就绪。

配置文件

所有配置都在一个 JSON 文件 omni-vision.json 里。设置页会读写它;在纯终端(CLI/headless)环境里,它是唯一的配置入口——不需要记任何斜杠指令。

文件位置(优先级由高到低):

# 路径 何时生效
1 $DSH_OMNI_WORKSTATION_CONFIG_DIR/omni-vision.json 仅测试 / 高级覆盖用
2 ~/.dsh/omni-vision.json(设了 DSH_HOME 则是 $DSH_HOME/omni-vision.json) 推荐;只要存在就用它,新装也默认写这里
3 ~/.dsh/profiles/<profile>/node_modules/dsh-omni-workstation/omni-vision.json 旧位置(v2.5–v2.13);home 没有配置时继续沿用

Windows 示例:C:\Users\<你>\.dsh\omni-vision.json。插件持久化的其它东西都在同一个目录:omni-vision.json.bak(恢复副本)、omni-vision.schema.json(编辑器补全)、voice-library/(克隆音色样本)、transcripts/(STT 输出)。

[!TIP]

  • 手改文件存盘即生效,不用重启:插件在下一个 agent 步重新读取配置并重注册工具。
  • 启动日志会打印实际使用的路径与各模块是否生效,例如 [dsh-omni-workstation] config: /home/you/.dsh/omni-vision.json (home) | vlm=on(2 cards) toolkit=on …;不确定用的是哪份就看它。
  • JSON 语法写错时会报出路径,并且绝不会覆写你的文件——插件在内存里用上一份好的 .bak 继续跑,等你改好。
  • 文件里有真实 API Key:切勿提交。每次保存插件都会写入 "$schema": "omni-vision.schema.json"(编辑器补全 + 校验);只有在你用别的方式新建/编辑该文件时,才需要手动补这一行(详见配置参考)。
  • 想把旧位置的配置搬到稳定位置:cp ~/.dsh/profiles/web/node_modules/dsh-omni-workstation/omni-vision.json ~/.dsh/(PowerShell:Copy-Item <源> ~/.dsh/omni-vision.json)。之后 home 文件优先。

手写最小配置——一张 VLM 卡片就能让 analyze_image 生效:

{
  "retryCount": 3,
  "vlmEnabled": true,
  "apis": [
    {
      "id": "c_yyy",
      "name": "VLM API",
      "provider": "custom",
      "protocol": "openai-completions",
      "endpoint": "https://api.example.com/v1",
      "apiKey": "sk-...",
      "model": "gpt-4o",
      "timeoutMs": 120000
    }
  ]
}

CLI / headless(无浏览器)

只要组合提供了 tools + llm,插件就能加载——不需要 web 服务。没有 web 面的组合里不存在 /omni/* 路由与设置页,所以直接改文件:

# 装进 CLI profile(profile 名随意,例如 headless)
dsh plugin --profile headless add github:huashenglian/dsh-omni-workstation

# 在 ~/.dsh/omni-vision.json 里写好一张有效 VLM 卡片后:
dsh --profile headless "描述一下 ./screenshot.png"
  • analyze_image、6 个视觉工具、generate_image / generate_video、speak / clone_voice / transcribe 都能用——同样由配置文件里的开关门控。
  • 仅浏览器可用的部分:设置页、/omni/* HTTP 路由、show_image / show_video 的可视化预览(工具本身仍可用,会返回工件路径)、/build-video-tool 斜杠指令。
  • web 与 CLI profile 读同一份文件,配一次到处可用。

功能总览

模块 工具 亮点
VLM 图像分析 analyze_image 有序 API 卡片链、单请求内回退、每卡超时、JPEG→PNG 重编码兜底、28 家内置供应商、镜像模型、动态多模态适应
视觉工具箱 zoom_image · sample_colors · image_diff · ocr_image · detect_elements · show_image 4 个纯本地工具零 token 成本;共享图片来源解析与卡片链;只返回工件路径
图像生成 generate_image OpenAI / DashScope / ComfyUI 三种路线、多工作流管理 + 角色映射、参考图、生图后自动视觉验证提醒
视频生成 generate_video(+每卡片独立工具名) 多卡片(上限 10)、7 种协议、/build-video-tool AI 构建指令与 custom-adapter 运行时
语音 speak · clone_voice · transcribe MiMo / MiniMax / 豆包 + IndexTTS / GPT-SoVITS / VoxCPM / TTS-WebUI;零注册内联克隆与持久化克隆;语音转文字走一套 OpenAI 兼容协议(默认本地 FunASR,无需 Key)

每个模块都有独立开关(默认开,STT 子开关默认关),但开关只是上限:关闭即完全注销工具;配置不完整时工具同样不会注册(0 token),已有配置完整保留。

为何选插件,而不是 Skill / 固定脚本

方式 常见痛点 本插件的做法
长文 Skill(照官方 API 配置) 每轮会话都要塞一大段说明,token 贵 配置只在设置页 / omni-vision.json;工具 schema 按模块开关注入
固定脚本(手写 API 调用) 脚本锁在某个项目目录,每次还得口头告诉 AI 路径和用法 工具注册进 harness,AI 在会话里自动发现、直接复用
改配置 / 换模型 改脚本或重贴 Skill 正文 改设置页字段即可,即时生效

简言之:少占上下文、开箱即用、改配置不改代码。

工具自定义(视频)

当前支持 AI 辅助构建自定义视频工具:在聊天框输入 /build-video-tool,插件会注入构建指南(含卡片上限、现有工具等硬约束),AI 按指南收集平台信息并写入新卡片与可调用工具——无需你手写脚本或再贴一遍 API 文档。

[!TIP] 卡片上限默认 10;已达上限时指令会直接报错。自定义工具走 custom-adapter 运行时,详见 视频文档。

设置面板

设置 → 全模态——四个 Tab(VLM / 生图 / 视频 / 语音)加全局设置 Tab。每次修改即时保存、立即生效,无需「保存」按钮。

工作原理

本包是双面结构:

  • 宿主半(lib/index.js)——cordis 插件:在全局工具注册表注册工具;加载并持久化 omni-vision.json(见配置文件);配置变化(包括运行中手改文件)时自动重同步注册。/omni/* Web 路由只在存在 webServer 的组合(web / desktop)里注册;CLI 与 headless 组合拿到工具但没有 HTTP 面。
  • 浏览器半(lib/client.js)——浏览器模块(经 dsh.client 入口加载):注册 设置 → 全模态 区块及其语言命名空间(settings.omni-workstation)。

文档

卸载

dsh plugin --profile web remove dsh-omni-workstation

移除依赖与 bundle 条目。位于 ~/.dsh/omni-vision.json 的配置会保留(想连 API Key 一起清掉就手动删);仍在插件安装目录里的旧配置随插件一起移除。

License

MIT

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。