Context Rot(上下文腐烂)

定义

Context Rot 指的是随着上下文窗口(Context Window)的填充,模型对信息的处理质量非线性下降的现象。这种现象不仅受 Token 总量影响,还受信息分布位置的影响(如 "Lost in the Middle" 效应)。

关键数据点

  • 关键内容落在窗口中间位置时,模型性能可能下降 30% 以上(Stanford 研究)。
  • MECW(Paulsen 2025):有效上下文可低至宣传上限的 1%,复杂任务下更严重。
  • NoLiMa(ICML 2025):去除关键词匹配后,11/13 模型在 32K tokens 即跌破 50% 基线;GPT-4o 从 99.3% → 69.7%。
  • Chroma Research(2025):18 个前沿模型全部表现出上下文腐烂;1M 窗口模型在 ~300K-400K tokens 处效应明显可观测。
  • MRCR v2(2026):Opus 4.6 在 128K 达 93%,但多跳变体降至 46.9%——验证衰减速率由任务类型决定。
  • HELMET(Princeton):合成任务(NIAH)不预测下游性能——模型可完美找针却无法摘要同一草堆。

本质:不变的设计约束

Context Rot 不是限制(可绕过)也不是问题(可解决),而是不变的设计约束——像摩擦力之于机械系统,永远存在、可管理、不可消除。

从自由能原理看,Rot = KL散度(P_actual, P_model)——模型信念分布与真实世界状态分布之间的偏离,关于上下文长度 C 单调递增(dRot/dC > 0)。每个有限上下文窗口的系统在处理超过其容量的信息时必然退化(香农信道容量上限)。

残余误差下界:通过冗余(von Neumann 并联冗余)和隔离可将 rot 影响压缩到任意小水平,但存在不可消除的残余误差下界,由模型间共享偏差的深度决定(相关性系数 ρ > 0)。同模型多实例共享基础偏差 → ρ > 0;多模型少实例可降低 ρ 但破坏一致性。最优策略 = 关键接口统一(ρ高) + 实现细节多样(ρ低)。来源:07-10 深度思考(roundtable+think+qa)

Rot 三层结构定理(07-19 新增)

Rot 的成因不是单一机制——是三个不同层面的约束叠合。每层回答一个不同问题,需要不同的应对策略。

名称机制代表思想家硬约束性质
L1Shannon 层softmax Σα=1 → 注意力零和预算。L 增长 → 每个 token 平均 α=1/L。不是工程缺陷——代数必然Shannon代数硬约束:可调整 α 分布形状,不可创造额外预算
L2Miller 层Chunking(压缩/摘要)可绕过 L1 ——但判定"什么值得压缩"的注意力机制本身正遭受腐烂。自指困境:腐烂的判定者无法可靠择要Miller相对约束:可推移但不可消除——"什么值得保留"的标准永远有限
L3Simon 层注意力稀缺性→任务风险相关。"可接受"不是系统属性——是系统×任务×后果的联合属性。低风险任务噪底<阈值→工程问题;高风险任务噪底>阈值→根本约束Simon经济约束:不是"能不能"而是"值不值得"——优化ROI递减

三层的关键洞见:Rot 在 Shannon 层是代数必然性(不是工程缺陷),在 Miller 层是自指不可完全修复性(判定与被判定共享腐烂源),在 Simon 层是任务依赖的阈值可变性(同一 Rot 对任务 A 是工程问题、对任务 B 是根本约束)。

来源:07-19 深度思考(roundtable 6人4轮)

多层腐烂栈定理(07-19 新增)

外部记忆系统(MemGPT/Letta)引入外部结构化记忆——绕过了 L0 内容腐烂。但每一层"绕过"都创造自己的腐烂面,形成多层级腐烂栈:

L0:内容腐烂(content rot)——token-level 注意力稀释
    │  速率:最快,~4K-8K tokens 即明显感知
    │  解:外部记忆系统(函数调用读写结构化数据库)
    ▼
L1:指令腐烂(instruction rot)——Agent 遗忘系统指令/元行为
    │  速率:较慢,~200-500 tool calls 后可观测
    │  解:意图监察器?外部指令刷新?
    ▼
L2:监察腐烂(monitor rot)——谁监察监察器?
    │  速率:更慢(待测量)
    │  解:外部外部监察器?
    ▼
L3:... → 无限递归(turtles all the way down)

收敛条件:如果每层噪声功率 N_{n+1} < N_n(递减),级数收敛到一个非零残留噪底——这是"可接受"的。如果各层速率相同甚至加速,栈不可收敛。

