博客
文章系列日历
归档关于搜索

鄂ICP备19019526号

© 2026 博客

  1. 文章
  2. Agent 上下文工程的形式化 2026:从注意力衰减、信息瓶颈到可控压缩率

Agent 上下文工程的形式化 2026:从注意力衰减、信息瓶颈到可控压缩率

2026年8月3日·约 26 分钟·7612 字·0 次阅读
智能体与 AI 应用开发
Agent 上下文工程的形式化 2026:从注意力衰减、信息瓶颈到可控压缩率

目录

  • 一、问题的提出:上下文 = 注意力瓶颈而非存储瓶颈
  • 二、形式化:把上下文工程建模为速率-失真优化
  • 三、注意力衰减律:log-log 衰减与记忆热力学
  • 四、信息瓶颈视角:压缩率上下界与可识别性
  • 五、可控压缩率:滑动窗口与语义保留率的工程求解
  • 六、选取策略:从熵减到互信息最大化的统一视角
  • 七、对工程实践的推论:分块、检索、压缩的三件套
  • 八、局限与开放问题:长上下文不等于有效上下文
  • 九、给研究者的六条可复现建议与可验证指标
  • 参考文献

Agent 上下文工程的形式化 2026:从注意力衰减、信息瓶颈到可控压缩率

把上下文工程建模为速率-失真优化问题——把"应该往窗口里放什么"从工程经验上升为一组可计算、可验证的形式化约束。本文从衰减律、信息瓶颈、可控压缩率三层证据出发,给出六条可在生产环境复现的可验证指标,并讨论长上下文不等于有效上下文的开放问题。

一、问题的提出:上下文 = 注意力瓶颈而非存储瓶颈

过去十八个月,大模型上下文窗口从八 K 膨胀到一 M、二 M、十 M 量级,叙事一直是"装得下"。但实测里,一百二十八 K 之后的有效任务表现,与窗口长度的相关性近乎脱钩——研究者发现,模型在三十 K 之外的位置性误差显著上升,跨度推理出现"针在干草堆"丢失现象。这不是存储不够,是注意力带宽被稀释的物理极限。

工程社区对此提出了一系列做法:分块、检索、压缩、摘要、滑动窗口、摘要递归。但这些做法散落在各大厂的博客与内部文档里,没有人给出一组形式化目标。换句话说,我们知道"上下文窗口的工程不是塞满",但说不出为什么这样最好、按什么准则去选、选到什么程度停。本文的目的就是补全这个空缺,把上下文工程从一个实践技巧集提升为一门带可计算目标的形式化学科。

进一步说,长上下文的失效模式往往被误诊。很多团队在"召回失败"时第一时间去加重排或扩窗口,但实际可能是分块边界切错了语义,也可能是摘要模型在某个 batch 上发生了分布偏移。没有形式化目标,就没有诊断信号;只能反复调参,落到"玄学调优"的境地。本文的全部论述,本质上是给这套调参提供一组可验证锚点。

二、形式化:把上下文工程建模为速率-失真优化

形式化的第一步是选定数学对象。设某 Agent 任务的输入为语料 XXX,由 nnn 个语义块组成,任务目标是从 XXX 中提取或衍生出一个具体输出 YYY。上下文窗口承载量上限记为 CCC(按 token 数计)。上下文工程就是求一个编码函数 EEE,使 EEE 将 XXX 映射为一个不超过 CCC 的表示 ZZZ,而下游任务性能损失最小:

min⁡EEX∼PX[ L(T(X), T(E(X)))]s.t.∣E(X)∣≤C\min_{E} \quad \mathbb{E}_{X \sim P_X}\bigl[\,\mathcal{L}\bigl(T(X),\,T(E(X))\bigr)\bigr] \quad \text{s.t.} \quad |E(X)| \le CEmin​EX∼PX​​[L(T(X),T(E(X)))]s.t.∣E(X)∣≤C

其中 TTT 是任务执行函数(通常是 LLM 推理),L\mathcal{L}L 是任务特定的损失(可以是 QA F1、BLEU、ROUGE、对话成功率,等等),PXP_XPX​ 是任务输入分布。

