
在大模型应用开发中,开发者面临的最大挑战之一就是上下文窗口(Context Window)的有限性与高昂成本。如果你把所有的业务逻辑、操作手册和工具文档一股脑塞进 System Prompt,不仅会迅速榨干 Token 配额,还会导致模型注意力分散,甚至产生严重的指令漂移。
Agent Skills 规范引入的核心架构思想------渐进式披露(Progressive Disclosure),正是解决这一难题的"杀手锏"。它通过三层动态加载机制,确保智能体在任何时刻都只摄取与其当前任务最相关的"程序性知识"。

技术核心:三层加载机制
渐进式披露将技能内容划分为三个颗粒度不同的层级,类似于人类专家的认知过程:先了解有什么工具,再翻开说明书,最后执行具体操作。
Level 1:元数据发现(Discovery)
触发时机: 智能体启动或初始化时。
加载内容: 仅加载技能的 name(名称)和 description(描述)。
这是极其轻量级的"挂钩"。智能体通过这些元数据产生"认知",知道自己具备处理某类任务的能力。每个技能的元数据开销仅约 100 tokens。
- 代码片段(SKILL.md 头部):
yaml
---
name: database-optimizer
description: 专门用于 SQL 慢查询分析和索引优化建议。当用户提及数据库性能、查询缓慢或数据库架构优化时激活。
---
Level 2:指令激活(Activation)
触发时机: 当用户的请求与技能描述在语义上匹配时。
加载内容: SKILL.md 的正文指令。
一旦任务触发,系统会动态将完整的操作流程注入上下文。通常这部分内容被严格控制在 5000 tokens 以下,包含了该领域的专家级工作流。
- 例子:
用户输入:"帮我看看为什么这个用户订单查询要 5 秒钟?"
智能体匹配到database-optimizer描述,随即加载:
"你现在是数据库专家。请按以下步骤操作:1. 调用
explain脚本获取执行计划;2. 检查索引覆盖情况..."
Level 3:资源与代码执行(Resources & Execution)
触发时机: 执行过程中按需调用。
加载内容: /scripts(脚本)、/references(详细文档)和 /assets(静态资源)。
这是最高效的一层。智能体不需要读取几千行的 Python 脚本代码进上下文,它只需运行脚本。
-
确定性操作: 脚本提供确定性的逻辑(如复杂的数学计算或格式转换),而模型只接收脚本运行后的输出结果。这让技能的实际知识体量变得"无限大",因为只有运行结果消耗 Token。
-
代码片段(在指令中引用资源):
markdown
## 优化流程
1. 运行分析脚本:
```bash
python {baseDir}/scripts/analyze_query.py --query "$USER_SQL"
-
参考 INDEX_GUIDE.md 中的标准给出建议。
安全与确定性:技能运行环境
渐进式披露不仅节省了空间,更通过安全沙箱(Security Sandbox) 提供了执行的"锚点"。
在 Agent Skills 的规范下,所有的脚本执行都运行在隔离的沙箱环境中。这一设计有两个关键优势:
- 对抗幻觉: 大模型在处理复杂逻辑(如处理二进制 PDF 流或解析大型 JSON)时极易产生幻觉。通过 Level 3 调用预写的、经过测试的确定性代码(如 Python 的
pypdf库),智能体的实际动作是锚定在代码逻辑上的。模型负责决策"何时运行",而代码负责"如何精准执行"。 - 安全隔离: 沙箱环境可以限制网络访问、限制文件权限。即便模型受到提示词攻击(Prompt Injection),恶意指令也难以跳出沙箱破坏宿主系统。
总结:上下文工程的范式转移
渐进式披露将 AI 开发从"提示词工程"提升到了**"上下文工程(Context Engineering)"**的高度。
- 以前: 给新员工发一套包含 100 本手册的合集,要求他背熟后再开始工作。
- 现在(Agent Skills): 给员工一张索引表,他平时只需要记住这张表;当要修电路时,他才去翻阅对应的《电工手册》,并在施工时查看具体的电路图。
这种分层加载机制让智能体变得既博学又敏捷,在保持极低运行成本的同时,拥有了处理复杂、多领域任务的专业性。
类比理解:
这就好比你的手机安装了 100 个 App。这些 App 的图标(Level 1)一直都在桌面上,但不占运行内存;只有当你点击某个 App 时,它的主界面(Level 2)才会被加载;而当你进行具体的图片滤镜处理(Level 3)时,系统才会调用底层的硬件加速指令集。 - 对抗幻觉: 大模型在处理复杂逻辑(如处理二进制 PDF 流或解析大型 JSON)时极易产生幻觉。通过 Level 3 调用预写的、经过测试的确定性代码(如 Python 的