docs/technical/agent-skills.md
Last updated: 2026-02
本文档整理 feat/skills 分支合并后的技能系统技术方案,并归档历史设计中的关键决策、实现约束和后续演进方向。
Agent Skills 的核心目标是以低耦合方式扩展模型能力:
SKILL.md 格式发现和解析技能skills.enabledSkillNames)控制技能启用范围| 层次 | 位置 | 职责 |
|---|---|---|
| Main 进程技能层 | src/main/skills/ | 发现技能目录、解析 SKILL.md、注册技能 IPC |
| Shared 类型层 | src/shared/types/skills.ts | 技能元数据与配置 Schema |
| Renderer 控制层 | src/renderer/packages/skills/controller.ts | 对 IPC 提供类型化封装 |
| 会话工具构建层 | src/renderer/stores/session/tools-builder.ts | 在系统指令中拼装技能列表(markdown)与 load_skill 工具 |
| UI 层 | Settings | 全局启用/禁用技能 |
全局技能开关与启用列表由设置存储管理(SkillSettingsSchema),使用版本迁移保证向后兼容。
enabledSkillNames: 启用的技能名列表(内置与用户技能共用同一列表)translationEnabled: 技能翻译功能开关builtinDefaultsInitialized / appliedDefaultBuiltinSkillNames: 内置技能默认启用的一次性初始化标记历史设计中曾规划会话级 enabledSkillNames?: string[] 覆盖全局配置,当前代码未实现——工具构建只读全局 skills.enabledSkillNames。
skills/ 子目录。SKILL.md。name、description 等元数据。buildToolsForSession() 中执行以下动作(仅在 agent mode 开启且模型支持 agent 工具时):
skills.enabledSkillNames)。instructions 中注入 markdown 格式的技能列表(### Available Skills 小节)。load_skill 工具(按名称加载技能正文),并注册 user_exec / install_skill 等配套工具。该设计遵循“渐进披露(progressive disclosure)”原则。
当前已归档的技能 IPC 能力包括:
skills:discoverskills:loadskills:get-directoryskills:open-directoryskills:execute-scriptSKILL.md)load_skill + 系统指令内技能列表(markdown)模式归档记录中的关键边界处理要点:
SKILL.md 解析失败时跳过,不中断主流程以下项已整理为后续技术方向:
source.json 安装清单上述内容在合并分支中作为 roadmap 保留,不在本次“已合并能力”范围内默认承诺。