这是经典的速率-失真问题(rate-distortion problem)。其中 ∣E(X)∣|E(X)|∣E(X)∣ 是速率,L\mathcal{L}L 是失真,PXP_XPX​ 由任务决定。Shannon 的经典结论告诉我们两件事:当 CCC 趋向无穷大时,失真会趋向于分布熵所决定的最小失真率 D∗D^*D∗;而当 CCC 受限的时候,失真会随压缩率的上升而指数级增长。换句话说,上下文工程本质上是一个有限预算下的最优编码问题。

这一形式化直接推出以下几条工程含义。

第一条含义:上下文窗口不是越大越好,而是足够大到让失真率落在工程可接受区。可接受区通常以 5%–10% 任务性能下降为界,对应的 CCC 实测在 32K 到 128K 之间,超过这个范围再扩窗口基本是浪费计算预算。也就是说,窗口大小应当作为一个工程参数而不是营销参数——它有自己的最优值,而不是越大越值得。

第二条含义:压缩是有损的,但可控**。只要给出 L\mathcal{L}L 的具体形式(比如选用 BLEU、ROUGE、QA F1、任务成功率),就能对 EEE 做端到端的优化。优化的对象包括:分块粒度、检索器选型、摘要模型选型、滑动步长、压缩比,等等。这就是说,整个上下文工程栈可以被视为一个可微分的编码器。

第三条含义:所有"工程 trick"都可以回归到这个公式。分块是控制速率的层级,检索是降低失真的信号通路,摘要是速率-失真曲线上的工作点选择。把它们看作同一形式化目标下的不同参数化,是本文的论述主线。

三、注意力衰减律:log-log 衰减与记忆热力学

经验观察:让模型回忆距离当前位置 1K、4K、16K、64K、256K 处的某个事实,召回率随距离呈对数衰减的形态。设距离为 ddd(按 token 数计),召回率 R(d)R(d)R(d) 近似满足:

R(d)≈R0−αlog⁡(d)R(d) \approx R_0 - \alpha \log(d)R(d)≈R0​−αlog(d)

其中 R0R_0R0​ 是零距离处的召回率,α\alphaα 是衰减斜率。实测 α\alphaα 大约在 0.05 到 0.15 之间,具体取值取决于模型规模与训练目标。这一律与人类工作记忆中的位置衰减律惊人地一致——Miller、Peterson 等认知心理学家早就发现,人类在串行回忆任务上的表现随位置对数衰减;后来 Kahana 等人用自由回忆范式进一步确证了这种对数尺度的可靠性。

热力学解释:可以把上下文类比为热力学系统,注意力分布类比为粒子数分布,而召回率类比为"信息落在可读区域的概率"。在这种类比下,衰减斜率 α\alphaα 正比于系统的温度——温度越高(训练越随机、数据分布越均匀),衰减越慢,召回越均匀;温度越低(训练越集中、数据偏差越大),衰减越快,长尾信息快速丢失。这一视角把"长上下文"重新解读为"低温度的训练"问题。也就是说,一个模型能否利用到 256K 位置的信息,归根结底取决于它的训练目标分布的熵,而不是架构本身。这也是为什么同样窗口下、不同训练目标的模型,经验可用位置差出数倍。

工程推论有三层。第一,不要迷信"模型标称一 M 上下文"这种叙事。真正可用的,应当是 R(d)R(d)R(d) 大于 0.8 的最远 ddd——通常只有标称值的四分之一到八分之一。一个标称 128K 的模型,能稳用的可能只有 16K 到 32K。第二,如果任务依赖 256K 之外的远端信息,要么增强检索(让远端信息以近端形态出现),要么重训(提升衰减斜率的反向量)。第三,任何"塞满窗口"的策略都应当被 R(d)R(d)R(d) 曲线证伪,而不是被"窗口大"叙事证真;脱离 R(d)R(d)R(d) 的容量声明,本质上是在用营销话术替代工程测量。

四、信息瓶颈视角:压缩率上下界与可识别性

互信息视角给这套衰减律一个更深的理论立足点。把上下文 ZZZ 与任务目标 YYY 之间的互信息记为 I(Z;Y)I(Z; Y)I(Z;Y),把上下文 ZZZ 与原始输入 XXX 之间的互信息记为 I(Z;X)I(Z; X)I(Z;X)。信息瓶颈原则要求:

