问题描述
当 skillEvolution.autoInstall: false 时,技能仍会自动安装到 workspace/skills/。
原因是 evolver.ts 的 autoInstallIfNeeded 方法有两个自动安装路径:
typescript
private autoInstallIfNeeded(skill: Skill): void {
if (skill.status !== "active") return;
const explicitAutoInstall = this.ctx.config.skillEvolution?.autoInstall ?? DEFAULTS.skillAutoInstall;
if (explicitAutoInstall) {
this.installer.install(skill.id); // 第一个路径,受 autoInstall 控制
return;
}
const manifest = SkillInstaller.buildManifest(skill.dirPath, !!skill.installed, skill.name);
if (manifest.installMode === "install_recommended") {
this.installer.install(skill.id); // 第二个路径,不受 autoInstall 控制!
}
}
期望行为
autoInstall: false 应该禁止所有自动安装,包括 install_recommended 路径。
当前配置
json
"skillEvolution": {
"enabled": true,
"autoInstall": false
}
环境
- memos-local-openclaw-plugin v1.0.7
- OpenClaw 2026.3.28
问题描述
当
skillEvolution.autoInstall: false时,技能仍会自动安装到workspace/skills/。原因是
evolver.ts的autoInstallIfNeeded方法有两个自动安装路径:typescript
private autoInstallIfNeeded(skill: Skill): void {
if (skill.status !== "active") return;
const explicitAutoInstall = this.ctx.config.skillEvolution?.autoInstall ?? DEFAULTS.skillAutoInstall;
if (explicitAutoInstall) {
this.installer.install(skill.id); // 第一个路径,受 autoInstall 控制
return;
}
const manifest = SkillInstaller.buildManifest(skill.dirPath, !!skill.installed, skill.name);
if (manifest.installMode === "install_recommended") {
this.installer.install(skill.id); // 第二个路径,不受 autoInstall 控制!
}
}
期望行为
autoInstall: false应该禁止所有自动安装,包括install_recommended路径。当前配置
json
"skillEvolution": {
"enabled": true,
"autoInstall": false
}
环境