上下文工程:生产级智能体的记忆、压缩与工具清理
大多数生产环境中的 AI agent 失败并不是因为模型耗尽了上下文。它们发生的原因是模型在达到限制之前很久就已经发生了 漂移 (drift)。Forrester 将 “agent 漂移” 称为 AI 加速开发的隐形杀手 —— Forrester 2025 年的研究显示,近 65% 的企业级 AI 失败都可以追溯到多步推理过程中的上下文漂移或记忆丧失,而不是单纯的 token 耗尽。
这种区别至关重要。硬性的上下文限制是很清晰的:API 拒绝请求,agent 停止,你会收到一个可以处理的错误。上下文腐烂 (Context rot) 则是隐蔽的:模型继续运行,继续生成输出,但性能却在悄然下降。仅根据信息在上下文窗口中所处的位置,GPT-4 的准确率就会从 98.1% 下降到 64.1%。你不会收到错误信号 —— 你只会得到微妙的错误答案。
本文涵盖了在生产级 agent 中管理上下文的三种主要工具 —— 压缩 (compaction)、工具结果清理 (tool-result clearing) 和外部记忆 (external memory) —— 以及在你的 agent 发生漂移之前应用它们的实际策略。
为什么上下文管理不仅仅关乎长度
天真的心理模型是:上下文窗口 = token 预算。如果你在限制之内,你就没问题。
现实情况是:模型的 有效 上下文窗口比宣传的限制要小得多。对于目前大多数模型,超过约 128K token 后,注意力机制就开始退化 —— 技术上存在于窗口中的信息所获得的权重比例会降低。这就是上述准确率下降背后的机制。
还有一个容易被低估的复合可靠性效应。在 20 步的工作流中,如果每步的可靠性为 95%,综合成功率将下降到仅 36%。早期引入的 2% 偏差 —— 可能是因为关键指令在不断增长的历史记录中丢失了 —— 会在运行结束时复合成 40% 的故障率。你原本 95% 可靠的 agent 最终只能完成三分之一的任务。
经济因素强化了这一点。生产级 agent 的输入 token 与输出 token 比例约为 100:1。一个不受限制的软件工程 agent 每项任务的成本为 5 到 8 美元。如果每天有 10,000 次交互,一个未经优化的客服 agent 每年成本超过 25 万美元。60% 的压缩削减可以将该成本降至 10.2 万美元。上下文管理和成本管理其实是同一个问题。
三种工具,三种不同的权衡
现代 agent 平台 —— 尤其是 Anthropic API —— 提供了三种不同的上下文管理机制,每种机制都有不同的成本/保真度特征。
压缩 (Compaction):带推理成本的有损摘要
压缩会将整个对话历史通过 LLM 运行,并用类型化的摘要块替换之前的所有轮次。它在可配置的 token 阈值(默认 15 万 token,最小 5 万)处触发。你需要支付推理成本。结果是对之前发生的所有事情的高保真但有损的表示。
这种权衡是真实存在的。一个 335,279 token 的研究 agent 上下文 —— 其中 96% 是文件读取结果,不到 2% 是实际推理 —— 可以压缩为约 2,800 token 的摘要。这大约是工具输出 120:1 的压缩比。但信息丢失了。哪些信息能保留下来取决于摘要提示词 (prompt) 的编写方式。
这就是自定义指令 (custom instructions) 发挥作用的地方。默认的摘要提示词会对显著性做出通用决策。如果你的任务需要保留每个定量数据及其来源,或者考虑过的每个决策分支,你需要明确指定。自定义指令会完全 替换 默认提示词,因此它们也承担着涵盖默认提示词本应捕捉内容的全部责任。
JetBrains Research (SWE-bench Verified, 2025 年 12 月) 的一项重要发现是:LLM 摘要矛盾地使轨迹长度增加了 13-15%。摘要掩盖了自然的停止信号,导致 agent 在超过其最佳停止点后仍继续尝试。在该研究中,摘要成本超过了每个实例总支出的 7%。这并不意味着要避免压缩 —— 而是意味着单靠压缩并不是一个完整的策略,当你启用它时,你应该监测轨迹长度。