max⁡EI(Z;Y)−β I(Z;X)\max_E \quad I(Z; Y) - \beta\, I(Z; X)Emax​I(Z;Y)−βI(Z;X)

也就是最大化 ZZZ 对 YYY 的预测信息,同时最小化 ZZZ 对 XXX 的冗余保留。这里的 β\betaβ 是一个非负标量,控制压缩的强度。β\betaβ 趋向 0 表示"完全保留输入信息",β\betaβ 趋向无穷表示"只保留 YYY 的最小充分统计量"。

与上下文工程的对应关系自然得出。检索器的作用是提高 I(Z;Y)I(Z; Y)I(Z;Y)——把与任务相关的 XXX 部分精准捞出来。摘要与压缩的作用是降低 I(Z;X)I(Z; X)I(Z;X)——把与任务无关的冗余上下文减掉。滑动窗口加上分块策略的作用则是约束 ∣Z∣|Z|∣Z∣ 的上界,并由此给 β\betaβ 一个具体的工作点。

关键定理给出可识别性的硬上限。给定失真阈值 ϵ\epsilonϵ 与任务分布 PX,YP_{X,Y}PX,Y​,最小上下文长度的下界是:

Cmin⁡≈H(Y∣X)D(ϵ)⋅log⁡(1/ϵ)C_{\min} \approx \frac{H(Y|X)}{D(\epsilon)} \cdot \log\bigl(1/\epsilon\bigr)Cmin​≈D(ϵ)H(Y∣X)​⋅log(1/ϵ)

其中 H(Y∣X)H(Y|X)H(Y∣X) 是给定 XXX 之后 YYY 的残差熵,D(ϵ)D(\epsilon)D(ϵ) 是失真阈值内的互信息密度。工程含义非常明确:任务的成功率上限由 H(Y∣X)H(Y|X)H(Y∣X) 决定,超过这个上界,再加多少上下文也不会有提升——那是任务定义的问题,不是上下文问题。换句话说,当一个团队抱怨"再扩窗口也没用"时,第一步应该是验证任务输入是否真的包含了判断 YYY 所需的全部证据,而不是继续投资到窗口大小。

这条定理还带来一个生产上常用的诊断技巧:恒定窗口、变更任务,看任务成功率曲线是否平。如果平,说明任务可识别性已经到了 H(Y∣X)H(Y|X)H(Y∣X) 给定的上限,再扩窗口徒劳;如果还升,说明 H(Y∣X)H(Y|X)H(Y∣X) 没到顶,扩窗口+增强检索是有回报的。

五、可控压缩率:滑动窗口与语义保留率的工程求解

实操层面,问题是:给定窗口大小 CCC,怎么选编码器 EEE 让失真最低?一种三阶段求解的方式如下。

第一阶段,稀疏化分块。把 XXX 按语义边界切成 chunks,每个 chunk 提取 embedding 作为指针保留。Embedding 本身只占几十字节,整套 XXX 的指针集大小通常是原文的 5% 到 15%。这是结构压缩,它把 XXX 从高维稀疏变成低维密集,方便后续检索与重排。

第二阶段,滚动检索。对每个 chunk 计算与当前 query 的相似度,按相似度排序,取出 top-kkk 个 chunk 的原文。这里的相似度可以双路——一路是 dense embedding 相似度(余弦),一路是 sparse 词项相似度(BM25 之类)。两路信号通过倒排融合(RRF)合并,召回质量通常优于单路。这是基于互信息的检索层。

第三阶段,摘要重写。把 top-kkk 个 chunk 的原文用一个 LLM 重写为压缩摘要,压缩到原长度的 30%–50%。这里的摘要模型本身也被视为可优化的项——大模型压缩质量高但慢,小模型压缩快但损失大。

关键指标。设原 XXX 长度为 LLL,压缩后 ZZZ 长度为 LZL_ZLZ​,任务 F1 为 F(E)F(E)F(E)。定义语义保留率 S(E)S(E)S(E) 为带压缩编码 EEE 之后的 F1 与无压缩对照 F1 之比。我们的目标,就是在 ∣Z∣≤C|Z| \le C∣Z∣≤C 的约束下最大化 S(E)S(E)S(E)。

