Effective context engineering for AI agents


TL;DR

本文提出了“上下文工程” (Context Engineering) 的概念,主张将 AI 智能体开发的重点从编写静态提示词(prompt)转向动态地策划和管理输入给模型的全部信息(即上下文),从而在模型有限的注意力预算下,实现更可靠、更高效的智能体行为。

关键定义

本文的核心是围绕“上下文工程”展开的,其关键定义如下:

相关工作

目前,应用 AI 领域长期关注的焦点是提示工程,即如何为 LLM 编写和组织指令以获得最佳结果。这种方法在处理单轮分类或文本生成等离散任务时非常有效。

然而,随着研究转向开发更强大、能够在更长时间跨度内进行多轮推理的智能体,一个关键瓶颈日益凸显:LLM 的上下文窗口是有限的。当一个智能体在循环中运行时,会产生越来越多可能相关的信息。若将所有信息不加选择地塞入上下文,会导致“上下文腐烂”问题,即模型的性能(如信息检索精度和远距离推理能力)会因上下文过长而下降。这种性能下降源于 Transformer 架构的内在限制(\($n^2\)$ 的注意力关系)和训练数据中长序列样本较少的事实。

因此,本文旨在解决的核心问题是:如何有效地管理和策划不断演变的信息,从中挑选出最有价值的部分放入有限的上下文窗口,以构建能够在长时程任务中保持连贯性和高效性的 AI 智能体?

本文方法

本文将“上下文工程”的核心原则定义为:找到能够最大化预期结果概率的、最小且信噪比最高的一组 Token。围绕此原则,本文从静态上下文构成和动态上下文管理两个维度,提出了一套完整的方法论。

静态上下文的构成

静态上下文是指在推理开始前设定的相对固定的部分,优化这些部分是上下文工程的基础。

动态上下文检索与智能体搜索

对于更高级的智能体,上下文管理是动态的。

面向长时程任务的上下文工程技术

当任务时间跨度超过单个上下文窗口的容量时(如大型代码库迁移、综合性研究项目),必须采用专门的技术来解决上下文限制。

下表总结了不同长时程技术的适用场景:

技术 描述 最佳适用场景
压缩 (Compaction) 总结并重置上下文,保留核心信息。 需要大量来回交互、保持对话流畅性的任务。
结构化笔记 (Note-taking) 智能体在外部文件中记录和读取状态。 具有明确里程碑、需要迭代开发的任务。
子智能体架构 (Multi-agent) 主智能体协调多个专注的子智能体。 复杂的并行研究和分析任务。

实验结论

本文虽未提供传统的定量实验数据,但通过其在构建实际系统(如 \(Claude Code\)、多智能体研究系统、玩《宝可梦》的智能体)中的应用,验证了上下文工程的有效性。