dsh-skill-manager
Skill manager for DeepSeek Harness (DSH): settings-page panel to enable/disable skills; disabled skills are never discovered by agents at runtime.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 18, 2026
Introduction
dsh-skill-manager
DeepSeek Harness(DSH)的 Skill 管理插件:在 Web GUI 设置页启停 Skill,停用的 Skill 在 Agent 运行时不会被发现。
English · English README
适用于 DSH 0.1.0-rc.7 及以上的 bundle 插件模型(dsh.profile.bundles + dsh.bundle.patch)。
功能
- 设置页管理面板:设置(Settings)→「Skill 管理」,列出全部 Skill(名称 / 描述 / 来源 / 仅用户调用标记),支持搜索与「全部 / 已启用 / 已停用」筛选,一键开关
- 批量操作:工具栏「全部启用 / 全部停用」一键批量处理(停用全部需确认)
- 插件配置卡片:设置 → 插件 →「插件配置」出现 dsh-skill-manager 卡片,实时显示启停统计与状态文件路径(服务端注册 settings 命名空间,rc.7+ keyed 分发)
- 运行时过滤:停用的 Skill 对 Agent 完全不可见——目录注入(
<available_skills>)、skill工具调用、用户/name直接引用全部拦截,对所有 Agent 及子 Agent 全局生效 - headless 兼容:过滤是硬依赖(
skills),webServer/agents 可选等待——无 Web GUI 的 headless profile 同样生效 - 目录自动更新:已打开的会话会在下一步自动发布"目录已更新"替换消息,无需新开会话
- 全量可见可恢复:停用只影响 Agent 运行时发现;管理列表始终显示全部 Skill,随时可重新启用
- 持久化:禁用名单存于
<harness home>/skill-manager.json(默认~/.dsh/skill-manager.json),重启后依然生效;已消失的 Skill 名会在下次列表加载时自动清理 - 零构建:单文件插件(ESM host + ModuleLoader client),无编译步骤;
dsh.client声明随包自动加载客户端
安装
将下面的提示词复制给你的 AI 助手(Agent),它会按照 AGENT.md 完成安装:
请阅读仓库根目录的 AGENT.md 文档,按照其中的步骤,在当前 DSH profile 中完成 dsh-skill-manager 插件的安装、挂载与验证。
或手动安装:
# 1) 安装插件包(bundle:自动进入 dsh.profile.bundles,无需手工编辑 patch)
dsh plugin --profile web add dsh-skill-manager # npm 已发布时
dsh plugin --profile web add github:welsione/dsh-skill-manager # 直接从 GitHub 装
# 固定版本(推荐,避免 main 演进漂移):
# dsh plugin --profile web add github:welsione/dsh-skill-manager#v1.2.0
# 未 push 的本地开发:用 file: 前缀(实体化安装,依赖可解析);
# 裸路径会退化为 link: 软链,ESM 依赖解析会失败。
# 2) 重启 dsh 进程(bundle 补丁层启动时加载),刷新 Web 页面
git 依赖须知:
github:…安装的是 GitHub 上已提交的代码——本仓库的 v1.1.0+(bundle 声明)提交并git push之后才能用这种方式装到可用版本; 装到 1.0.0 旧包只会得到 "declares no dsh.bundle" 警告且不生效。 pnpm 会把 git 依赖实体化为 profile 内的真实目录,并按 package.json 安装 其dependencies(@deepseek-ai/dsh-home-paths、schemastery),@deepseek-ai/dsh-settings为 peer 依赖,由 DSH 安装的扁平兜底目录提供。
注意:
dsh plugin add会校验dsh.bundle声明并自动把包加入 profile 的dsh.profile.bundles层——不要再往 profile 的cordis.patch.yml里手动添加本插件的 insert 行(会与 bundle 层重复挂载)。
架构
| 文件 | 职责 |
|---|---|
cordis.patch.yml | bundle 补丁层:dsh.bundle.patch 指向它,boot 时自动挂载 host 插件行 |
lib/index.js | Host half(ESM):包装 skills 注册表的 list/snapshot/get 过滤(skills 硬依赖 + webServer/agents 可选等待);注册 HTTP API GET /api/skill-manager/list、POST /api/skill-manager/set(支持单/批量);settings 命名空间注册;禁用名单持久化 |
lib/client.js | Client half:window.__ModuleLoader__.load 注册设置页「Skill 管理」与「插件配置」卡片;把设置页导航的齿轮回退图标替换为书本图标 |
package.json | dsh.bundle.patch + dsh.client 声明(bundle + 客户端随包加载);ESM;@deepseek-ai/dsh-settings peer 依赖 |
验证
# 服务端路由
curl -s http://127.0.0.1:3080/api/skill-manager/list | python3 -m json.tool
# 期望 ok:true、skills 为全量列表、disabled 为停用名单、debug.wrapActive 为 true
# 客户端 bundle(刷新页面后生效)
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3080/plugins/dsh-skill-manager/client.js # 期望 200
# 启停与批量
curl -s -X POST http://127.0.0.1:3080/api/skill-manager/set \
-H 'content-type: application/json' -d '{"name":"mmx-cli","enabled":false}' | python3 -m json.tool
curl -s -X POST http://127.0.0.1:3080/api/skill-manager/set \
-H 'content-type: application/json' -d '{"names":["a","b"],"enabled":true}' | python3 -m json.tool
# 启动日志
cat /tmp/dsh-skill-manager-apply.log # 期望 apply(skills=true webServer=true agents=true ...)
# 单元测试(CI 同款,无需 DSH 进程)
npm install && npm test # 期望 ALL PASS(14 项宿主逻辑检查)
卸载
dsh plugin --profile web remove dsh-skill-manager(从依赖与dsh.profile.bundles移除)- 重启 dsh;
skill-manager.json保留,重新安装后沿用禁用名单
生态与收录
本仓库已满足以下插件目录的收录条件:
- 可安装性:
package.json声明dsh.bundle.patch(指向cordis.patch.yml)+dsh.client——dsh plugin add可安装、bundle 层自动挂载 - 真实可用代码:
lib/双半实现 +test/host.test.mjs(14 项宿主逻辑测试,CI 全矩阵运行) - 活跃维护:仓库 ≥1 天、持续提交,CI(语法 + bundle 声明 + 测试 + pack 校验)与
npm-publish.yml自动发布
GitHub 侧待办(仓库所有者在 GitHub 上操作,代码侧已就绪):
-
推送代码:
git push origin main && git tag v1.2.0 && git push origin v1.2.0 -
添加 topic:仓库 → About → Topics 加
dsh-plugin——awesome-dsh-plugins 雷达每 6 小时扫描该 topic,自动收录并实机验证(无需 PR) -
登记 awesome 列表(可选):在 awesome-dsh-plugin 按 contributing.md 提 PR,新增一个文件
data/plugins/welsione__dsh-skill-manager.yml:url: https://github.com/welsione/dsh-skill-manager # 必须与仓库完全一致 name: welsione/dsh-skill-manager category: skill # 管理技能启停 → skill 类 description: en: Enable or disable skills from the Web GUI settings page; disabled skills are hidden from every agent runtime discovery path. zh: 在 Web GUI 设置页启停 Skill;停用的 Skill 对 Agent 运行时不可见。
收录不等于可用:两个目录都以自动/人工实测为准;本插件的自测请在「验证」一节自行复核。
相关
DeepSeek Harness · dsh-mmx-bridge · awesome-dsh-plugin · awesome-dsh-plugins 雷达