前言¶
在 DeepSeek Harness(DSH)里装技能、接 MCP,常见做法是启动时就把目录和连接器全部注册进上下文。技能一多,catalog 会撑爆首轮 token;MCP 客户端若在插件激活时连上服务器并注册全部工具,单个大服务器就可能占掉十万级 token,小窗口模型首轮就报错。插件配置行解析失败时,还可能直接导致 DSH 起不来。
下面介绍社区插件 dsh-capability-pack(维护者 glentao-dev)。它把技能与 MCP 改成「提问时检索、需要时再加载」,并附带启动体检与安全模式守卫;界面侧提供六页工作台,统一浏览专家、技能、连接器等能力。插件分类为工作流,可在 SkillHub 目录页 查看条目;SkillHub 为社区独立站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-capability-pack(npm 包名 dsh-capability-pack,当前资料中版本 1.3.0,MIT 许可证)的定位是:DSH workbench——专家 / 技能 / 连接器 / 定时 / 资料浏览,配合懒加载技能与 MCP,以及 boot-safety 启动守卫。
Host 侧暴露 capability 与 mcp 两类工具;Client 侧在对话输入框上方注入「工作台 已加载/总数」入口。状态与索引落在 ~/.dsh/state/capability-pack/。
它解决什么问题¶
README 用表格归纳了三类现状与本包做法,核心如下:
| 痛点 | 本包做法 |
|---|---|
技能目录往往只发现顶层 SKILL.md,全装 catalog 过大、不装又用不上 |
索引全部技能(名称 + 描述),按任务检索,命中后再把对应目录装进技能根 |
dsh-mcp-client 类方案在激活时连服务器并注册全部工具 |
mcp 工具按需连接:未调用时 0 进程、0 schema、0 token |
| 插件行包解析 / 语法 / 重复 id 导致启动失败 | doctor 静态体检 + 一键隔离;连续 2 次启动未完成则自动写安全模式标记 |
| 多套 MCP 原型重复维护 | 合并为零依赖 servers/dsh-fs-mcp.mjs,经懒加载桥接入 |
维护者在 README 中记录了本机 2026-10-24 的实测数字(环境相关,仅供参考):索引 3439 个技能、已加载 50;未调用连接器时 MCP 进程数为 0;合并后工具 schema 常驻约 2 个工具 / 1434 字符 / 约 600 tokens。
核心功能¶
模型侧:capability 与 mcp¶
两个工具入口(资料原文):
capability action=search|load|unload|report|health
mcp action=list|tools|call
典型链路:先用 capability action=search 按查询检索技能,再 load 把目录装进顶层,最后用 DSH 原生 skill 工具读全文并执行。MCP 侧先 mcp action=list 看连接器(不启动进程),需要时再 tools / call,首次调用才 spawn 对应服务器。
设计原则是检索结果会给出下一步动作,减少模型猜测。
界面侧:工作台六页¶
点开「工作台」后包含:首页(场景与提示词卡片)、专家(含本机 WorkBuddy 导入的专家与 DSH 智能体预设)、技能(搜索 / 加载 / 卸载)、连接器(MCP 注册表启用停用)、定时(任务模板复制)、资料(工作区目录树与文本预览,≤200KB)。
数据通过 GET /capability-pack/index.json;动作通过 POST /capability-pack/action。面板包在 ErrorBoundary 内,渲染异常时仅隐藏按钮,避免整页白屏。
WorkBuddy 离线导入(可选)¶
若本机已装 WorkBuddy,可离线读取 ~/.workbuddy/app/cache/experts/manifest.json 等,生成专家页与带 WB 标记的技能条目;未安装时脚本会提示未读到专家清单,其余功能仍可用。
启动防崩溃¶
三件事配合:doctor check 解析 profile 与 home 两层 cordis.patch.yml 并对生效插件行做包解析、入口与语法检查;doctor safe-mode 与 DSH_SAFE_MODE 可跳过本插件 Loader 行;插件 apply 时写 boot.json,连续两次未完成启动则自动落安全模式标记。bin/dsh-safe.cmd / dsh-safe.ps1 可在有标记时用安全模式启动 DSH。
安全边界(摘要)¶
unload 只处理本插件在 installed.json 中登记且路径仍在技能根内的目录;dsh-fs-mcp.mjs 路径受 DSH_FS_MCP_ROOT 限制;HTTP 路由为白名单动作,无任意命令执行。安装与 --fix 会先备份配置。
安装与启用¶
安装脚本要求 Node.js ≥ 20。装完后需 重启 DSH。资料中说明:安装过程会更新 pnpm-lock.yaml(DSH 认 lockfile 里的模块映射,漏步可能被静默跳过)。
从 GitHub 克隆后安装(推荐给其它机器)¶
git clone https://github.com/glentao-dev/dsh-capability-pack.git
cd dsh-capability-pack
node tools/install.mjs --profile desktop
从压缩包安装(无 git 时)¶
解压后进入 dsh-capability-pack/,执行:
node tools/install.mjs --profile desktop
--profile 省略时依次读环境变量 DSH_PROFILE,再退回 desktop。脚本幂等,可重复执行。
通过 DSH 插件管理器(git 源)¶
plugin_manager action=install_bundle
target=github:glentao-dev/dsh-capability-pack
pnpm 支持 git spec;npm 包发布后也可使用 dsh-capability-pack@<dsh 版本>(以发布说明为准)。
开发工作区内安装¶
node dsh-capability-pack/tools/install.mjs --profile desktop
卸载¶
node tools/uninstall.mjs --profile desktop
node tools/uninstall.mjs --profile desktop --keep-state
重启后可用运行时自检确认是否生效:
node tools/verify-live.mjs
资料示例输出包含 HTTP 路由、索引非空、启动守卫、安装登记四层检查。
典型用法示例¶
检索并加载技能(README 摘录):
capability action=search query="pptx 生成"
capability action=load name=ppt-implement
skill name=ppt-implement
按需调用 MCP 文件连接器:
mcp action=list
mcp action=tools server=fs
mcp action=call server=fs tool=fs_read arguments={"path":"README.md"}
常用 CLI(节选):
node tools/build-index.mjs [--workspace DIR] [--quiet]
node tools/doctor.mjs check [--profile p] [--json] [--fix]
node tools/import-workbuddy.mjs
node tools/validate-tools.mjs
连接器注册表需手填的文件为 ~/.dsh/state/capability-pack/mcp-servers.json;示例见仓库 data/mcp-servers.example.json。
适用场景与注意¶
适合谁:技能与 MCP 数量多、希望控制首轮上下文体积的 DSH 用户;需要在界面里统一搜技能、管连接器、复制专家开场词或定时任务模板的工作流场景。
限制(资料原文):专家页「召唤」是复制开场提示词,不做运行时人设注入;要换人设需在 DSH「设置 → 智能体预设」切换。工具 schema 要求 object 显式声明 additionalProperties,改 schema 后应先跑 validate-tools.mjs 再重启。
安全提醒:插件以当前 DSH 进程权限运行,安装前请阅读 GitHub 仓库 源码与 MIT 许可证,确认 install.mjs、cordis.patch.yml 等变更符合你的环境策略。不要在不信任的来源上直接执行安装脚本。
结尾¶
dsh-capability-pack 把 DSH 上的技能与 MCP 从「启动即全量」改为检索与按需加载,并用 doctor、安全模式与启动计数降低配置错误拖垮界面的概率;工作台把专家、技能、连接器等收进同一入口。