-
Notifications
You must be signed in to change notification settings - Fork 109
[Feature Request] enabledSkills 支持白名单模式 / default-off 选项 #178
Description
当前 enabledSkills 的设计是纯黑名单模式:未配置的 Skill 默认启用,只能通过设 false 逐个关闭。每次 CLI
启动时,所有扫描路径((削除) /.deepcode/skills/、 (削除ここまで)/.agents/skills/、./.deepcode/skills/、./.agents/skills/ 以及内置
Bundled Skill)下的 Skill 会全部注入到系统提示中。
这带来两个问题:
-
上下文臃肿:用户可能安装了多个 Skill(比如通过 npx skills add 安装了 8~10
个),但当前任务只用得到其中一两个。其余 Skill 的 SKILL.md 仍然会占用大量 token,浪费上下文窗口和推理成本。 -
无法精确控制:用户如果想让「只有我明确开启的 Skill 才加载」,目前无法做到。只能逐个关闭,且以后每新增一个 Skill
又会被自动注入,需要再去关一次。
期望行为
希望能有一个白名单模式,例如新增一个顶层配置项:
[json]
{
"defaultSkillsEnabled": false,
"enabledSkills": {
"solidworks-cad": true,
"solidworks-automation": true
}
}
- defaultSkillsEnabled 默认值为 true(保持向后兼容)。
- 当设为 false 时,只有 enabledSkills 中显式设为 true 的 Skill 才会被加载。
- 未在 enabledSkills 中出现的 Skill 视为禁用。
替代方案
如果不想新增独立字段,也可以让 enabledSkills 支持一个特殊键 "*" 来控制默认行为:
[json]
{
"enabledSkills": {
"*": false,
"solidworks-cad": true
}
}
使用场景
用户在 ~/.agents/skills/ 下通过 npx skills add 安装了多个跨项目 Skill(如 code-review、find-skills、ida-pro-mcp
等),但在特定项目或会话中只需要其中少数几个,希望其余 Skill 完全不参与上下文注入。