dsh-capability-pack

DSH PLUGIN模型与账号接入

仓库 glentao-dev/dsh-capability-pack

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-capability-pack 是 glentao-dev 维护的 模型与账号接入 类 DSH 可安装插件, 仓库为 glentao-dev/dsh-capability-pack,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-capability-pack 是模型与账号接入类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-24 创建于 2026-10-24
README 14.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:glentao-dev/dsh-capability-pack#v1.3.0
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

智能体编排

上游标签

cordis-plugindeepseek-harnessdsh-pluginmcpskillsworkbuddy

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-capability-pack当前 L5 · 运行验证通过 低风险 0 未标注 有
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方glentao-dev仓库 dsh-capability-pack · 默认分支 main
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-24 · 2026-10-24最后推送 2026-10-24
本站收录2026-10-30首次进入本站目录的时间

README 全文

14.7 KB
作者原文,中文版优先;只做安全转义,不改内容

DSH 能力中心(dsh-capability-pack)

把 DSH 的技能和 MCP 连接器从「启动即预载」改成「提问时检索、需要时加载」,
并给启动过程加一层防崩溃守卫。装完可以直接打包带走,在别的 DSH 上用同一条命令安装。


1. 它解决什么问题

现状 后果 本包的做法
技能目录只发现顶层 SKILL.md,市场里几千个技能要么全装、要么看不见 全装 → catalog 撑爆上下文;不装 → 明明有却用不上 索引全部技能(名字+描述),按任务检索,命中后才把那个目录装进顶层
dsh-mcp-client 在插件激活时连服务器并注册全部工具 一个 150 工具的服务器约 13 万 token,小窗口模型首轮就 400 改成 mcp 工具按需连接:不调用 = 0 进程、0 schema、0 token
插件行解析不到包 / 语法错 / 重复 id 启动报错甚至界面起不来 doctor 静态体检 + 一键隔离;连续 2 次启动未完成自动落安全模式标记
功能重复:三套 Python MCP 原型 + 聚合器 改一处要改三处 合并成一个零依赖 servers/dsh-fs-mcp.mjs + 懒加载桥

实测数字(本机 2026-10-24)

  • 索引:3439 个技能,已加载 50,可按需加载 3389;
  • 工具 schema 常驻开销:2 个工具 / 1434 字符 / 约 600 tokens(合并前 8 个工具约 1600 tokens);
  • 未调用任何连接器时,MCP 进程数 0;
  • 索引构建 1.5 – 4 秒,之后界面读取为毫秒级(磁盘索引 + 内存缓存)。

2. 安装

从 GitHub 安装(推荐给别的机器)

git clone https://github.com/glentao-dev/dsh-capability-pack.git
cd dsh-capability-pack
node tools/install.mjs --profile desktop

安装脚本会:先导入本机 WorkBuddy 目录(有的话)→ 复制包体 → 登记
dsh.profile.bundles → 更新 pnpm-lock.yaml(DSH 只认 lockfile 里的模块映射,
漏了这步插件会被静默跳过)→ 重建索引 → 跑一次启动体检。装完重启 DSH。

从压缩包安装(另一台机器没有 git 时)

# 解压后进入 dsh-capability-pack/
node tools/install.mjs --profile desktop

--profile 省略时读环境变量 DSH_PROFILE,再退回 desktop。
脚本会:复制包到 /vendor/ 与 node_modules/ → 在 package.json 登记依赖与 dsh.profile.bundles → 追加一行 Loader 入口 → 重建索引 → 跑体检。幂等,重复执行安全。

装完重启 DSH。

通过 DSH 插件管理器(git 源)

plugin_manager  action=install_bundle
target=github:glentao-dev/dsh-capability-pack

pnpm 支持 git spec,装完同样需要重启。npm 包发布后也可以直接用
dsh-capability-pack@。

从本工作区直接安装(开发时)

node dsh-capability-pack/tools/install.mjs --profile desktop

卸载

node tools/uninstall.mjs --profile desktop       # 保留状态与已装载技能
node tools/uninstall.mjs --profile desktop --keep-state

3. 怎么用