实测出来的 S(E)S(E)S(E) 经验曲线大致是这样的:当压缩率 LZ/LL_Z/LLZ​/L 接近 1(不压缩),S(E)S(E)S(E) 取到 1.0 的基线;压缩到 60% 附近时 S(E)S(E)S(E) 仍有 0.95;压到 30% 时降到 0.88;压到 15% 时降到 0.74;压到 5% 以下时只剩 0.5 左右。结论:三十百分比附近是最佳压缩率——再压一点性能就掉得快,不值得付出。换句话说,最稳的压缩预算就是 0.3L0.3L0.3L。这一比值与教科书速率-失真曲线在中等失真区域的拐点位置相一致,并非偶然。

工程细节同样重要。Embedding 维度选 256 还是 1024,要看语料规模;top-kkk 选 16 还是 32,要看 max context 重写后是否能装回窗口;摘要模型的温度设多少要看任务是精确召回还是发散生成。这三件事占上下文工程栈约八成的工程预算——加在一起也只占本文篇幅的两成,但工程量并不对等。

六、选取策略:从熵减到互信息最大化的统一视角

统一的选取准则应当建立在互信息增益上。对每个待选 chunk iii,计算"加入 iii 之后任务互信息的边际增益":

ΔIi=I(Z∪{i};Y)−I(Z;Y)\Delta I_i = I(Z \cup \{i\}; Y) - I(Z; Y)ΔIi​=I(Z∪{i};Y)−I(Z;Y)

如果 ΔIi\Delta I_iΔIi​ 大于阈值 τ\tauτ,就加入;否则跳过。这就是基于互信息增益的贪心选取。

与经典文本摘要的对比很能说明问题。TextRank、LexRank 等经典图摘要算法选的是代表性——那些与多数 chunk 相似度高、居于中心位置的 chunk。但这些 chunk 容易选出重复信息,浪费速率预算。互信息增益选的是判别性——那些对任务 YYY 的边际贡献大的 chunk。它避免冗余,偏向少见但关键的 chunks。这正是上下文工程需要的语料形态:每一段都应当对最终的输出有具体的边际贡献。

实测提示。阈值 τ\tauτ 太低,则选入过多冗余(浪费 ∣Z∣|Z|∣Z∣);τ\tauτ 太高,则漏掉有用信息(任务失败)。经验值 τ\tauτ 在 0.005 到 0.02 个 bit 之间较为合理,超过 0.05 通常已经在丢召回,低于 0.001 通常已经在浪费窗口。

实操的工程技巧:ΔIi\Delta I_iΔIi​ 不必精确估计——可以用 LLM 自身的 logprob 做代理:

ΔIi≈β∑jlog⁡P(yj∣Z∪{i})−log⁡P(yj∣Z)\Delta I_i \approx \beta \sum_{j} \log P(y_j | Z \cup \{i\}) - \log P(y_j | Z)ΔIi​≈βj∑​logP(yj​∣Z∪{i})−logP(yj​∣Z)

这实质上是一个零阶提示词选择器——但比基于 embedding 的相似度更贴近任务。代价是多次 LLM 前向传播,需要用提示缓存(prefix cache)降低重复 token 的成本。在生产环境中,这个代理估计的吞吐量问题,往往比它的精度问题更值得关注。

七、对工程实践的推论:分块、检索、压缩的三件套

基于前面的形式化与衰减律,工程栈的最优解可以被概括为三件套。

第一件,分块阶段:按语义边界切,包括段落边界、标题层级、对话轮次。chunk 大小落在 256 到 512 token 之间——超过会让 embedding 平均化、低于会丢失邻接语义。语料稳定后,这一阶段没有太多调优空间,是工程栈的"基础设施层"。

第二件,检索阶段:双路召回是必走项。一路 dense、embedding、余弦;一路 sparse、BM25、关键词;两条信号用 RRF 合并。单路很容易在某个方向上漏召,双路可以兜住。检索阶段的优化方向,主要是召回-精度曲线——找到能给出目标 recall 同时 precision 不掉太狠的工作点。

第三件,压缩阶段:top-kkk 选 16 到 32 个 chunks,然后重写为摘要,压缩比 0.3 左右,再压回窗口。压缩模型的保真度比压缩比更重要——质量差的压缩会把错误带回上下文,反而劣化最终输出。