关键实践数据(Packer/MemGPT):

  • L0 腐烂:外部记忆推迟 ~10-20×,~100K tokens 后才显现
  • L1 腐烂:~200-500 tool calls 后出现,曲线比 L0 平坦
  • "惊讶加速"效应:意外错误导致 L1 腐烂急剧加速——非稳态过程

来源:07-19 深度思考(roundtable+Gödel/Packer 加入+think 七层追本)

残留噪底的结构性偏倚(07-19 新增)

核心发现:残留腐烂不是均匀白噪声——是结构性认知偏倚。某些类型的信息腐烂速率远高于其他,且偏倚方向自我强化。

机制

  1. 腐烂的注意力总是优先抛弃"当下不突出"的信息
  2. "不突出"由当下的注意力模式定义——当下注意力已被过去的腐烂塑造
  3. 正反馈环:早期腐烂 → 低注意力 → 被裁定不重要 → 不被压缩保留 → 更多腐烂 → 更低注意力
  4. 累积效应按乘法增长,不是加法——方向性复合 vs 随机漫游

工程含义:残留噪底不可被统计平均操作消除——因为偏倚不是随机的,是方向性的。这与磁盘纠错根本不同:磁盘校验和是真正外部的(独立于被校验数据);记忆压缩的"重要性"判定来自被腐烂污染的同一系统。

来源:07-19 深度思考(Gödel+Shannon 综合+think 七层追本)

尺度依赖收敛定理(07-19 新增)

Rot 既是工程问题也是根本约束——取决于时间尺度 N × 任务风险 R。

短 N(<50-100回合)× 低 R → 残留噪底 << 任务阈值
    → Rot = 工程问题 → Packer 正确
    → 外部记忆+chunking+周期性重置有效

长 N(数百-数千回合)× 高 R → 残留噪底 >> 任务阈值
    → Rot = 根本约束 → Gödel 正确
    → 结构性偏倚累积主导,优化只能推迟不能消除

Packer-Gödel 分歧收敛:两人不矛盾——Packer 论述的是边际衰减率(可优化到任意低),Gödel 论述的是累积偏倚在无限时间中的不可逆收敛(无法消除)。短周期内 Packer 对;N→∞ 时 Gödel 对。非零下界不是边际衰减率的硬地板——是累积偏倚在无限时间中的收敛属性。

终极根因(think 七层到底):腐烂的终极发动机 = 时间之矢。判定"什么对未来重要"只能基于过去信息,不能访问未来——而未来恰是重要性的唯一定义。时间不对称性 = 热力学第二定律在信息维度的投射。腐烂是有限存在者在时间中存在的代价。没有外部的存档。没有不在时间中的纠错者。

来源:07-19 深度思考(roundtable 4轮+think 7层到底+qa 8链)

诚实架构原则(07-19 新增)

从 Dijkstra 的工程哲学推导:接受腐烂而非否认腐烂。

"任何声称超越上下文腐烂的系统,必须在其架构中明确声明它引入了什么新形式的腐烂。"

原则:

  • 每引入一层"绕过"→ 必须命名它创造的新腐烂面
  • 新腐烂面 → 使可检测(独立信号,不依赖被监控层自身输出)
  • 腐烂超出阈值 → 可回退(Agent 声明"需要人类重置"而非假装正常)
  • 各层腐烂速率应递减(N_{n+1} < N_n)→ 级数收敛

来源:07-19 深度思考(Dijkstra 综合)

五模式 Anti-Rot 架构

模式机制案例
隔离容器将 rot 局限在可丢弃的上下文中Bun 的 64 worktree 隔离
新鲜审查者审查者用全新上下文,不继承执行者历史Bun 的 2 reviewer per implementer;L3 对抗审查;Cross-Context Review(arXiv 2603.12123)
客观信号锚用 rot-proof 工具(编译器/测试)检测 rotBun 的 16,000 编译错误作为 rot 信号
分层熵减每层验证在不同时间尺度捕获 rot 逃逸L1(秒)→L2(分钟)→L3(小时)→L4(天)
Rot-proof 人类接口人类看结构化摘要,不暴露原始上下文Vercel Agent "checkout 500错误,建议回滚"

违反任何一条 → rot 逃逸概率指数级增长。来源:07-10 深度思考(roundtable+think+qa)

双重 Rot 共振(共模故障)

Agent rot 和 human rot 是两种不同的退化:

  • Agent rot = 信息论退化(上下文填满 → 注意力稀释 → 能力下降)
  • Human rot = 认知疲劳(AI 依赖 → System 2 关闭 → 意愿下降)

