大语言模型的上下文窗口存在一个被厂商宣传掩盖的现实:只有前100k token左右是“智能区”,之后注意力急剧下降,模型开始遗忘早期的输入。无论窗口标称多大(200k、1M甚至2M),有效工作区间远小于这个数字。
智能区与盲区
一段视频将LLM上下文窗口分成两个区域:智能区和盲区。在智能区内,模型保持敏锐;一旦超过约100k token的阈值,注意力衰减,模型对几分钟前告知的内容开始“失忆”。这一发现与多项研究(如RULER、Chroma的“上下文腐烂”报告)一致——有效上下文仅是标称值的一小部分,且性能随窗口填充逐渐退化。当前大上下文窗口更多是营销数字,底层架构虽然工作,但只是掩盖了注意力机制未能真正解决的问题。
应对策略与行业趋势
编码代理(coding agent)尤其容易将用户带入盲区:多次文件读取、长调试会话、大范围测试执行后,token消耗轻松突破100k。一些工具已开始自动压缩,如Claude Code会在会话变长时总结历史并重新开始。但压缩本身由已退化的模型执行,且压缩时用户已在盲区中花费了时间。更有效的方法是主动管理:开启新会话并传递自己编写的规范(spec),这比任何自动总结的信号密度都高,因为人类能判断哪些信息在后续真正重要。类似“面包屑”方法,为下一会话留下可干净接手的构件。更进一步,项目如obra/superpowers、mattpocok/skills将整个代理工作流组织成小型命名构件——PRD、计划、技能、子代理交接——通过刻意将信息从实时会话移出,让工作会话始终维持在智能区。
对待上下文窗口应像对待预算:假设仅有开头部分真正有效,所有能移出实时会话、写入书面构件的内容,都是减少注意力争夺的方式。
编注:信源为技术博客,材料聚焦LLM上下文窗口的实际表现与应对策略,未涉及具体模型评测数据或产品对比。