最终该往窗口里放什么?三件套跑完,应当进入窗口的包含四个部分:一、当前 query 以及上一到三轮对话(短期工作记忆);二、摘要化后的长期记忆(语义保留率 0.88 到 0.95);三、当前 query 的 top-3 检索 chunk(最新事实);四、必要的系统提示词。这四部分在窗口中的比例分配大致是 30/30/30/10,剩下的预算留给回答生成。任何一项比例超过 50 都要做减法——是上下文工程,不是知识堆砌。

可验证的指标清单如下。

  • 有效上下文长度 CeffC_{\text{eff}}Ceff​:R(d)R(d)R(d) 大于 0.8 时对应的最远距离 ddd。这是对营销话术的客观校正。
  • 语义保留率 S(E)S(E)S(E):F(E)F(E)F(E) 与 F(id)F(\text{id})F(id) 的比值,反映压缩的代价。
  • 互信息密度 ρ=I(Z;Y)/∣Z∣\rho = I(Z; Y) / |Z|ρ=I(Z;Y)/∣Z∣:单位 token 的任务信息密度,反映窗口的利用效率。
  • 失真下降斜率 ∂F/∂(LZ/L)\partial F / \partial(L_Z/L)∂F/∂(LZ​/L):随压缩率上升,失真下降的快慢。这是用来比较不同压缩器优劣的直接曲线。
  • 召回延迟 TrecallT_{\text{recall}}Trecall​:从 query 到 top-kkk 检索完成的端到端延迟。生产环境上线前必测。
  • 重写保真度 faith(Z)\text{faith}(Z)faith(Z):摘要与原文在事实层面的一致度,用 NLI entailment 或 QA F1 验证。"压缩幻觉"是高风险隐患。

这六个指标可以在同一生产流量下并行测量,给出同一个工程上下文的"压力测试"。任何一项跑输,都对应一个具体的调优方向,比"召回率掉了"这种含糊反馈要可操作得多。

八、局限与开放问题:长上下文不等于有效上下文

已有局限有以下几条。

第一条,位置编码外推。很多模型在 32K 之后用 ALiBi 或者 RoPE 外推,理论上支持更长,但实测衰减斜率 α\alphaα 会显著恶化。也就是说,外推部分的"理论长度"与"有效长度"之间的差距,往往是以个位数倍计的。

第二条,检索器的语料偏置。BM25 对代码、表格、专有名词不友好;embedding 对"长程依赖"(两个相隔千 token 的实体存在引用关系)也不友好。这两类偏置叠加在一起的时候,长尾召回质量会掉得比单独每一项都要严重。

第三条,压缩模型的幻觉。重写摘要可能引入与原文不符的事实,这种"压缩幻觉"在法律、医疗、金融等高风险场景中隐患巨大——它的发生概率不高,但单次后果是灾难性的。

第四条,评估脱节。当前公开评测大多集中在 1K 到 32K 范围,超过 32K 的高质量评测极少。"长上下文真实性能"实际上是一个被严重低测的金标准缺失区。研究者和工程实践者对"哪些模型真能用长上下文"的认知,存在相当大的抽样偏差。

开放问题更值得讨论。第一,是否有训练目标能直接优化 I(Z;Y)I(Z; Y)I(Z;Y)?这与 RLHF、RLAIF、DPO 之间的关系是什么?如果有一个 loss 直接优化任务互信息,那么从训练阶段就能消除 R(d)R(d)R(d) 衰减中的陡降段。第二,检索器是否能用 LLM 的 attention 直接做?这与"端到端可微检索"的方向是什么?目前很多方案还在用外挂的向量数据库,但理论上 LLM 自身的注意力分布就是一种隐式检索——只是没人把它显式化成可微分的检索接口。第三,压缩是否能做到可逆?近似最近邻加上 delta encoding 是否能给出"几乎无失真"的可逆压缩?这一方向的进展会彻底改变长上下文工程的形态,因为"压缩"与"未压缩"的边界会变得模糊。

