Skip to content

面向 AI Agent 的有效 Context Engineering

官方原文: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents

发布日期: 2025 年 9 月 29 日
作者: Anthropic Applied AI 团队:Prithvi Rajasekaran、Ethan Dixon、Carly Ryan、Jeremy Hadfield;Rafi Ayub、Hannah Moran、Cal Rueb、Connor Jennings 参与贡献。特别感谢 Molly Vorwerck、Stuart Ritchie、Maggie Vo。


概览

Context Engineering 是构建 AI Agent 时对 Prompt Engineering 的进一步发展。它关注如何在 LLM 的约束下,优化每一个 token 的效用,稳定达成预期结果。核心是“从 Context 出发思考”:始终考虑模型在当前时刻实际掌握的完整状态。

Context Engineering 与 Prompt Engineering

Prompt Engineering 主要处理系统提示等指令的写法和组织;Context Engineering 的范围更广,涵盖推理期间进入 Context Window 的全部信息,包括系统指令、工具、MCP、外部数据和消息历史。它是在不断变化的信息集合中,挑选最有价值内容进入有限窗口的艺术与工程。

为什么需要 Context Engineering

LLM 存在 context rot:token 越多,模型准确回忆信息的能力会下降。这与人类有限的工作记忆相似,可理解为模型也有有限的“注意力预算”。Transformer 中每个 token 都要关注其余 token,形成 级别的两两关系;模型对超长序列的训练经验也相对较少。位置编码插值能帮助处理更长输入,但仍伴随一定退化。

因此,基本原则是:用最小的一组高信号 token,最大化得到目标结果的概率。

有效 Context 的组成

System prompt 应简洁、直接,并保持在合适抽象层级:既不要硬编码复杂脆弱的逻辑,也不要只给模糊的高层指导。可用 XML 标签或 Markdown 标题划分清晰部分,用最少信息完整表达预期行为。实践上,先用最强模型和最小 prompt 起步,再围绕观察到的失败模式补充指令。

工具 应返回 token 高效的信息,并引导 Agent 采取高效行为。它们要自包含、能妥善处理错误,且用途极其明确。工具集过于庞大、选择边界模糊是常见失败模式:如果人类工程师无法明确判断某个场景该用哪个工具,就不能要求 AI Agent 做得更好。

示例(few-shot prompting) 很有价值,但不应把所有边界情形都塞进 prompt。应选取多样、典型的例子,直接展现期望行为。对 LLM 而言,好的示例往往比大量文字说明更有效。

本文采用的简明 Agent 定义是:LLM 在循环中自主使用工具。

实践正转向 just-in-time Context:不预处理和预载入全部相关数据,而是保留文件路径、已存查询、网页链接等轻量标识,在运行时通过工具按需加载。Claude Code 在大数据库分析中便会让模型编写有针对性的查询、保存结果,再用 Bash 分析,而不是把完整数据对象放进 Context。

这与人的认知方式相似:我们依赖文件系统、收件箱、书签等外部组织与索引,在需要时查找信息。

Progressive disclosure 让 Agent 通过探索逐步发现相关 Context。目录层级、命名规则、时间戳等元数据,本身就是有价值的导航信号。其代价是运行时探索比预计算检索更慢,因此要为 Agent 提供足够的工具和启发式方法。

通常可采用混合策略:先预取少量信息以提升速度,同时允许 Agent 自主继续探索。Claude Code 就是如此:CLAUDE.md 会预先进入 Context,globgrep 等原语则用于即时导航。文章的建议仍然是,先做最简单且能工作的方案。

长时任务中的 Context Engineering

对于持续数十分钟到数小时的工作,文章讨论了三种方式。

Compaction。

当对话接近 Context Window 上限时,先总结关键内容,再基于摘要继续对话。在 Claude Code 中,消息历史会交给模型压缩,保留架构决策、未解决 Bug 和实现细节,丢弃重复输出。过度压缩可能丢失细微但关键的 Context,因此宜先尽量保证 recall,再逐步提高精度。清除工具结果是最安全、干预最小的 compaction 方式之一。

结构化笔记(agentic memory)。

Agent 定期把笔记写入 Context Window 外的持久位置,需要时再读回。文中以 Claude 玩 Pokemon 为例:它能在数千个步骤中保持精确计数,绘制地图、记录成就和战斗策略;Context 重置后,再读取自己留下的记录,继续长时间任务。

Sub-agent architecture。

让专门的 subagent 处理聚焦任务,每个 subagent 都拥有干净的 Context Window。它们可以广泛探索,但只返回压缩、提炼后的摘要,通常为 1,000 到 2,000 tokens。这样能实现关注点分离,并在复杂研究任务中明显优于单 Agent 系统。

如何选择取决于任务:需要大量来回交互时,compaction 有利于保持对话连续;有清晰里程碑的迭代开发适合结构化笔记;并行探索收益高的复杂研究和分析,则适合 multi-agent architecture。

结论

Context Engineering 的关键转变在于:每一步都要审慎决定什么信息进入模型有限的注意力预算。最小、最高信号的 token 集合,通常能带来最可靠的结果。模型更强后,所需的显式工程约束会减少,但把 Context 视为珍贵且有限的资源,仍将是构建可靠 Agent 的核心。

AI 落地咨询
艾维禾砺数字科技

企业 AI 落地全链路服务

Agent 开发工作流搭建Claude Code 集成
微信咨询
d187l8801b6124
访问官网 ivheli.com