<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Context on kkBill&#39;s Blog</title>
    <link>https://kkbill.github.io/tags/context/</link>
    <description>Recent content in Context on kkBill&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sun, 31 May 2026 21:11:17 +0800</lastBuildDate>
    <atom:link href="https://kkbill.github.io/tags/context/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Harness Engineering 04. Context and Memory management</title>
      <link>https://kkbill.github.io/posts/harness-engineering-04-context/</link>
      <pubDate>Wed, 27 May 2026 21:00:00 +0800</pubDate>
      <guid>https://kkbill.github.io/posts/harness-engineering-04-context/</guid>
      <description>&lt;p&gt;这一层控制模型在执行的每一步看到什么信息，以及知识如何在多轮对话和会话之间持久化。核心工程问题可以简单表述为：在每一步给模型提供恰好正确的信息，不多不少。上下文太少，Agent 缺乏正确推理所需的状态；太多，则会导致性能下降。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image.png&#34; loading=&#34;lazy&#34; src=&#34;https://kkbill.github.io/posts/harness-engineering-04-context/images/image00.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;1-为什么上下文必须被工程化&#34;&gt;1. 为什么上下文必须被工程化&lt;/h2&gt;
&lt;p&gt;更大的上下文窗口并不能解决记忆问题。理解这一点，需要从架构层面来分析。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意力成本&lt;/strong&gt;。Transformer 的自注意力机制计算上下文中每个 token 之间的成对关系。对于 n 个 token，会产生 n² 个成对权重；计算量和记忆量随上下文长度以 n² 增长。虽然 FlashAttention 和位置编码插值(position-encoding interpolation)等技术可以降低常数因子，但二次方结构是架构性的。这使得上下文窗口成为一种稀缺资源。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;U 形注意力曲线&lt;/strong&gt;。仅靠架构成本并不能解释为什么模型即使在计算可负担的情况下，仍会在长上下文任务上失败。&lt;a href=&#34;https://arxiv.org/abs/2307.03172&#34;&gt;Lost in the Middle&lt;/a&gt; 提供了关键的实证结果：在包含 20 个输入文档的多文档问答任务上，&lt;strong&gt;当相关文档位于上下文的中间时，准确率比放在开头或结尾时下降超过 30%&lt;/strong&gt;。&lt;strong&gt;这种 U 形性能曲线在不同模型、任务和上下文长度上均成立，包括专门为长上下文训练的模型&lt;/strong&gt;。这表明信息的摆放位置和信息的客观存在同样重要。一个检索到了正确内容但放置位置不佳的智能体，效果仍然可能比较差。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;上下文腐化&lt;/strong&gt;。&lt;a href=&#34;https://www.trychroma.com/research/context-rot&#34;&gt;上下文腐化&lt;/a&gt;(Context Rot)是指随着输入信息的增长，大模型在检索、定位和对上下文信息进行推理的能力会出现非线性的下降。 这并非由于窗口被填满导致的物理截断，而是一种即使在窗口容量充足时也会发生的“性能退化”。根据对 18 种前沿模型（包括 GPT-4.1、Claude Opus 4、Gemini 2.5 等）的对照评估，上下文腐化呈现出以下特征：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;早发性(Early Onset)&lt;/strong&gt;：性能退化在上下文窗口远未填满之前就开始了。例如，一个支持 200K Token 的模型，可能在输入达到 50K 时就已经表现出显著的性能损失。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;非均匀性与任务特定性(Task-specific)&lt;/strong&gt;：腐化的程度取决于查询的类型。
&lt;ul&gt;
&lt;li&gt;语义模糊挑战：当查询与目标信息在词汇上不完全匹配时（语义模糊），性能下降比“精确匹配”查询更剧烈。这表明模型在海量信息中识别“隐含关联”的能力最先发生腐化。&lt;em&gt;注：这里描述的是，信息在进入上下文窗口后，模型在思考过程中如何从Prompt里的成千上万个词中提取和关联信息。&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复合型失败(Compound Failure)&lt;/strong&gt;：腐化是由两个连续的逻辑失效组成的：
&lt;ol&gt;
&lt;li&gt;定位失效（Localization）：模型无法从海量 Token 中精准找到相关的片段。&lt;/li&gt;
&lt;li&gt;推理失效（Reasoning）：即便定位到了信息，模型也无法在被大量噪音包围的状态下，对该信息进行正确逻辑处理。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上下文腐化现象并非偶然，对于任何在多个步骤中累积工具结果、中间推理状态和文件内容的智能体来说，这是正常的运行状态。&lt;/p&gt;
&lt;h2 id=&#34;2-从-prompt-engineering-到-context-engineering&#34;&gt;2. 从 Prompt Engineering 到 Context Engineering&lt;/h2&gt;
&lt;p&gt;Prompt Engineering 优化的是面向单次模型调用的静态文本输入，Context Engineering 优化的则是多步任务中每一步推理时模型可用的完整信息状态。Anthropic 团队在 &lt;a href=&#34;https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents&#34;&gt;&lt;strong&gt;Effective context engineering for AI agents&lt;/strong&gt;&lt;/a&gt; 中将 Context engineering 定义为：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