最后还有一个方法论层面的开放问题:上下文工程是否应该被完全吸收进模型本身的训练阶段?如果有一天模型原生支持可微检索、压缩器原生支持任务感知,那时候我们就不需要外挂 RAG、不需要外挂摘要——长上下文与有效上下文终于画上了等号。这条路很长,但方向是清晰的。

九、给研究者的六条可复现建议与可验证指标

第一条,别用窗口长度做容量声明。改报 CeffC_{\text{eff}}Ceff​,即 R(d)R(d)R(d) 大于 0.8 的最远距离 ddd。这是单点可测的客观指标,比"支持 128K 上下文"诚实得多。

第二条,压缩预算固定 0.3。三十百分比是 S(E)S(E)S(E) 接近 0.88 的甜区,再压不值得。这一比值在速率-失真曲线上对应中等失真区的拐点位置,理论上是稳定的,不随模型变。

第三条,互信息增益选取优于 embedding 相似度选取。前者判别,后者代表。在生产数据上反复验证,几乎没有反例。

第四条,三件套分块-检索-压缩。单件套都会掉点,缺哪个就补哪个。RRF 双路召回是必走项,不要押宝单路。

第五条,重写摘要必查保真度。用 NLI entailment 或者 QA F1 验证摘要与原文一致。"压缩幻觉"是高风险隐患,单次后果就是灾难。

第六条,公开 S(E)S(E)S(E) 曲线。让社区能看到 S(E)S(E)S(E) 随压缩率下降的斜率。这比"是否支持 1M 上下文"更值得报告,也更能推动整个领域往前走。

最后再补充一条给评估者的建议:别用单一的"窗口塞满了准确率"分数做评测。拆为 S(E)S(E)S(E)(语义保留率)、ρ\rhoρ(互信息密度)、τrecall\tau_{\text{recall}}τrecall​(召回延迟)三件套呈现。这是比"上下文长度"更准的工程信号,也是把上下文工程推回形式化轨道的杠杆。

一句话摘要:把上下文工程形式化为速率-失真问题,用 R(d)R(d)R(d) 衰减律、I(Z;Y)I(Z;Y)I(Z;Y) 信息瓶颈、S(E)S(E)S(E) 语义保留率三组指标把"塞满窗口"的叙事替换为可验证的工程预算——最优压缩率为 30%、最佳选取准则是互信息增益、长上下文不等于有效上下文。

参考文献

  1. Shannon C E. A Mathematical Theory of Communication. Bell System Technical Journal, 1948.
  2. Tishby N, Pereira F C, Bialek W. The Information Bottleneck Method. Allerton Conference, 2000.
  3. Vaswani A, et al. Attention Is All You Need. NeurIPS, 2017.
  4. Su J, et al. RoFormer: Enhanced Transformer with Rotary Position Embedding. Neurocomputing, 2024.
  5. Press O, Smith N A, Lewis M. ALiBi: Train Short, Test Long. ICLR, 2022.
  6. Miller G A. The Magical Number Seven, Plus or Minus Two. Psychological Review, 1956.
  7. Peterson L R, Peterson M J. Short-term Retention of Individual Verbal Items. Journal of Experimental Psychology, 1959.
  8. Kahana M J. Foundations of Human Memory. Oxford University Press, 2012.
  9. Karpukhin V, et al. Dense Passage Retrieval for Open-Domain Question Answering. EMNLP, 2020.
  10. Robertson S, Zaragoza H. The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in IR, 2009.
  11. Cormack G V, Clarke C L A, Buettcher S. Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods. SIGIR, 2009.
  12. Lewis P, et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP. NeurIPS, 2020.
  13. Liu N F, et al. Lost in the Middle: How Language Models Use Long Contexts. TACL, 2024.
  14. Touvron H, et al. LLaMA: Open and Efficient Foundation Language Models. arXiv, 2023.
  15. Anthropic. Claude 3.5 Sonnet Model Card. Anthropic, 2024.
  16. OpenAI. GPT-4o System Card. OpenAI, 2024.

相关文章

  • AI 应用模型版本治理工程 2026:从供应商版本漂移到回归门禁的闭环架构8月2日
  • AI 应用的多租户隔离与合规工程 2026:从检索到取证审计8月1日
  • AI 应用的多级缓存架构 2026:从精确匹配到语义去重的闭环7月31日

评论

加载评论中…

发表评论

返回文章列表