Skill 机制:作用域解析 → 发现 → 渐进式激活

Skill 机制:作用域解析 → 发现 → 渐进式激活 由 Archify 生成的架构图。 AgentRequest · selectedSkills 可指定 · 架构组件 AgentRequest selectedSkills 可指定 AgentSkillResolver · 宿主所有 · 每次 run 解析 · 架构组件 AgentSkillResolver 宿主所有 · 每次 run 解析 AgentSkillScope · roots/enabled/provided · 架构组件 AgentSkillScope roots/enabled/provided Skills(core) · discover/discoverDefault · 架构组件 Skills(core) discover/discoverDefault SkillRuntimeSupport · apply(ctx) 装配 · 装配时(每次 run 一次快照) · activate SkillRuntimeSupport apply(ctx) 装配 activate 提示词投影 · systemPrompt+OverlayMemory · 装配时(每次 run 一次快照) · activate 提示词投影 systemPrompt+OverlayMemory activate read_skill_file 工具 · 限定 allowedReadRoots · 装配时(每次 run 一次快照) · activate read_skill_file 工具 限定 allowedReadRoots activate WorkspaceContext · CodingSkillDiscovery 富化 · 架构组件 WorkspaceContext CodingSkillDiscovery 富化 ① resolve(request) ② scope ③ roots+enabled ④ discover→结果 ⑤ 注入提示词 ⑥ 注册工具+roots ⑦ 发现产物 装配时(每次 run 一次快照) 图例 前端 后端 安全

Scope 决定可见性

  • • forWorkspace 预置 .ai4j/skills + .agents/skills;includeDefaultSkillRoots=false 默认不带进程级根——服务端租户不会意外暴露全局 Skill
  • • enabledSkillNames 过滤 discovered;providedSkills 代码直供与磁盘发现按名合并去重

两条激活通道

  • • automatic(可模型调用且未 disableModelInvocation):appendAvailableSkillsPrompt 把 Skill 索引写进 systemPrompt,模型经 read_skill_file 按需读正文
  • • selected(request.selectedSkills 显式指定):SkillPromptOverlayMemory 包一层 memory 直接注入完整内容——≤48KB/12K 字符截断

读取被限定在 Skill 根

  • • createSkillToolContext(skillRoots) 生成 BuiltInToolContext,read_skill_file 只能读 Skill 目录内文件
  • • 工具名冲突时注册别名并加装 toolInterceptor 改写调用名;无函数工具能力的 runtime 只保留 selected 通道
  • • Coding 侧 CodingSkillDiscovery.discoverDefault(root, dirs) 把 allowedReadRoots + availableSkills 写回 WorkspaceContext