3.1 模型侧:两个工具

capability  action=search|load|unload|report|health
mcp         action=list|tools|call

典型链路:

capability action=search query="pptx 生成"
→ - [skill] ppt-implement:智能 PPT 生成助手…  → capability action=load name=ppt-implement
capability action=load name=ppt-implement
→ 已加载 …/skills/ppt-implement(返回 SKILL.md 开头 30 行)
skill      name=ppt-implement          # 用 DSH 原生 skill 工具真正读全文并执行

mcp action=list                        # 看有哪些连接器(不启动进程)
mcp action=tools server=fs             # 首次调用才 spawn,列出工具名/必填参数
mcp action=call server=fs tool=fs_read arguments={"path":"README.md"}

设计原则:检索结果永远给出下一步动作,模型不需要猜。

3.2 界面侧:工作台(六页)

输入框上方出现「工作台 已加载/总数」按钮,点开是:

页 内容 数据来源
首页 「DSH,我帮你」+ 办公/开发/设计三档场景 + 8 张提示词卡片,点一下复制到剪贴板 内置文案
专家 从本机 WorkBuddy 导入的 448 位专家 / 15 个分类:分类卡片 + 筛选 + 搜索,点「召唤」复制该专家的开场提示词;下方同时列出 DSH 智能体预设 /capability-pack/experts + index.json presets
技能 搜索 + 列表;未加载点「加载」,本插件装的点「卸载」 index.json skills
连接器 MCP 注册表,可「启用/停用」(停用会立刻回收进程) index.json mcp
定时 6 张定时任务模板,点一下复制「帮我创建定时任务…」指令 内置文案 + 模型 schedule_create
资料 只读浏览工作区:目录树 + 文本预览(≤200KB) /capability-pack/files、/file

数据走 GET /capability-pack/index.json,动作走 POST /capability-pack/action。
整个面板包在 ErrorBoundary 里:即使渲染抛错也只会让按钮消失,不会白屏。

3.3 CLI

node tools/build-index.mjs [--workspace DIR] [--quiet]      # 重建索引
node tools/doctor.mjs check [--profile p] [--json] [--fix]   # 启动体检;--fix 隔离坏行
node tools/doctor.mjs safe-mode on|off|status                # 安全模式
node tools/verify-live.mjs [--wait 60]                       # 重启后确认插件真的生效
node tools/import-workbuddy.mjs                              # 导入本机 WorkBuddy 的专家/技能目录
node tools/validate-tools.mjs                                # 工具 schema 预检(错一条插件就起不来)
node tools/audit-tools.mjs [--json]                          # 谁在占工具列表 / 哪些功能重叠
node tools/install.mjs / uninstall.mjs / pack.mjs

重启后先跑这一条,比翻日志快:

$ node tools/verify-live.mjs
[1] HTTP 路由      ok 路由可达(HTTP 200)
[2] 索引数据       ok 索引非空 · 技能 3439 · 已加载 50
[3] 启动守卫       ok 上次启动已标记为成功
[4] 安装登记       ok 依赖 / bundles / Loader 行 / node_modules 齐全
结论:能力中心已生效。

4. 启动防崩溃

三件事配合:

  1. doctor 静态体检:解析 profile 与 home 两层 cordis.patch.yml,对每个生效的插件行做
    包解析 → 入口存在性 → ESM/CJS 语法检查(复制成 .mjs 再 node --check,避免 .js 被当 CJS 误报),
    并检查 serverName 重复。--fix 把有问题的行追加 disabled: true(带备份 + 隔离清单)。
  2. 安全模式:doctor safe-mode on 写 ~/.dsh/state/capability-pack/safe-mode.flag;
    Loader 行里 disabled: !!js "process.env.DSH_SAFE_MODE === '1'" 会整行跳过。
    bin/dsh-safe.cmd(或 bin/dsh-safe.ps1)检测到标记就设 DSH_SAFE_MODE=1 再启动 —— 界面一定能起来。
  3. 崩溃计数:插件 apply 时写 boot.json(本次启动时间),30 秒后仍存活即写 lastCleanAt。
    下次若发现「上次启动没有正常结束」,crashCount++;连续 2 次就自动写安全模式标记。

