返回目录
其他 待识别

dsh-skill-manager

Mvyvn/dsh-skill-manager

为 DSH 打造的技能管理器插件:扫描/一键导入技能、分组启停、默认组与全部禁用、会话级选择器、全中文 UI,AI 可经 skillmg_* 工具自主管理。A DSH skill-manager plugin: scan & one-click import skills, group enable/disable via atomic SKILL.md rename, default group & all-off mode, per-session picker, all-Chinese UI, and AI self-service via skillmg_* tools.

Stars
2
Forks
0
Issues
0
更新
15 天前

PROJECT TOPICS

项目标签

PROJECT README

README

DSH Skill Manager

为 DSH 打造的技能管理器插件,随 dsh web 启动自动加载(无需审批)。

  • 扫描 / 导入 / 上传:列出来源目录(~/.agents/skills、$DSH_HOME/skills)的全部技能,一键复制进 $DSH_HOME/skills,或浏览器上传 .zip / 文件夹
  • 分组启停:建组、加技能、组内停用;停用即把 SKILL.md 原子改名为 SKILL.md.disable(零内容写入、并发安全)
  • 默认组:控制所有会话的模型技能目录;保留 id __all_off__ = 全部禁用
  • 会话级选择器:聊天输入栏左侧下拉,为当前会话单独指定分组
  • 全中文 UI,官方 DSH 主题 token;skillmg_* 模型工具让 AI 可自主完成全部管理

截图

技能导入 分组管理 会话级选择器
ui-import ui-groups ui-picker

安装

前置条件:已启动过一次 dsh web(需已生成 web profile)。

# Windows
git clone https://github.com/Mvyvn/dsh-skill-manager.git
cd dsh-skill-manager
powershell -ExecutionPolicy Bypass -File scripts/install.ps1
# macOS / Linux
git clone https://github.com/Mvyvn/dsh-skill-manager.git
cd dsh-skill-manager
bash scripts/install.sh

脚本把插件装入 $DSH_HOME/profiles/web/node_modules/dsh-skill-manager/($DSH_HOME 默认 ~/.dsh),然后完全重启 dsh web(结束进程重开,不是刷新页面)。也可手动复制 lib/、cordis.patch.yml、package.json 到同目录。

验证:设置里出现「Skill 管理」侧栏;聊天输入栏左侧出现「技能组:」下拉。

快速上手

  1. 设置 → Skill 管理 → 技能导入:勾选技能,点「导入所选」;
  2. 切到 分组管理:新建分组,把技能加入;
  3. 点「设为默认」→ 所有会话的技能目录立即切换为该分组;
  4. 想让 AI 自己管?直接对它说「把 xxx 技能分到 xxx 组」即可。

⚠️ 技能可见性:两套引擎(skill-only 预设已非必需)

插件控制"模型能看到哪些技能"有两套引擎,启动时自动选择(skillmg_get_config 的 engine 字段可查):

引擎 何时使用 行为
scope(新,推荐) DSH ≥ 0.1.7 且按会话分层可用(启动时自动探测) 在每个会话自己的注册表层里隐藏/放行技能:选组只影响这一个会话、下一步生效、完全不动磁盘;两个会话可同时使用不同分组
rename(旧,自动回退) 探测失败,或配置 engine: "rename" 原子改名 SKILL.md ⇄ SKILL.md.disable 控制可见性:全局生效,切组会重排磁盘

scope 引擎下磁盘必须保留可发现的 SKILL.md(引擎需要先从官方 provider 取到真实定义才能遮蔽它), 因此首次启用会把历史 .disable 文件改回来一次,此后切组不再触碰磁盘。

旧引擎仍需要 skill-only 预设:DSH 默认从多个根合并加载技能(~/.agents/skills、项目根、bundled),改名只作用于导入目标那一份,其他根里同名技能照样能被发现。需要 multi-root 兼容时运行:

node scripts/apply-skill-only-preset.mjs             # 追加 skill-only 预设,并设为默认
node scripts/apply-skill-only-preset.mjs --refresh   # DSH 升级后重新对齐官方插件表
bash scripts/install.sh                              # 或 install.ps1:装完会提示这一步

