上下文管理的核心挑战
概述
随着 AI 智能体处理的任务越来越长、累积的工具调用反馈越来越多,上下文窗口逐渐成为关键瓶颈。上下文质量的退化有其规律可循——理解这些失效模式,是在工程层面加以应对的第一步。
"上下文工程"这一概念在很大程度上由 Cognition(Devin 的开发团队)推广开来,他们将其描述为"实际上是构建 AI 智能体的工程师的第一要务"。Anthropic 也呼应了这一观点:"智能体往往需要经历数百轮对话,这要求采用精心设计的上下文管理策略。"
五种上下文失效模式
这五种失效模式由 Drew Breunig 在 How Long Contexts Fail 中系统整理,并在社区中得到广泛引用:
上下文腐化(Context Rot)
随着上下文长度增加,模型性能出现退化。基于"大海捞针"基准测试的研究表明,随着 Token 数量增长,模型从上下文中准确召回信息的能力会下降——即便尚未超过官方声明的上下文窗口上限。
Anthropic 工程团队对其底层机制的解释是:Transformer 架构对于 n 个 Token 会产生 n² 级别的两两关系。随着上下文增长,模型捕捉这些关系的能力被不断稀释。此外,模型在超长序列上的训练经验相对不足,因此性能的退化是渐进式的,而非骤然跌落。
Pokémon 游戏 Gemini 智能体团队从实测中印证了这一点:当上下文超过约 100,000 个 Token 后,智能体开始倾向于重复过去的动作,而非综合规划新的行动方案——这正是上下文腐化引发上下文分心的典型表现。
上下文污染(Context Poisoning)
幻觉或其他错误一旦进入上下文,便会被后续步骤视为既定事实。由于智能体在决策时会持续引用历史上下文,单次错误输出可能在之后的多个步骤中不断传播和叠加。
Manus 工程团队将此列为不应清除上下文中错误记录的核心原因:"抹掉失败等于消除证据。没有证据,模型就无法自我调整。"隐藏错误会阻止模型从失败路径中更新认知。
上下文分心(Context Distraction)
当上下文膨胀到一定规模后,模型会过度聚焦于累积的历史记录,忽视训练阶段习得的知识。具体表现为:智能体开始重复上下文历史中的行为模式,而非基于当前情境重新推理。
这与上下文腐化(整体性能退化)有所区别——分心特指模型被上下文内模式吸引,以牺牲训练知识与推理能力为代价。
上下文混乱(Context Confusion)
上下文中存在多余或无关信息,导致模型输出质量下降。工具描述是常见来源:研究表明,当工具数量超过约 30 个时,描述之间开始出现重叠,引发选择错误;超过 100 个工具后,失败率则会大幅攀升。
"Less is More"论文证明:给 Llama 3.1 8b 提供 46 个工具时,该基准测试失败;工具减少到 19 个后则成功通过。问题的根源在于信噪比:每增加一个工具,现有工具描述的区分度就会进一步降低。
上下文冲突(Context Clash)
当上下文的不同部分包含相互矛盾的信息,或新加入的工具与数据和早期上下文相悖时,便会引发上下文冲突。在多智能体系统中,子智能体基于不同假设运行,这一问题尤为突出。
Cognition 的 Walden Yan 将此列为简单多智能体架构的核心失效模式:"行动承载着隐含的决策,相互冲突的决策必然带来糟糕的结果。"当子智能体在没有共享上下文的情况下并行工作时,各自的输出会反映出不兼容的假设,编排者随后不得不加以协调。
对智能体性能的影响
| 失效模式 | 主要症状 | 常见触发场景 |
|---|---|---|
| 上下文腐化 | 召回准确率下降、长程推理出错 | 对话轮次极长、工具调用次数过多 |
| 上下文污染 | 反复犯相同错误、错误叠加累积 | 幻觉内容未被纠正而留存于历史记录 |
| 上下文分心 | 重复历史行为模式、创新能力下降 | 上下文超过约 100K Token |
| 上下文混乱 | 工具选择错误、输出偏离主题 | 工具数量过多、消息历史噪声过大 |
| 上下文冲突 | 输出前后不一致、决策相互矛盾 | 多智能体并行运行且缺乏共享上下文 |
记忆与上下文:根本区别
大多数团队将记忆和上下文视为同一概念,但两者并不相同——这一区别决定了系统能否规模化扩展。
| 维度 | 上下文(工作记忆) | 记忆(长期存储) |
|---|---|---|
| 成本 | 昂贵:每个 Token 都需付费,未缓存时成本增加 10 倍 | 低廉:存储成本可忽略不计 |
| 容量 | 有限:受上下文窗口约束 | 无限:可存储数百万文档 |
| 速度 | 即时:直接影响模型响应 | 较慢:使用前须先检索 |
| 持久性 | 易失:会话结束后清除 | 持久:跨会话保留 |
| 影响方式 | 直接:影响每一次模型决策 | 间接:须先加载到上下文才能生效 |
| 性能 | 超过约 30K Token 后开始退化 | 不退化:仅有检索开销 |
100:1 法则:智能体每生成 1 个 Token,大约需要处理 100 个输入 Token。因此,上下文管理是生产环境智能体系统的主要成本驱动因素。
哪些内容留在上下文,哪些存入记忆:
| 留在上下文 | 存入记忆 |
|---|---|
| 当前任务目标与约束 | 历史对话与决策记录 |
| 近期工具输出(最近 3–5 次调用) | 习得的行为模式与偏好 |
| 当前活跃的错误状态与告警 | 大型参考文档 |
| 近期对话历史 | 中间计算结果 |
| 当前相关的关键事实 | 已完成任务的摘要 |
四种上下文类型
智能体需要处理四种不同类型的上下文,各类型具有不同的失效特征:
- 指令上下文 — 系统提示词、少样本示例、行为准则。通常较为稳定,但体积可能增大。指令上下文质量差会导致行为不一致。
- 知识上下文 — 事实信息、记忆、检索到的文档、用户偏好。动态变化,随任务而调整。可能迅速填满上下文窗口。
- 工具上下文 — 工具描述、工具调用的返回结果、错误信息。所有模型的性能都会随工具数量增加而下降(Berkeley 函数调用排行榜已有记录)。工具上下文管理至关重要。
- 历史上下文 — 过去的对话、历史决策、习得的模式。有助于保持连续性,但可能引入矛盾信息或过时内容。
各失效模式的实证依据
上下文污染——DeepMind Pokémon 智能体
DeepMind 团队通过其 Pokémon 游戏 Gemini 智能体记录了这一现象。该智能体曾一次性误判游戏状态,该错误被写入目标区域。由于目标在每次决策时都会被引用,这条错误信息不断自我强化。智能体持续数十轮追逐无法实现的目标,却无法自行纠正,因为被污染的上下文一直在为这个错误提供支撑。
领域级联模式: - 客服场景:误判产品型号 → 提供错误的故障排查建议 → 引用了错误的产品手册 → 推荐了不兼容的配件 - 代码生成:导入错误的库版本 → 调用了已废弃的 API → 产生不兼容的语法 → 引发级联类型错误 - 研究场景:误解研究范围 → 检索错误领域 → 引用无关文献 → 得出错误结论
一旦污染形成,几乎无法恢复。清空整个上下文虽然有效,但会丢失所有进度。智能体对自身上下文的信任程度高于外部纠正。
上下文分心——Gemini 2.5 团队
Gemini 2.5 团队观察到,当智能体上下文超过 100,000 个 Token 时,智能体停止生成新颖解法,转而重复历史记录中的动作,即使这些动作并不适用于当前问题。Databricks 研究人员发现,当模型达到分心阈值后,往往会完全无视指令,转而对上下文内容进行归纳总结。
上下文混乱——Berkeley 函数调用排行榜
一个量化的 Llama 3.1 8B 模型(上下文窗口 16,000 Token)被提供了 GeoEngine 基准测试中的 46 个工具(约 3,000 Token 的上下文)。智能体的上下文空间充裕,但完全失败。当工具减少到 19 个后,它成功完成了任务。问题在于信噪比:每增加一个工具,现有工具描述的区分度就会进一步降低。
上下文冲突——Microsoft 与 Salesforce 研究
研究人员将标准基准测试任务分散到多轮对话中,而非放在单个提示词里。结果显示,所有被测模型的平均性能下降了 39%。当模型在对话中走错方向后,就会迷失且无法自行恢复——上下文中同时包含错误和纠正,而智能体无法稳定地优先采纳纠正而非错误。
上下文冲突与上下文污染的区别:污染是单一错误不断传播;冲突则是多条相互矛盾的信息同时竞争影响力。
上下文规模阈值与推荐方案
| 上下文规模 | 推荐方案 |
|---|---|
| < 10K Token | 仅追加(append-only)的简单方式,配合基础缓存 |
| 10K–50K Token | 在边界处添加压缩,结合 KV 缓存优化 |
| 50K–100K Token | 引入外部记忆卸载机制,配合智能检索 |
| > 100K Token | 考虑多智能体隔离架构 |
常见反模式
| 反模式 | 后果 | 正确做法 |
|---|---|---|
| 忽略错误信息 | 智能体反复犯相同错误 | 保留错误上下文以支持自我修正 |
| 修改已有上下文 | 缓存失效,成本成倍增加 | 采用仅追加设计以保留缓存 |
| 过早过度工程化 | 引入不必要的复杂性,后续模型能力提升后反而需要推倒重来 | 从简单开始,按需增加复杂度 |
| 一次性加载所有工具 | 工具数量增加后性能下降 | 根据任务动态选择工具 |
| 激进裁剪且无恢复机制 | 信息永久丢失 | 压缩与卸载结合使用 |
参见
参考资料
- How Long Contexts Fail — Drew Breunig
- Context Engineering for Agents — Lance Martin, LangChain
- Effective Context Engineering for AI Agents — Anthropic
- Don't Build Multi-Agents — Cognition / Walden Yan
- Context Engineering for AI Agents: Lessons from Building Manus — Yichao 'Peak' Ji
- Mastering Multi-Agent Systems eBook — Galileo, 2026. Chapter 4 provides empirical evidence for all four failure modes with specific team/researcher citations.