Skill 懒加载怎样实现,为什么需要?
未标记
考查重点:渐进加载与上下文开销。只常驻名称描述,匹配再读正文,执行时取资源,节省无关token并便维护,重要步骤另保证触发
本题目录
参考答案
核心回答
Skill懒加载就是先让Agent知道有哪些能力,需要时再读取具体内容。启动时只提供技能名称、描述和定位信息;任务匹配后加载SKILL.md正文;执行到某一步时,再按需读取参考资料、模板或运行脚本。这样能减少无关内容占用上下文,也降低技能之间相互干扰。
实现上需要技能目录、发现与路由、内容加载、版本和权限检查,以及上下文组装。懒加载改变的是信息何时进入模型输入,磁盘上的技能文件可以一直存在;脚本已安装也不代表已经执行。
三层内容怎样组织
元数据负责“何时用”,应写清任务动作、对象和边界。正文负责“怎样做”,保留主流程、条件、失败处理和结果要求。长背景、格式细节和特殊场景放在references,确定性处理放在scripts。
例如PDF能力:目录说明支持提取文本和填写表单;普通摘要任务只加载必要处理说明;真正填写表单时才读字段映射指南并运行对应脚本。执行脚本时通常只需把调用参数、输出和错误送入上下文,调试脚本时才需要读源码。
加载器还应核对资源路径和技能版本,避免目录描述属于新版、正文却来自旧缓存。加载失败要显式返回错误或选择已有能力,不能把“文件未读到”当成“技能已应用”。
用完如何卸载
开放格式并没有规定所有宿主都在下一轮自动删除技能正文。它可能留在对话历史中,也可能由宿主在后续请求中裁剪、摘要或重新组装。已经发给模型的历史内容,不能靠删除本地文件撤回。
可行的设计是记录当前激活的技能和版本,只保留当前任务仍需的说明;长期规则不能随便丢弃,临时细节可以保留出处后按需再读。改变输入前缀也可能影响缓存命中,具体取决于模型服务的缓存机制,不能把“每轮卸载一定省钱”当成结论。
怎样判断是否有效
既看输入Token、加载延迟与重复读取次数,也看技能命中率、误触发和任务成功情况。准备明确命中、隐含命中、相近但不应命中的请求,分别检查。只比较提示词长度,可能掩盖漏加载后质量下降的问题。
常见追问
懒加载是否会丢失知识? 会减少当轮可见内容,因此路由描述与资源导航必须足够清楚,并允许在发现缺口时补读;它是在成本和召回之间做设计,不是无代价优化。
对应教程
- 27-Skills技能与AI编程工具实践:回看三层渐进加载与触发测试。
参考资料
- 国内:JavaGuide:Agent Skills:采用延迟加载中元数据、指令与资源的分层,说明正文中技能懒加载的各阶段职责。
- 国内:zero2Agent:渐进式披露与Skill/Workflow:借鉴渐进披露机制,说明正文中加载内容如何随任务阶段改变。
- 国内:WeThinkIn:编码Agent与技能资源:依据技能资源的组织,说明正文中脚本、参考资料与实际工具权限的边界。
- 国外:Agent Skills:Specification:依据 Progressive disclosure 与资源目录约定,说明正文中按需加载指令和资源的格式依据。
- 国外:Anthropic:Equipping agents with Agent Skills:借鉴 PDF 技能案例,解释正文中执行脚本为何无需先把全部源码送入模型。



