Context Rot (上下文腐爛)
Context Rot: How Increasing Input Tokens Impacts LLM Performance · Chroma
Chroma 2025 年 7 月發表的技術報告
一句話結論:LLM 並不會均勻處理 context。輸入越長,模型表現越差,而且下降方式是「不均勻」的。

前置知識
經典的長 context 評估方法:把一句「答案句(needle)」藏在一大段無關文字(haystack)裡,問模型能不能找出來。
相關角色:
- needle:正確答案句
- haystack:包住 needle 的長文
- distractor:跟 needle 長得很像但答案不對的干擾句
大家普遍假設 LLM 的 long-context 能力「只要 context window 夠長就能處理好」。
Chroma 這篇的核心挑戰就是:context window 長 ≠ 模型真的能均勻利用。
1. 核心發現
① 輸入越長,效能越差
即使是最簡單的 NIAH 任務(直接找一句話),context 變長後準確率也會掉。
不是慢慢掉,而是不均勻地掉。
② Needle 跟問題的「語意相似度」很關鍵
- 若 needle 跟問題字面高度相似 → 容易找到
- 若只是語意相關、字面差很多 → 長 context 下退化明顯
白話:模型比較擅長「字面比對」,字面對不上就會開始漏。
③ Distractor 的影響因模型而異
放一些跟 needle 類似但錯的句子:
- 有些模型會被嚴重拉走
- 有些影響較小
→ 同樣 context 長度下,不同模型的失靈模式差很多。
④ Haystack 的結構本身也會影響
- 結構連貫的長文 vs 隨機打散的長文 → 兩者退化速度不同
- 有時結構越連貫,反而越容易失焦(因為每段都看起來像答案)
2. 為什麼會「腐爛」
context 短 → 模型能聚焦,精準抓到證據
context 中 → 開始出現「看得到但抓不穩」
context 長 → 相關資訊被稀釋,長距離依賴斷裂
context 超長 + 干擾 → 模型容易選錯證據,推理出錯
關鍵觀念:
「看得到」不代表「還能穩定抓重點」。
Context 一長,模型容易失焦,開始更難:
- 正確定位關鍵證據
- 處理長距離依賴
- 在一堆相關資訊裡分清楚哪一個才是答案
3. 對實務的啟示
Context Rot 直接推動了 context engineering 這個做法:
不是:
- 一直往 prompt 塞資料
- 假設「反正 context window 長,塞進去就好」
而是:
- 只保留高訊號資訊
- 摘要舊內容
- 清除過期結果
- 需要時再回填
相關延伸閱讀:Effective context engineering for AI agents
4. 一句話理解
Context Rot=context 越長,模型越容易失焦,導致召回、理解與推理能力逐步退化。
這不是均勻下降,而是受 needle-question 相似度、distractor、haystack 結構等多重因素非均勻影響。
Sources
跨論文比較(Lost in the Middle / NoLiMa / RULER / 實務判斷指南)→ Context Rot — LLM 越長越懂嗎