Harness Engineering 04. Context and Memory management

这一层控制模型在执行的每一步看到什么信息,以及知识如何在多轮对话和会话之间持久化。核心工程问题可以简单表述为:在每一步给模型提供恰好正确的信息,不多不少。上下文太少,Agent 缺乏正确推理所需的状态;太多,则会导致性能下降。 1. 为什么上下文必须被工程化 更大的上下文窗口并不能解决记忆问题。理解这一点,需要从架构层面来分析。 注意力成本。Transformer 的自注意力机制计算上下文中每个 token 之间的成对关系。对于 n 个 token,会产生 n² 个成对权重;计算量和记忆量随上下文长度以 n² 增长。虽然 FlashAttention 和位置编码插值(position-encoding interpolation)等技术可以降低常数因子,但二次方结构是架构性的。这使得上下文窗口成为一种稀缺资源。 U 形注意力曲线。仅靠架构成本并不能解释为什么模型即使在计算可负担的情况下,仍会在长上下文任务上失败。Lost in the Middle 提供了关键的实证结果:在包含 20 个输入文档的多文档问答任务上,当相关文档位于上下文的中间时,准确率比放在开头或结尾时下降超过 30%。这种 U 形性能曲线在不同模型、任务和上下文长度上均成立,包括专门为长上下文训练的模型。这表明信息的摆放位置和信息的客观存在同样重要。一个检索到了正确内容但放置位置不佳的智能体,效果仍然可能比较差。 上下文腐化。上下文腐化(Context Rot)是指随着输入信息的增长,大模型在检索、定位和对上下文信息进行推理的能力会出现非线性的下降。 这并非由于窗口被填满导致的物理截断,而是一种即使在窗口容量充足时也会发生的“性能退化”。根据对 18 种前沿模型(包括 GPT-4.1、Claude Opus 4、Gemini 2.5 等)的对照评估,上下文腐化呈现出以下特征: 早发性(Early Onset):性能退化在上下文窗口远未填满之前就开始了。例如,一个支持 200K Token 的模型,可能在输入达到 50K 时就已经表现出显著的性能损失。 非均匀性与任务特定性(Task-specific):腐化的程度取决于查询的类型。 语义模糊挑战:当查询与目标信息在词汇上不完全匹配时(语义模糊),性能下降比“精确匹配”查询更剧烈。这表明模型在海量信息中识别“隐含关联”的能力最先发生腐化。注:这里描述的是,信息在进入上下文窗口后,模型在思考过程中如何从Prompt里的成千上万个词中提取和关联信息。 复合型失败(Compound Failure):腐化是由两个连续的逻辑失效组成的: 定位失效(Localization):模型无法从海量 Token 中精准找到相关的片段。 推理失效(Reasoning):即便定位到了信息,模型也无法在被大量噪音包围的状态下,对该信息进行正确逻辑处理。 上下文腐化现象并非偶然,对于任何在多个步骤中累积工具结果、中间推理状态和文件内容的智能体来说,这是正常的运行状态。 2. 从 Prompt Engineering 到 Context Engineering Prompt Engineering 优化的是面向单次模型调用的静态文本输入,Context Engineering 优化的则是多步任务中每一步推理时模型可用的完整信息状态。Anthropic 团队在 Effective context engineering for AI agents 中将 Context engineering 定义为: ...

May 27, 2026 · kkBill