dsh-capability-pack:DSH 能力中心与懒加载工作台

前言

在 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、安全模式与启动计数降低配置错误拖垮界面的概率;工作台把专家、技能、连接器等收进同一入口。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