为 AI agent 做有效的上下文工程
来自 Anthropic Engineering · 期号 2025-09-29
摘要
AI agent 的上下文窗口是有限资源,token 越多模型越容易丢失焦点。 Anthropic 提出从提示工程转向上下文工程:前者关注怎么写好提示词,后者关注每次推理时如何从不断变化的信息中精选最相关的 token 放进去。 agent 在循环中运行会产生越来越多可能对下一轮推理有用的数据,这些信息必须被循环精炼。上下文工程就是这门精选的艺术。
深读
导读 AI agent 的上下文窗口是有限资源,token 越多模型越容易丢失焦点。Anthropic 提出从提示工程转向上下文工程:前者关注怎么写好提示词,后者关注每次推理时如何从不断变化的信息中精选最相关的 token 放进去。读完本文能带走一套系统的方法论,从系统提示、工具设计到长任务中的压缩与记忆策略,让 agent 在有限窗口内保持专注。 关键信息 - 上下文窗口中的 token 数量增加时,模型准确回忆信息的能力会下降,这一现象被称为“上下文腐烂”(context rot),在所有模型中都会出现。 - Transformer 架构中 n 个 token 会产生 n² 对注意力关系,上下文越长,模型捕捉这些关系的能力越被稀释。 - Anthropic 建议系统提示应处于“金发姑娘区”:既避免硬编码脆弱逻辑,也避免过于笼统而缺乏具体信号。 - 工具集最常见的失败模式是功能臃肿,导致 agent 在工具选择上产生歧义;如果人类工程师都无法确定该用哪个工具,AI agent 也不可能做得更好。 - Claude Code 采用混合策略:CLAUDE.md 文件提前放入上下文,glob 和 grep 等原语则用于运行时按需检索文件。 - 针对长任务,Anthropic 提出了三种技术:压缩(compaction)、结构化笔记(structured note-taking)和多 agent 架构。 逐节讲解 从提示工程到上下文工程 提示工程关注如何写好指令,而上下文工程关注的是每次推理时,从不断变化的信息宇宙中精选哪些 token 放入有限的上下文窗口。agent 在循环中运行会产生越来越多可能对下一轮推理有用的数据,这些信息必须被循环精炼。上下文工程就是这门精选的艺术,它与提示工程的区别在于:写提示是一次性任务,而上下文工程是迭代的,每次决定传给模型什么时都要重新做一次精选。 为什么上下文工程对构建 agent 至关重要 LLM 的注意力预算是有限的。Transformer 架构让每个 token 都能关注到上下文中的所有其他 token,这产生了 n² 对注意力关系。上下文越长,模型捕捉这些关系的能力越被稀释。此外,模型的注意力模式是从训练数据分布中习得的,短序列通常比长序列更常见,这意味着模型对上下文范围的依赖关系经验更少、参数也更少。这些因素共同导致:模型在长上下文下仍然有能力,但信息检索和长程推理的精度会下降。 有效上下文的构成 系统提示应使用简单直接的语言,处于“金发姑娘区”:既不过度硬编码脆弱逻辑,也不过于笼统。建议用 XML 标签或 Markdown 标题将提示分成不同部分(如背景信息、指令、工具指南、输出描述等)。工具应自包含、对错误鲁棒、用途极其清晰,输入参数应描述性强且无歧义。提供示例(few-shot prompting)仍是强烈推荐…