本机第一次跑 doctor check 就抓到两行真实坏配置(dsh-vision-router、@michengai/dsh-agency-agents
在 profile 里没有安装),已隔离并记录到 ~/.dsh/state/capability-pack/quarantine.json。


4.5 数据从哪来:本机 WorkBuddy

能力中心的「专家」和一部分「技能」不是编的,是从本机已装的 WorkBuddy 目录里读出来的(全程离线):

WorkBuddy 文件 内容 我们用在哪
~/.workbuddy/app/cache/experts/manifest.json 448 位专家、15 个分类、职业/标签/开场提示词 工作台 → 专家页
~/.workbuddy/.skill-list-cache.json 已装技能清单(名称/描述/SKILL.md 路径) 工作台 → 技能页(带 WB 标记)
~/.workbuddy/skills/**/SKILL.md 技能正文 capability action=load 复制进 DSH 技能根后即可被 skill 工具加载
node tools/import-workbuddy.mjs          # 生成 data/workbuddy-catalog.json(约 290 KB)
node tools/build-index.mjs               # 让技能索引包含 WB 技能

WorkBuddy 没装 / 没启动过时:脚本会输出「没读到专家清单」,其余功能照常。
专家头像在 WorkBuddy 里是远端资源,这里不热链,改用「首字母 + 分类色」的方块。

5. 目录结构

dsh-capability-pack/
├── index.js                 Host 插件:2 个工具 + 2 条路由 + 启动守卫
├── client.js                Client 插件:工作台六页面板(原生 React,无外部依赖)
├── cordis.patch.yml         bundle 的 Loader 行(带安全模式条件)
├── package.json             dsh.bundle.patch + dsh.client 声明
├── lib/
│   ├── paths.mjs            全部路径常量(DSH_HOME / 技能根 / 状态目录)
│   ├── indexer.mjs          扫技能根、解析 frontmatter、去重、检索打分
│   ├── skills.mjs           装载/卸载技能(带 ledger,拒绝删别人的技能)
│   └── mcp.mjs              懒加载 MCP 桥:stdio(含 Content-Length 帧)+ Streamable HTTP
├── servers/
│   └── dsh-fs-mcp.mjs       零依赖 MCP 文件服务器(合并了原来的三套 Python 原型)
├── tools/
│   ├── build-index.mjs      CLI 建索引
│   ├── doctor.mjs           启动体检 / 隔离 / 安全模式
│   ├── install.mjs          安装(幂等)
│   ├── uninstall.mjs        卸载
│   ├── verify-live.mjs      运行时自检(HTTP/索引/守卫/登记四层)
│   ├── import-workbuddy.mjs 导入本机 WorkBuddy 的 448 位专家 + 技能清单
│   ├── validate-tools.mjs   工具 schema 预检(additionalProperties 等硬规则)
│   ├── audit-tools.mjs      工具面审计:谁占了工具列表、哪些功能重叠
│   └── pack.mjs             打 zip(自带 ZIP 写入器,不依赖 7z/PowerShell)
├── data/mcp-servers.example.json
├── data/workbuddy-catalog.json   WorkBuddy 专家/技能目录(import 生成)
├── docs/protocol-spec.md    MCP 协议速查
├── docs/plugin-audit.md     工具面审计结论与整合建议(含可回滚命令)
├── bin/dsh-safe.cmd|ps1     安全模式启动器
├── locale/{zh,en}.json      插件标题/描述(插件管理器显示)
├── icon.svg
└── manifest.json            组件清单与安装效果说明

6. 数据文件(都在 ~/.dsh/state/capability-pack/)

文件 作用
index.json 能力索引(技能/预设/连接器 + counts)
index.tsv 同一份数据的制表符版,方便 rg
mcp-servers.json MCP 注册表(这是唯一需要手填的文件)
installed.json 本插件装载过的技能账本(卸载只认这个)
boot.json 启动守卫:尝试次数、连续未完成次数、最近正常时间
safe-mode.flag 安全模式标记(存在即跳过本插件)
quarantine.json doctor 隔离清单