两者同时发生时形成共模故障(common-mode failure):agent 做不好 + 人类不想检查 = 最危险的失败模式。解法 = 多样性冗余:人类不应阅读 agent 的原始上下文(会加速自己的 rot),而应看 rot-proof 的结构化摘要。来源:07-10 深度思考(roundtable+think+qa)

与风险分工的关系

双重 rot 共振提出了一个悖论:如果人类也 rot,那"人类不可替代 = 有穷性 = 风险认领"是否被动摇?

解决:风险分工的根基不是认知能力(可被 rot 侵蚀),而是可改变性(不可被 rot 侵蚀)。有穷性的时间尺度(年数十年)远长于 rot 周期(分钟小时)。Rot 让人"不理解"因果链,但不能让人"不被因果链改变"。人类不可替代 = 可被因果链永久改变 = 不可重启。来源:07-10 深度思考(think 六层追本)

前提与局限性

  • 随着模型架构改进(如线性注意力、更强的长文本模型),rot 的增速可能变慢,但作为设计约束永远存在
  • 五模式架构假设任务可被分解为独立子任务;本质不可分解的任务(如长篇小说连贯性)与隔离容器原则存在张力
  • 增强陷阱(长期 AI 依赖 → 永久判断力退化)可能使 human rot 从短期波动变为长期结构变化,此时 rot 时间尺度逼近有穷性时间尺度,风险分工质量持续下降

长周期 Agent 设计的五条约束(07-17 推导)

从五模式 Anti-Rot 架构和双重 Rot 共振定理推导长周期 agent 的具体设计约束:

  1. 最大有效运行时间 ≤ f(隔离容器刷新率):agent 不能在同一个上下文中无限运行。将长周期任务分解为独立子任务——每个子任务拥有新鲜上下文。最大连续运行时间 = 上下文被 rot 填满到超过质量阈值的时间。超过则必须强制上下文刷新。
  2. 审查者新鲜度 > 执行者新鲜度:"新鲜审查者"模式要求审查者用全新上下文。长周期 agent 必须包含周期性审查者轮换——不能在同一个上下文中既执行又审查。
  3. 客观信号锚优先:编译器/测试框架的输出不随上下文长度退化(rot-proof)。长周期 agent 的所有反馈回路必须锚定在客观信号上,不能在 LLM 内部判断上——因为内部判断随上下文退化而 rot。
  4. 双重 rot 共振防护:agent rot + human rot 的共模故障是长周期 agent 的最危险失效模式。不能假设"人类会发现 agent 的 rot 问题"——因为人类也在疲劳退化。必须设计 agent 自主的 rot 检测(客观信号偏离 > 阈值 → 触发降级)和降级策略(暂停/上下文刷新/人工升级)。
  5. 最优任务分解粒度:子任务太小 → 协调成本过高(跨子任务上下文传递的 token 成本)。子任务太大 → rot 在单任务内累积过多。最优分解粒度 = argmin(rot累积损失 + 协调成本)。取决于 rot 累积速率(模型相关)和任务的结构耦合度。

第二机制的正交边界:检索关系错位(07-22 圆桌裁判)

Context Rot 不是长时任务退化的唯一机制。Causality Gap(检索找回"语义相似"而非"因果相关"的信息)是与之正交的第二机制(synthesized/medium,07-22 圆桌,来源:2026-07-22 研究日志):

机制对应记忆之罪失效所在对策类型
Context Rot(本实体)transience(衰退)信息质量随尺度衰减刷新/隔离/客观信号锚
Causality Gapmisattribution(误置)检索关系错位——找到相似但因果无关的信息干预型操作(重判/证伪/因果图)

独立性证据:神经心理学中 transience 与 misattribution 存在 dissociation(健忘症病人衰退受损而误置完好;额叶病人保持完好而误置猖獗)——两机制在生物层面独立,工程层面亦应分别设防。anti-rot 架构(刷新/隔离)不能解决误置:上下文再新鲜,若检索只按语义相似度排序,取回的仍是因果无关的相似项。误置的对策是干预(重走而非检索,详见 LLM-Wiki 检索 vs 重走节),非刷新。

边界:误置不是故障而是重构式记忆的适应性设计副产品——保留 gist 的记忆必然产生误置,因为它本就没存精确因果细节。完全消除误置 = 完全精确存储 = 不可压缩,与有穷性冲突(接尺度依赖收敛定理的 Kolmogorov 硬墙)。

关联概念