百万 token 上下文救不了 Agent?聊聊被吹上天的长上下文与"context rot"
本站为独立第三方技术服务平台,提供多模型 API 聚合接入服务,与 Anthropic、OpenAI、Google 等模型提供商无任何关联、授权或合作关系。
大家都在吹百万token上下文,但Prime Intellect一位工程师说了句大实话:
GPT-5.5在256k时检索准确率80%,拉到一百万直接掉到36%。模型不是装不下,是装进去了推理不动——所谓的context rot。
为什么更大上下文救不了Agent,方案是持续学习+训练自己的轨迹+真实环境。
核心要点
- 各家都在卷"百万 token 上下文",仿佛窗口越大就越强。
- 但 Prime Intellect 的一位工程师泼了盆冷水:模型能"装下",不等于"用得动"。
- 他引用的数据很直观:某大模型在 256k 上下文时检索准确率约 80%,一旦拉到 100 万 token,准确率直接掉到 36% 左右。(该数据为第三方公开说法,未经本站验证)
- 问题不在"容量不够",而在装进去之后推理反而变差——业内把这种现象叫 context rot(上下文腐烂)。
- 他给出的方向也很明确:光堆更大的上下文救不了 Agent,真正的解法是持续学习 + 训练模型自己的行为轨迹 + 在真实环境中打磨。
详细解读
什么是 context rot
简单说:随着塞进上下文的内容越来越多,模型对其中信息的有效利用能力反而下降。不是它"看不到"那段文字,而是在海量上下文里,它越来越难精准地找到并用对关键信息——检索准了、推理却糊了。
那组 80% → 36% 的数字之所以扎心,就是因为它说明:窗口从 256k 拉到 1M,纸面容量涨了 4 倍,实际可用性却几乎腰斩。 "百万 token"听起来很美,落到需要精确推理的任务上,可能是个陷阱。
为什么更大的窗口救不了 Agent
Agent 的痛点从来不是"记不住",而是"记太多、抓不准"。一个跑长任务的 Agent,会不断累积历史对话、工具返回、中间结果——如果策略是"全都塞进上下文",那么:
- 上下文越滚越长,关键信息被噪声淹没;
- 推理质量随长度衰减,越到后期越容易跑偏;
- 成本和延迟还随 token 数线性上涨。
所以"把窗口做到更大"更像是治标。这位工程师给的思路是治本:让模型持续学习、用它自己的真实轨迹去训练、在真实环境里迭代——而不是指望一个更大的缸把所有东西泡进去。
这对"上下文工程"意味着什么
对做应用的人来说,结论很实际:别把长上下文当银弹。与其无脑往窗口里灌,不如做好上下文的"筛选与编排"——该检索的检索、该摘要的摘要、该丢的丢。窗口大小是资源,怎么用才是本事。
对开发者意味着什么
- 选模型别只看"上下文长度"这一个参数。 标称 1M 窗口,不代表它在 1M 长度下还能保持高质量推理。不同模型的"长上下文实际表现"差异很大,得按你自己的任务实测。
- 不同任务,最优模型不同。 短而精的推理、超长文档的摘要、高频批量的轻任务,未必是同一个模型最划算。把它们分派给各自擅长的模型,往往比"一个大窗口模型包打天下"更稳更省。
- 接入层要能灵活切换。 既然要按任务挑模型、还要随时对比谁在长上下文下更靠谱,一套能一键切换多模型的统一接口就很关键。
落到实践:用一套接口横向验证"谁的长上下文更能打"
想验证"同一份长文档、不同模型的检索与推理谁更准",最省事的是用统一接口把候选模型摆在一起跑。Code0 是多模型聚合 API 网关——一个 Key 接入 300+ 主流大模型(Claude、GPT、Gemini、DeepSeek 等),兼容 OpenAI SDK,零改造接入,横向对比只改 model 字段:
from openai import OpenAI
client = OpenAI(
base_url="https://hk.code0.ai/v1",
api_key="sk-你的Key", # 在 console.code0.ai 获取
)
long_doc = open("big_document.txt").read() # 你的长文档
question = "根据全文,第 3 节的结论和第 7 节有没有矛盾?"
for model in ["claude-opus-4-8", "gpt-5.4", "gemini-3-pro"]:
resp = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": long_doc},
{"role": "user", "content": question},
],
)
print(f"\n===== {model} =====")
print(resp.choices[0].message.content)
同一份长上下文、同一个问题,跑一圈就能看出谁在长文里"推得动"、谁开始糊。把长上下文能力建立在实测上,而不是标称参数上。按量即用、失败不计费;可用模型与计费口径以 console.code0.ai 控制台为准。
总结
"百万 token"是个漂亮的营销数字,但 context rot 提醒我们:能装下 ≠ 用得动。 对开发者来说,与其迷信更大的窗口,不如做好上下文编排、按任务选对模型、并用实测代替标称。而这一切的前提,是一层能让你自由切换、横向对比多模型的接入底座。