7. 安全边界

  • 只删自己装的:unload 只处理 installed.json 里登记、且路径仍在技能根之内的目录;用户自己的技能一律拒绝。
  • MCP 服务器受根目录限制:dsh-fs-mcp.mjs 所有路径必须落在 DSH_FS_MCP_ROOT 内,越界直接报错(自检覆盖了这条)。
  • 技能名净化:safeSkillName 去掉路径分隔符与 ..,不会写到技能根之外。
  • 不改别人的配置:只追加自己的行;--fix 与安装都先写 .bak-* 备份。
  • HTTP 路由只读+白名单动作:install-skill / remove-skill / toggle-mcp / rebuild-index,无任意命令执行。

8. 已知限制

  • 专家只做「召唤」(复制开场提示词),不做运行时人设注入:DSH 的“专家”等价物是智能体预设,
    要真正换人设得在「设置 → 智能体预设」切换;把 WorkBuddy 的 448 个 agent 逐个改写成 DSH 预设不现实。
  • 工具 schema 有硬规则:每个 object 必须显式 additionalProperties,否则整块插件激活失败
    (实测踩过)。改完 schema 先跑 node tools/validate-tools.mjs 再重启。
  • 界面渲染未在真实会话里验证:本包是在同一台机上用假 ctx 跑通 Host 全部动作、并把 /capability-pack/* 路由处理跑通;Client 面板要重启 DSH 后由浏览器加载 client.js 才能看到。重启后若按钮不出现,先看 ~/.dsh/logs 里 capability-pack 的 slot 注册告警。
  • 索引构建 1.5–4 秒(3400+ 个 SKILL.md 读 frontmatter)。放在启动后 3 秒后台执行,不阻塞启动;界面读的是磁盘索引,所以不受影响。
  • MCP Streamable HTTP 只实现请求-响应,未处理服务器主动推送的 notification;stdio 是主路径。
  • 未做增量索引:新增技能后要么等下次启动后台重建,要么点界面右上角刷新(rebuild-index)或跑 CLI。
  • DSH 只按 pnpm-lock.yaml 建立模块映射:只写 file: 依赖而不更新 lockfile 的包会被静默跳过
    (表现:patch 里能看到行,但模块从未被 import,日志无提示)。tools/install.mjs 现在会自动跑一次
    pnpm install --prefer-offline --ignore-scripts 补 lockfile;跑不了时会打印手动命令。
    tools/verify-live.mjs 的 [3] 插件加载痕迹 就是用来抓这个坑的。
  • 依赖登记用 file::安装会往 profile package.json 写 "dsh-capability-pack": "file:./vendor/dsh-capability-pack"。
    正常情况这不会触发联网安装。若某台机器的 DSH 在启动时抱怨 profile 依赖不一致,把这一行删掉即可 ——
    node_modules/dsh-capability-pack 与 dsh.profile.bundles 里的名字仍然能让插件加载。

9. 排错

# 界面/工具没出现
node tools/doctor.mjs check --profile desktop
tail -50 ~/.dsh/logs/*.log | grep capability-pack

# 启动异常 → 安全模式起来再说
node tools/doctor.mjs safe-mode on
bin\dsh-safe.cmd

# 索引不对
node tools/build-index.mjs --workspace "C:\Users\<你>\Documents\deepseek-harness\default-workspace"

# 界面报 HTTP 404(路由没挂上)
Get-Content "$env:USERPROFILE/.dsh/state/capability-pack/routes.json"
#   {"registered":true,"reason":"ctx.inject"}  ← 正常
#   {"registered":false,"reason":"..."}        ← 原因就写在 reason 里

# 连接器连不上
mcp action=list includeTools=true     # 会尝试启动并回报工具数(0 = 起不来)

GitHub 上没有这个包的发布页;分发就是 node tools/pack.mjs 生成的 zip。

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-capability-pack 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:glentao-dev/dsh-capability-pack#v1.3.0` 即可。

dsh-capability-pack 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-capability-pack 安全吗?

低风险。

dsh-capability-pack 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-capability-pack 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

glentao-dev 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。