Context

上下文太长会带来什么问题?

前面一个章节中我们介绍了一个新的概念,叫做Context,即上下文,他包含了很多内容,提示词、工具、知识、记忆等等等等,相信大家最直观的感受就是上下文的内容太多了,尤其是在很复杂的agent中,有很多工具、指令、和知识的情况下,上下…

TL;DR

前面一个章节中我们介绍了一个新的概念,叫做Context,即上下文,他包含了很多内容,提示词、工具、知识、记忆等等等等,相信大家最直观的感受就是上下文的内容太多了,尤其是在很复杂的agent中,有很多工具、指令、和知识的情况下,上下…

前面一个章节中我们介绍了一个新的概念,叫做Context,即上下文,他包含了很多内容,提示词、工具、知识、记忆等等等等,相信大家最直观的感受就是上下文的内容太多了,尤其是在很复杂的agent中,有很多工具、指令、和知识的情况下,上下文会爆炸。 早在23年的时候,就有人提出上下文太长会影响模型的效果,论文《Lost in the Middle: How Language Models Use Long Contexts》 在这篇论文中,作者通过一系列精心设计的实验揭示了一个关键现象:当前的语言模型在长上下文中对信息的位置非常敏感,往往更关注开头和结尾的内容,而忽略中间部分的信息。作者将这种现象称为“Lost in the Middle”(过程中迷失/遗忘初始目标)。 针对各种主流的LLM做了试验之后,得出以下结论: - 位置偏差显著:几乎所有模型在关键信息位于上下文开头或结尾时表现最好,而在中间位置时性能(模型效果)急剧下降。 - 增加上下文长度 ≠ 提升效果:即使模型声称支持超长上下文(如32K tokens),其实际有效利用信息的能力并未线性提升;反而在更长上下文中,“迷失在中间”的问题更加严重。 - 指令微调和推理策略影响有限:尽管一些模型经过专门的长上下文微调,但仍未完全克服位置偏差。 而且,很多人在做大模型应用开发的时候,也会发现,随着上下文变长,会带来遇到各种各样问题。这些问题除了会导致token爆炸、超出上下文窗口限制以外,还比较典型的就是导致LLM的输出结果出现问题,典型的几个问题就是上下文中毒、上下文分散、上下文混乱以及上下文冲突。

Context Poisoning(上下文中毒)

上下文中毒是指,当一个“幻觉”被当作真实内容放进上下文中,后续的回答就会基于这个错误前提继续推理,导致错误放大。 举个🌰: 模型本来知道这是错的(电话是贝尔发明的),但如果你在上下文里写了一段话: 然后你再问:“谁发明了电话?” 模型可能会回答:“爱因斯坦。”——因为它把上下文里的错误当成了事实。 所以,错误信息一旦进入上下文,模型会“信以为真”,就像喝了毒水还觉得是果汁。

Context Distraction(上下文分散)

上下文分散是指,上下文信息太多、太杂,反而让模型忽略了真正重要的指令或问题,导致答非所问。 研究显示,当上下文达到32ktoken后,性能开始下降,超过100k tokens后,这种现象开始显著出现。Agent不再推理当前情况,而是寻找类似的历史模式并重复它们。(Gemini 2.5 技术报告) 你想让模型总结一篇短文,但你在提示词里塞进了大量无关内容: 结果模型可能开始聊“NASA的火箭”或者“你的猫”,而不是总结文章。 信息过载会让模型“分心”,就像考试时旁边同学一直在讲八卦,你没法集中注意力。

Context Confusion(上下文混乱)

上下文混乱是指,当上下文中包含大量无关、冗余或非必要的信息(尤其是过多可用工具或选项)时,模型被迫处理所有内容,导致注意力分散、决策偏差,甚至错误调用不相关功能,从而显著降低响应质量与任务成功率。 尤其是在很多agent中,提供了很多工具场景(如 MCP 工具集)中,即使大多数工具与当前任务无关,它们的存在仍会干扰模型对正确工具的选择。 就像让一个厨师在 100 把刀中选一把切菜——即使他知道哪把最合适,但面对一堆锯子、水果刀、手术刀、砍骨刀……他可能会犹豫、选错,甚至用错工具。 而如果只给他 3 把常用刀,效率和准确率立刻提高。 研究表明:将可用工具从 46 个减少到 19 个,任务成功率显著提升。

Context Clash(上下文冲突)

上下文冲突是指,在同一个对话或任务上下文中,同时存在相互矛盾或不一致的信息(如早期错误假设、过时状态、冲突的工具说明等),导致模型无法正确推理,最终生成混乱、自相矛盾或错误的输出。 就像你在导航时,一开始误判了方向,系统记录下“正在向东行驶”。即使你后来掉头向西,导航仍基于“你还在向东”的错误前提规划路线,越走越偏——因为它把自己的错误当成了事实。

版本提示

模型、框架与接口会持续变化。涉及版本号、参数与生产配置时,请在实践前对照对应官方文档。

LLMentor系统化学习大模型应用工程

内容来自个人课程知识库备份,并经过结构化整理。技术版本持续演进,生产使用前请结合官方文档验证。