渐进式披露:AI Agent上下文工程的核心模式
渐进式披露:AI Agent上下文工程的核心模式
引言:被忽视的上下文瓶颈
在AI Agent的研究与工程实践中,我们花费大量精力优化推理策略(ReAct、Plan-and-Execute)和行动工具(Tool Use),却常常忽视一个根本性的约束:上下文窗口是有限的注意力资源。
想象一下:你正在阅读一份100页的技术文档,但只能同时看到其中5页。如果这5页充满了无关细节,你的决策质量必然下降。这不是因为你不够聪明,而是因为信息过载稀释了关键信号的感知。
这正是**渐进式披露(Progressive Disclosure)**要解决的问题。它不是让模型更聪明,而是让有限的注意力用在更重要的地方。
一、本质区别:上下文工程,而非推理模式
渐进式披露首先是一个上下文工程模式,而不是推理—行动模式。
| 维度 | ReAct / Plan-and-Execute | 渐进式披露 |
|---|---|---|
| 核心问题 | Agent下一步做什么? | 上下文窗口里应有哪些信息、粒度多粗、何时展开? |
| 关注对象 | 推理与行动的循环 | 信息的编排与加载策略 |
| 本质属性 | 决策逻辑 | 上下文工程(Context Engineering) |
关键洞察:上下文准备的质量,直接影响后续推理的效果。即使拥有最先进的推理算法,如果输入的上下文充满了噪声,输出质量也会大打折扣。
二、理论基础:HCI领域的认知原则
渐进式披露并非AI领域的独创概念,它深植于人机交互(HCI) 的研究传统。
2.1 认知过载与决策质量
根据 Springer & Whittaker 2018 的研究(arXiv:1811.02164):
“系统初始若暴露所有细节,用户反而无法做出准确判断——信息过载干扰认知。”
这一发现揭示了人类认知的一个基本特征:
- 工作记忆容量有限:人类短期记忆通常只能同时处理4±1个信息组块
- 信号稀释效应:无关细节会稀释关键信息的显著性
- 决策疲劳:过多的初始选择会降低决策质量和速度
2.2 渐进式披露的认知优势
研究对比了两种信息呈现策略:
策略A:一次性全量披露
├─ 初始状态:展示所有功能、参数、选项
├─ 用户认知负荷:高(需要筛选和过滤)
└─ 决策质量:低(信息过载导致关键信号被淹没)
策略B:渐进式披露
├─ 初始状态:仅呈现简化摘要和核心选项
├─ 按需展开:用户表达意图后,动态加载相关细节
└─ 决策质量:高(注意力聚焦于当前任务相关上下文)
核心原则:先给摘要,后续按需展开——这一原则从HCI领域迁移到AI Agent系统,构成了渐进式披露的理论基础。
三、工程约束:上下文腐化(Context Rot)
如果说HCI原则提供了"为什么需要渐进式披露"的理论支撑,那么Anthropic的Context Engineering研究则提供了"为什么必须这样做"的工程约束。
3.1 有限注意力资源
根据Anthropic《Effective Context Engineering for AI Agents》(2025):
“上下文窗口是有限的注意力资源,token越多,模型提取关键信息的能力越弱。”
这与人类的认知限制形成了有趣的平行:
- 人类有工作记忆容量限制(Miller’s Law: 7±2)
- LLM有上下文窗口限制(尽管不断扩大,但有效利用效率随长度递减)
3.2 Context Rot:上下文腐化
Anthropic提出了一个关键概念——Context Rot(上下文腐化):
“信息并未消失,而是被稀释至模型无法有效感知的程度。”
现象描述:
- 上下文窗口中塞入了5000 tokens的背景信息
- 关键指令 buried in the middle("Lost in the Middle"现象)
- 模型表现如同这些信息不存在——不是因为被截断,而是因为被稀释
Context Rot 示意图:
[上下文窗口 - 100K tokens]
├─ 系统提示(500 tokens)✓ 高显著性
├─ 历史对话(3000 tokens)✓ 中等显著性
├─ 技能文档A(5000 tokens)✗ 被稀释,难以提取
├─ 技能文档B(5000 tokens)✗ 被稀释,难以提取
├─ 当前任务指令(200 tokens)✓ 高显著性
└─ 输出空间
问题:技能文档A/B虽然存在,但模型难以有效利用
3.3 对抗Context Rot的工程策略
解法:Agent只维护轻量级摘要,按需动态加载详细内容,而非预先填满上下文。
这正是渐进式披露的工程化落地:用信息编排对抗注意力稀释。
四、工程实践:Claude Code Skills 四步闭环
理论需要落地。Claude Code的Skills机制是渐进式披露在工程层面的典范实现。
4.1 设计背景
Skills是Claude Code的插件机制:
- 数量:最多数百个
- 单个体积:完整内容最多5000 tokens
- 矛盾:全量预加载 → 上下文爆炸;完全不加载 → 技能不可用
渐进式披露以四步闭环解决这一矛盾:
4.2 四步闭环详解
┌─────────────────────────────────────────────────────────────┐
│ 渐进式披露四步闭环 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Step 1: 注入摘要 (~100 tokens) │
│ ┌──────────────┐ │
│ │ 会话开始时仅 │ YAML frontmatter │
│ │ 注入元数据 │ - 技能名称 │
│ │ │ - 功能摘要 │
│ │ │ - 触发条件 │
│ └──────────────┘ 模型感知技能列表,正文不可见 │
│ ↓ │
│ Step 2: 按需展开 (≤5000 tokens) │
│ ┌──────────────┐ │
│ │ 模型匹配任务 │ 调用 SkillTool │
│ │ 后动态加载 │ → 完整正文注入上下文 │
│ │ │ 不调用则不进入上下文(零成本) │
│ └──────────────┘ │
│ ↓ │
│ Step 3: 用完压缩 (~200 tokens) │
│ ┌──────────────┐ │
│ │ 执行完成后 │ 正文被剥离 │
│ │ 上下文清理 │ → 仅保留约200 tokens的结果摘要 │
│ │ │ 上下文零污染 │
│ └──────────────┘ │
│ ↓ │
│ Step 4: 压缩后只取回用过的 │
│ ┌──────────────┐ │
│ │ autocompact │ 触发后仅重新注入 │
│ │ 智能召回 │ → 本轮实际使用过的技能摘要 │
│ │ │ 避免重复加载未使用技能 │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
4.3 Token流量分析
| 阶段 | Token数量 | 说明 |
|---|---|---|
| 初始注入 | ~100 tokens × N个技能 | 仅YAML frontmatter,可忽略成本 |
| 按需展开 | ≤5000 tokens | 仅当技能被调用时发生 |
| 执行中 | 5000 tokens | 完整技能内容参与推理 |
| 用完压缩 | ~200 tokens | 仅保留执行结果摘要 |
| 长期维护 | ~200 tokens × 实际使用技能数 | 智能召回机制 |
关键指标:
- 峰值上下文占用:仅活跃技能完整内容
- 平均上下文占用:大部分时间为摘要级token
- 上下文污染度:趋近于零(用完即清理)
4.4 设计哲学
Claude Code Skills的四步闭环体现了渐进式披露的精髓:
- 延迟加载(Lazy Loading):非必要不展开,降低初始认知负荷
- 即用即走(Use and Release):避免上下文累积导致的Rot
- 智能召回(Smart Recall):基于实际使用历史优化后续加载
五、三层总结:从理论到工程
渐进式披露在AI Agent系统中的落地,是三层知识叠加的结果:
┌─────────────────────────────────────────────────────────────┐
│ 第三层:工程实现层 │
│ Claude Code Skills 机制 │
│ • 100→5000→200 tokens 四步闭环 │
│ • 按需加载、用完清理、智能召回 │
│ • 上下文零污染设计 │
├─────────────────────────────────────────────────────────────┤
│ 第二层:工程研究层 │
│ Anthropic Context Engineering │
│ • 上下文窗口 = 有限注意力资源 │
│ • Context Rot:信息稀释而非消失 │
│ • 对抗策略:轻量摘要 + 动态加载 │
├─────────────────────────────────────────────────────────────┤
│ 第一层:理论基础层 │
│ HCI认知原则(Springer & Whittaker, 2018) │
│ • 初始全量披露 → 认知过载 → 决策质量下降 │
│ • 初始摘要披露 → 按需展开 → 决策质量提升 │
│ • 核心原则:先给摘要,后续按需展开 │
└─────────────────────────────────────────────────────────────┘
一条HCI认知原则提供理论基础,一个工程约束使其成为必须——两层叠加,构成渐进式披露进入Agent系统的根本原因。
六、扩展思考:渐进式披露的通用模式
Claude Code Skills的实现可以抽象为更通用的设计模式:
6.1 通用四步模型
class ProgressiveDisclosure:
"""
渐进式披露通用模式
"""
def inject_summary(self, items: List[Item]) -> Context:
"""
Step 1: 注入摘要
- 输入:全量技能/工具/文档列表
- 输出:轻量级摘要上下文
- 成本:O(N) × 摘要token数,其中N为项目数
"""
return [item.to_summary() for item in items]
def expand_on_demand(self, context: Context, task: Task) -> Context:
"""
Step 2: 按需展开
- 输入:当前任务 + 摘要上下文
- 输出:匹配任务的完整内容注入
- 触发条件:模型判断需要详细内容
"""
matched = self.matcher.match(task, context)
return [item.expand() for item in matched]
def compress_after_use(self, context: Context, result: Result) -> Context:
"""
Step 3: 用完压缩
- 输入:执行完成后的完整内容
- 输出:压缩后的结果摘要
- 目标:上下文零污染
"""
return result.to_summary()
def recall_used_only(self, history: History) -> Context:
"""
Step 4: 智能召回
- 输入:会话历史中使用过的项目
- 输出:仅重新注入实际使用过的摘要
- 优化:避免重复加载未使用项目
"""
return [item.summary for item in history.used_items]
6.2 应用场景扩展
| 场景 | 摘要形式 | 完整内容 | 触发条件 |
|---|---|---|---|
| 工具调用 | 工具名称+功能描述 | 工具参数Schema+示例 | 模型选择工具时 |
| RAG检索 | 文档标题+片段摘要 | 完整文档段落 | 检索匹配时 |
| 多Agent协作 | Agent角色描述 | Agent完整Prompt+技能 | 需要协作时 |
| 知识库查询 | 实体摘要卡片 | 实体完整属性+关系 | 实体被提及时 |
| 代码库理解 | 文件树+函数签名 | 完整函数实现 | 需要修改/调试时 |
七、核心理念回顾
渐进式披露不是一项复杂的技术,而是一种信息编排的智慧:
“渐进式披露不使模型更聪明,它只是让有限的注意力,用在更重要的地方。”
在AI Agent系统设计中,我们常常追求更强大的模型、更复杂的推理链、更丰富的工具集。但渐进式披露提醒我们:在资源约束下,如何组织信息往往比拥有多少信息更重要。
从HCI的认知原则,到Anthropic的Context Engineering,再到Claude Code Skills的工程实践,渐进式披露展现了跨学科知识迁移的力量。它不仅是技术方案,更是一种设计哲学——尊重认知限制,优化注意力分配。
参考文献
: Springer, A., & Whittaker, S. (2018). Progressive Disclosure: Empirical Evidence and Design Guidelines. arXiv preprint arXiv:1811.02164.
Anthropic. (2025). Effective Context Engineering for AI Agents. Technical Report.
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)