上下文工程:为什么塞得越多,效果反而越差

Anthropic 官方工程博客。上下文是有限资源,塞满会「腐化」。核心原则是找到能最大化目标达成率的最小高信号 token 集合——附三种长任务的处理技术。

2026/08/05约 9 分钟HiBridge 编译
译文本文是英文原文的中文翻译,原作者与原文链接如下。
原作者
Anthropic
原文标题
Effective context engineering for AI agents
原发布平台
Anthropic Engineering
原发布日期
2026/08/05

译者说明:本文译自 Anthropic 官方工程博客。原文面向 agent 开发者,但其中关于「上下文是有限资源」的判断和三种长任务处理技术,对任何长时间使用 AI 的人都适用。文末附研究咨询场景的对照。

面向 AI 智能体的有效上下文工程

概述

上下文工程代表了对传统提示词工程的一次转向。它关注的问题是:「什么样的上下文配置,最有可能产生我们想要的模型行为?」

工程师不再执着于打磨单条提示词,而是优化推理时可用的整套 token——包括系统指令、工具、外部数据和对话历史。

上下文工程 vs 提示词工程

提示词工程强调如何最优地撰写和组织给模型的指令。

上下文工程管理的是推理期间的整个 token 生态。用 Anthropic 的说法:

上下文工程指的是「在大模型推理过程中,策展并维持最优 token(信息)集合」的一整套策略。

这个区别对跨越长时程的多轮智能体尤其重要。单个智能体会不断产生可能影响后续推理的数据,因此需要周期性地精炼哪些内容进入有限的上下文窗口。

为什么上下文是有限资源

大语言模型存在**「上下文腐化」(context rot)**现象——随着上下文窗口变大,性能会下降。

这源于架构上的约束:基于 Transformer 的模型会构建 n² 量级的 token 两两关系,序列越长,注意力容量被摊得越薄。此外,模型的训练数据以较短序列为主,因此在处理长距离依赖时准备不足

这个现实决定了必须仔细策展。模型在长上下文下仍然有能力,但会表现出:

相比在短上下文下的表现,信息检索的精确度和长距离推理能力都会下降


有效上下文的解剖

系统提示词

有效的系统提示词要在具体与灵活之间取得平衡——处在「硬编码的脆弱逻辑」与「含糊、想当然的指引」之间的**「金发姑娘区间」**。

它应当**「以恰当的海拔高度呈现给智能体」**:既给出具体的行为信号,又不过度简化。

推荐的结构是用 XML 标签或 Markdown 标题划分出清晰的区块,例如 <background_information><instructions>## Tool guidance

原则是:

能完整勾勒出你期望行为的、最小的信息集合。

工具

工具定义了智能体与其环境之间的契约。有效的工具应当:

  • 返回 token 高效的信息
  • 鼓励高效的智能体行为
  • 避免功能重叠
  • 呈现清晰、无歧义的使用场景

如果一个人类工程师都无法明确说出某种情况下该用哪个工具,就不能指望 AI 智能体做得更好。

臃肿的工具集会制造混乱与不可靠。

示例(少样本提示)

与其详尽地记录每一种边缘情况,不如策展一组多样化的典型示例来刻画期望行为。

对大模型而言,示例就是那些「胜过千言万语」的图片

高质量的示例胜过数量。


上下文检索与智能体式搜索

现代智能体越来越多地采用**「即时」(just in time)上下文策略**:保留轻量的标识符(文件路径、URL、查询引用),在运行时通过工具动态加载数据。

这与人类的认知方式相似——我们不会背下整个资料库,而是按需检索。

这种方式实现了渐进式披露(progressive disclosure):智能体通过探索逐步发现相关上下文。每一次交互产出的信息,指引下一步决策;工作记忆保持聚焦,而把组织工作交给外部。

代价:运行时探索比预先计算好的检索要慢。有效的引导,能确保智能体高效导航,而不是把上下文浪费在追逐死胡同上。


长时程任务的三种技术

一、压缩(Compaction)

在接近上下文上限时,对对话内容做摘要,然后用压缩后的要点重新开始。

拿一段接近上下文窗口上限的对话,对其内容做摘要,然后用这份摘要重新初始化一个新的上下文窗口。

成功的关键在于平衡召回(捕捉全部相关细节)与精确(剔除冗余)。

一个唾手可得的优化:一旦工具的返回结果已被存到别处,就把它从上下文里清掉。

二、结构化笔记

智能体在上下文窗口之外维护持久的笔记,之后再取回。这提供了**「开销极小的持久记忆」**。

例子包括 Claude Code 维护任务清单,或智能体在 NOTES.md 文件里追踪项目进展。

原文提到那个玩宝可梦的 Claude 智能体作为演示——它在数千个游戏步骤中维持精确的计数,并跨越数小时的会话保留策略笔记,使其在上下文重置之后仍能保持连贯。

三、子智能体架构

专门的子智能体在干净的上下文窗口中处理聚焦的任务,同时由一个协调者智能体负责高层规划。

每个子智能体广泛探索,但只返回压缩后的摘要(通常 1,000–2,000 token)。

这实现了:

清晰的关注点分离——详细的搜索上下文被隔离在子智能体内部,而主智能体专注于综合与分析结果。


结论

上下文工程的指导原则:

找到能最大化「达成你期望结果」概率的、最小的高信号 token 集合。

随着模型能力提升,更少的规定性工程会带来更大的自主性;但把上下文当作有限资源来对待,始终是构建可靠智能体的关键。


译后附记:换成研究咨询的说法

原文是写给 agent 开发者的,但每一条都有日常对应。

「上下文腐化」解释了一个你早就感觉到的现象

对话越长,它越容易丢细节、越容易忘记你开头定的规矩——这不是错觉,是有架构原因的。

推论:别把一个对话用到底。 感觉到它开始飘的时候,就是该开新对话的时候。

三种技术的日常版本

原文技术 你的做法
压缩 /compact,或者手动开新对话时把结论带过去、把过程留下
结构化笔记 让它把中间结论写进一个文件,而不是全留在对话里。下次读文件,不读历史
子智能体 一个任务一个对话。「读 40 份访谈」和「写报告框架」分开做,各自的上下文互不污染

结构化笔记那条最容易被忽略,收益却最大。 处理一批材料时,让它每处理完一份就把结果追加到一个 Markdown 文件里——上下文里只留当前这份,历史都在磁盘上。这样跑一百份和跑五份,上下文占用是一样的。

「最小的高信号 token 集合」怎么落地

最实际的一条推论:给它的背景资料不是越多越好。

一份 200 页的客户历史报告,如果这次任务只用得上其中的第三章,那就只给第三章。多给的部分不是「有备无患」,是在稀释它对真正重要内容的注意力。

判断标准:这份材料里,有多少是这次任务真正需要的? 低于一半,就该先裁剪再喂。