脚本从你本机已安装的 @deepseek-ai/dsh-web-app/presets/standard.patch.yml 复制完整能力表,只把 skill-filesystem 改成单一根(includeDefaultRoots: false + customSkillDirs: [导入目标]),因此 DSH 升级后不会和官方预设漂移;写前自动备份该 profile 的 cordis.patch.yml。之后完全重启 dsh web。原理见 docs/how-it-works.md。

DSH 版本差异:0.1.7 起,预设是 profile 组合里的声明式行(@deepseek-ai/dsh-agent-preset),默认值来自 agent-preset-registry 行的 config.default;0.1.6 及更早则是 $DSH_HOME/.agent-presets/<id>/ 目录 + settings.yaml 的 agent-presets.default。旧目录形式在 0.1.7 已被完全移除(settings.yaml 也只剩 settings.yaml.imported),继续留在那里会让会话恢复直接失败:Unknown agent preset: <id> (gateway/internal)。

配置

全部保存在 $DSH_HOME/skill-mgmt.json(写入受跨进程锁保护):

字段 说明
sourceDirs 技能来源目录,默认 ~/.agents/skills、$DSH_HOME/skills
importTarget 导入目标,默认 $DSH_HOME/skills
groups 分组数组:{id, name, skills: [{name, enabled}]}
defaultGroup 默认分组 id;null = 全部启用;__all_off__ = 全部禁用
perSessionGroups 会话级分组;scope 引擎下每个会话独立生效,rename 引擎下仅记录
disabled 禁用清单(rename 引擎的磁盘状态;scope 引擎下为空)
engine "auto"(默认,自动探测)/ "scope" / "rename"
scopeNormalized scope 引擎是否已完成"把 .disable 改回来"的一次性迁移

AI 自主管理(skillmg_* 工具)

工具 作用
skillmg_get_config / skillmg_scan 查看配置、列出技能
skillmg_import 导入技能(overwrite 可覆盖)
skillmg_create_group / skillmg_update_group / skillmg_delete_group 分组管理
skillmg_set_default_group 设置默认组(空串=全部启用,__all_off__=全部禁用)
skillmg_set_session_group / skillmg_get_session 会话级分组覆盖
skillmg_debug_catalog 运行时技能目录快照(诊断)

项目结构

dsh-skill-manager/
├── lib/          # 宿主端 index.js + 浏览器端 client.js
├── presets/      # 预设格式说明(0.1.7 起由 scripts/apply-skill-only-preset.mjs 生成)
├── skills/       # 自动维护的 companion 技能 skill-grouping
├── scripts/      # 安装脚本 + apply-skill-only-preset.mjs(写入 skill-only 预设)
├── docs/         # 架构、原理、上手文档
├── screenshots/
├── cordis.patch.yml
└── package.json

工作机制与限制

  • 停用 = SKILL.md 原子改名 SKILL.md.disable,技能从模型目录消失;启用 = 改回。依赖 DSH(rc 系列)「只识别精确文件名 SKILL.md」的语义;若官方改变此规则需回退 disable-model-invocation 字段方案(代码已兼容并会清理旧标记)。
  • 多根加载会绕过分组启停——按上文用 scripts/apply-skill-only-preset.mjs 启用 skill-only 预设即可解决。
  • DSH 0.1.7+:skillmg_* 工具的返回值会按声明的输出 schema 校验(声明为 { type: 'json' });0.1.6 及更早不校验,因此本插件同时兼容两个分支。
  • 会话级覆盖(perSessionGroups)当前仅记录,模型目录仍由默认组决定。
  • 主要在 Windows 开发测试;macOS/Linux 路径使用 ~ 与 $DSH_HOME 语义,欢迎反馈。
  • 浏览器上传仅支持文本文件(SKILL.md 场景),单文件 ≤ 2MB,总内容 ≤ 16MB。

许可证

MIT © 2026 沐云 (Mvyvn)

CLASSIFICATION EVIDENCE

分类依据

项目类型待识别
功能分类其他
规则置信度低

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。