2026-04-26 学习日志
今日主题
- Skill 工具 SKILL.md 拼接与 @ 引用机制
新增认知
Skill 工具 SKILL.md 拼接与 @ 引用机制
- SKILL.md 不是简单拼接文件内容,而是经过 getPromptForCommand 做参数替换、变量展开( 等)、内联 shell 命令执行后,才以 isMeta:true 用户消息注入对话上下文,模型可见但 UI 隐藏。
- SKILL.md 内支持 @ 语法——文件路径、MCP 资源、子 Agent 引用都走 getAttachmentMessages() 解析,和用户输入框里的 @ 引用是同一套逻辑。唯一的例外是 skipSkillDiscovery 标志会阻止从 SKILL.md 触发技能发现 AI 查询。
- 斜杠命令的顶层附件提取被跳过(shouldExtractAttachments=false),@file-name 作为 args 传入 SKILL.md 模板,只有在模板渲染后的内容中才被二次解析为附件。\@ 的转义效果是正则 /(^|\s)@/ 的副作用——反斜杠既非行首也非空白,恰好阻断匹配。
- Skill 工具的执行有三种路径:内联(直接注入当前对话,默认)、分叉(子代理独立运行,结果流回)、远程规范技能(从远程加载 SKILL.md)。内联路径通过 newMessages 机制返回转换后的消息,工具执行器追加到对话列表。