Context Rot
了解什么是上下文退化 (context rot),为什么过长的 AI 输入会降低可靠性,以及检索、压缩和 YOLO26 工作流如何改善上下文工程。
Context rot(上下文腐化)是指当 AI 模型接收到超出其有效使用能力的上下文时,可靠性逐渐下降的现象。即使宣传的 context window 在技术上可以容纳几十万个 token,随着输入的增长,large language model 仍可能忽略相关事实、遵循过时的指令或降低推理准确性。2025 年的一项 Chroma context rot study 观察到了 18 个模型和几个受控任务中这种不均匀的性能表现。(trychroma.com)
上下文衰减是如何发生的#
长输入对模型的 attention mechanism 提出了更高的要求。重要的证据必须与重复的指令、不相关的文档、工具输出以及较旧的对话轮次竞争。上下文位置、语义相似性、冲突的事实和任务复杂度都会影响模型所使用的内容。
2024 年的 RULER long-context benchmark 发现,在简单检索上表现良好的模型往往会随着序列长度和任务复杂度的增加而下降。2025 年的 NoLiMa benchmark 揭示了当寻找答案需要语义推理而不是匹配相同单词时会出现更大的性能下降。因此,并不存在一个通用的 token 数量(包括对于 Gemini 模型)来标志上下文腐化开始的节点;该阈值取决于模型、提示结构和任务。(arxiv.org)
现实世界中的示例#
- 客服助手: 获得多年工单的聊天机器人可能会优先处理过时的策略或错过最近的账户更新。使用 LongMemEval conversational memory 和多模态 LoCoMo benchmark 的研究表明,提取、更新和推理长交互历史记录仍然具有挑战性。(arxiv.org)
- 视觉检测代理: 如果将每一帧、检测结果和维护日志都放入一个提示中,监控工厂的 vision-language model 可能会变得不够可靠。更好的工作流是使用 Ultralytics YOLO26 在语言模型推理之前提取简明的视觉事实。
- 编码代理: 加载整个代码库、每个工具定义和完整的终端历史记录可能会模糊当前的目标。Anthropic’s context-engineering guidance 建议精选上下文,而其 Agent Skills approach 仅在需要时加载详细资源。(anthropic.com)
此 YOLO predict workflow 演示了如何将原始检测结果转换为紧凑、结构化的上下文:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
result = model("https://ultralytics.com/images/bus.jpg")[0]
labels = [model.names[int(cls)] for cls in result.boxes.cls]
context = {"frame": 1, "objects": sorted(set(labels))}
print(context)如何减少上下文衰减#
- 仅检索相关证据: 使用 semantic chunking 和 reranker,而不是发送每一个可用的文档。
- 压缩较旧的信息: 用经过验证的摘要、决策和未解决的任务替换长历史记录。研究表明,即使在成功检索后,输入长度也会降低性能。(arxiv.org)
- 保留稳定的前缀: OpenAI prompt caching 和 Gemini context caching 可以降低重复处理成本,尽管仅靠缓存并不能提高上下文质量。
- 使用滑动窗口: Google 建议对 context-window compression for long live sessions 进行压缩,保留近期信息,同时逐出较旧的 token。(ai.google.dev)
- 在现实长度下进行评估: 应用 model monitoring 并使用 open context rot toolkit 重现受控测试。
上下文腐化不同于幻觉(这是一种不受支持的输出)、灾难性遗忘(它在训练期间改变模型知识)以及数据 drift(它反映了变化的生产输入)。上下文腐化主要是推理时上下文选择和推理的失败,这使得有效的 context engineering 成为其主要的防御手段。






