面向 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.jsondependencies加"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
环境要求
dshCLI(DeepSeek Harness)且已装webprofile——或任意 CLI/headless profile(见 CLI / headless)PATH中有pnpm(或用npx --yes pnpm@<version>代替)
快速开始
- 重启
dsh web,打开 设置 → 全模态。 - 在 VLM Tab 点「添加模型」(或编辑默认卡片):选供应商、粘贴 API Key、获取并选择模型。
- 给 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)。
文档
- docs/reference/configuration.md —— 配置文件全部字段、位置优先级、CLI 最小配置
- docs/features/vlm.md —— VLM 分析、卡片回退、镜像模型、多模态适应
- docs/features/vision-toolkit.md —— 6 个视觉工具
- docs/features/imggen.md —— 图像生成与 ComfyUI 工作流
- docs/features/video.md —— 多卡片视频生成与
/build-video-tool - docs/features/voice.md —— 语音合成与音色克隆
- docs/reference/api.md ——
/omni/*API 契约 - docs/changelog/changelog.md —— Changelog
卸载
dsh plugin --profile web remove dsh-omni-workstation
移除依赖与 bundle 条目。位于 ~/.dsh/omni-vision.json 的配置会保留(想连 API Key 一起清掉就手动删);仍在插件安装目录里的旧配置随插件一起移除。
License
MIT
链接
同类插件
liustack/modlens★ 4725
为纯文本模型架起视觉桥梁:粘贴图片,输出结构化 JSON 证据(OCR、版面、语义)。
ysr666/dsh-vision-router★ 1211
为纯文本 Agent 提供视觉能力:内置免 Key 视觉链 + 像素级视觉工具(看图问答、定位、裁剪、像素对比、取色、OCR、矢量化、抠图、截图);粘贴图片即可用。
Anionex/dsh-vision-toolkit★ 922
让纯文本模型处理视觉任务:粘贴图片后自动切换到 Vision Toolkit 变体,支持图片问答、多图比较、长截图 OCR、截图还原前端 UI、元素定位与像素对比。默认无需 API Key——图片经作者自建的免费服务处理,每台机器每天 100 张;也可改为指向自己的服务商。
SAOS-3624/dsh-video-storyboard★ 384
把视频(本地文件,或 B 站 / yt-dlp 链接)压成一张可寻址的宫格图:每格烧编号、对应精确时间、挂台词,底部还有同时间轴的音频包络;video_zoom 可对任意窗口高清重看——纯文本模型因此能「看」视频,而不是读别人写的摘要。
dickpy/dsh-imagegen★ 167
面向 DSH Web GUI 的 AI 生图插件:通过可配置的 OpenAI 兼容端点(gpt-image-2 / gpt-image-1 / dall-e-3)实现文生图与图生图,提供 api_url/api_key 设置卡片与侧边栏分栏生图工作台。
fandc520/dsh-comfyui★ 159
让 DeepSeek Harness 的 Agent 直接驱动本地或远程 ComfyUI:comfyui_run / comfyui_object_info / comfyui_workflow 工具生成与编辑图像、视频,附带工作流库(图工作流提取:按分量 / 主流程 / 整体)、加载区分辨率自动匹配、实时队列、SDXL 与 Wan 2.1 模板、配套 skill 与同源媒体代理。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。