dsh-skills-tools:DSH 的 Skills 管理器

前言

在 DeepSeek Harness 里做 Agent Skills 协同时,常见的问题在于技能靠手工维护:从 Git 仓库拉下来、放进某个目录、改配置注册、不再使用时又得手动摘除。技能数量涨起来之后,启停、更新、查看内容都变成重复操作,而且停用后是否真的从模型上下文里移除,往往并不直观。

dsh-skills-tools 就是针对这个环节的插件。它由 hxlog 维护,定位是 DeepSeek Harness 的 Skills 管理器:从 Git 仓库或本机目录导入 Agent Skills,按仓库分组管理,随时启用、停用、补齐和查看内容。它属于社区目录中「工作流」分类下的插件,与 DeepSeek / 幻方无官方从属关系。

适合谁

已经在使用 DSH、希望把技能的来源、启用状态和更新管起来的人。如果你的技能只有一两个、且长期不变,动手装插件的收益不大;如果技能来自多个仓库、需要频繁启停或跟随上游更新,这个插件能减少重复操作。

核心能力

下面按功能逐项说明。

  • 按仓库分组:技能按来源仓库聚合成可折叠的仓库卡片;有启用技能的仓库优先排列,仓库内已启用的技能优先。
  • 部分导入补齐:只导入了部分技能的仓库会显示「可导入 N 个」,点「导入更多」即可从现有快照里勾选剩余技能,不需要重新克隆。
  • 仓库级开关:一键启用或停用整个仓库;部分启用时开关显示半选状态。
  • 展开查看内容:行右侧箭头可以展开 SKILL.md 正文、来源仓库、提交、路径与更新时间,也可以就地更新或移除。
  • Git 导入与快照:支持 https / ssh / 内网仓库、分支 / 标签 / 提交与子目录;导入的是只读快照,原目录和远端不会被修改。
  • monorepo 子目录:粘贴 /tree/<ref>/<subdir> 形式的大仓库地址即可导入子目录技能,只拉取目标子目录,无需下载整仓。
  • 检查更新:对比上游最新提交,确认后再切换快照;多个仓库可以一次检查。
  • 全局折叠:顶部一键全部展开 / 全部折叠;首次打开默认折叠,折叠状态记在本机,刷新后保持不变。
  • 自动检查更新:打开设置页自动检查一次,页面可见时每 30 分钟复查;发现新提交时顶部横幅提示,可「全部更新」或逐个更新。
  • 最近操作弹窗:工具栏打开独立弹窗,按时间倒序列出启用、停用、导入、更新与失败记录,可刷新、复制;重启后仍保留最近 300 条。

README 中有一句明确说明:停用的技能不会注册进模型,既不占上下文,也无法被误调用。这是该插件区别于「仅隐藏 UI 条目」的做法。

安装与启用

环境要求是 DeepSeek Harness 0.2.x(Web GUI dsh web 或 DSH Desktop),以及 Node.js ≥ 22.13。包发布在 npm,名字是 dsh-skills-tools,当前版本 1.3.0。

需要注意的是,这是 DeepSeek Harness 插件,不是普通 npm 依赖库。npm i dsh-skills-tools 只会下载包,运行时仍需装进 DSH profile。

通过插件页安装(推荐):

  1. 打开 DSH Web(或 DSH Desktop)→ 侧边栏「插件」(Desktop 在「设置 → 插件」)。
  2. 点安装,填入 dsh-skills-tools,确认。
  3. 启用新 bundle,刷新页面,打开「设置 → 技能」。

通过命令行安装:

dsh plugin add dsh-skills-tools                    # 默认 profile
dsh plugin --profile web add dsh-skills-tools      # Web
dsh plugin --profile desktop add dsh-skills-tools  # Desktop

装完后有一点容易忽略:dsh plugin add 只负责把包装进 profile,不会自动启用 bundle。需要到插件页启用一次,或确认 profile 的 dsh.profile.bundles 已包含 dsh-skills-tools。

典型用法

导入并管理技能的过程如下。

  1. 打开「设置 → 技能 → 导入技能」,粘贴 Git 地址。支持 https://、git@、file:// 与本机绝对路径;内网仓库直接使用本机 git 凭据。
  2. 可选填分支 / 标签 / 提交与子目录,点「扫描」。勾选要安装的技能,重名项会给出可修改的建议名称,点「安装选中」。安装即启用。
  3. 回到列表按仓库管理:仓库开关批量启停,行开关控制单个技能,「导入更多」补齐同仓库剩余技能,点右侧箭头查看正文。

数据放在插件数据目录里:

~/.dsh/dsh-skills-tools/
├── state.json                 仓库、技能、启用状态与检查时间
└── repos/<仓库>-<提交>/        只读快照

每次导入或更新把仓库复制到该目录,删除技能只删状态,不影响仓库与快照。启用状态决定技能是否注册进 DSH 技能目录;停用即从模型上下文移除。

对外提供 REST 接口,便于脚本化操作:

GET  /skills-tools/api/state
POST /import/scan
POST /import/commit
POST /repos/inspect
POST /repos/import
POST /repos/toggle
POST /repos/check-updates
POST /skills/toggle
POST /skills/bulk
POST /skills/remove
POST /skills/update
POST /refresh
GET  /logs

接口细节见仓库中的 docs/API.md。

权限边界与注意事项

安全方面,插件不保存令牌,Git 认证交给本机 credential helper 或 SSH key,插件只调用 git;导入与更新都写入数据目录,原仓库目录与远端不会被修改;除填写的仓库地址外不发起网络请求。

权限范围如下:

  • 文件访问:读写插件数据目录 ~/.dsh/dsh-skills-tools/;导入本机目录时只读取该目录。
  • 网络:仅在导入、检查更新时访问填写的 Git 仓库。
  • 进程:导入 / 检查更新时调用本机 git。
  • UI 注入:设置页「设置 → 技能」面板,依赖 @deepseek-ai/dsh-client-ui-settings 与 @deepseek-ai/dsh-client-locale。

已知限制:

  • 只管理当前 DSH profile 的技能,切换 profile 需重新导入。
  • Git 来源需要本机安装 git;内网仓库需要事先配置好凭据。
  • 技能内容预览最多 64 KiB,超出部分以省略号截断。

这几个限制在装之前值得先对照自身环境,尤其是内网仓库的凭据是否已经就绪。

关于安装来源

该插件以当前 dsh 进程权限运行,能够读写插件数据目录、调用本机 git。安装前建议先打开仓库源码和 LICENSE(MIT)确认无异味,再决定是否启用。需要留意的是,它运行在你自己的工作进程里,属于第三方社区插件,不是 DSH 官方维护的组件。

小结

dsh-skills-tools 把技能的导入、分组、启停、更新和查看收进了一个设置面板,替代的是手工挪目录、改配置这一串动作。价值集中在多仓库、多技能、需要频繁调整的场景;技能少且稳定时,收益相对有限。

  • 社区目录页:https://www.skillhub.cn/plugins/hxlog/dsh-skills-tools
  • GitHub:https://github.com/hxlog/dsh-skills-tools
羽毛球分组比赛记分
小程序二维码

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

小夜