Deep Research · Context Engineering

Smart Zone:AI 编程助手的“黄金上下文区间”到底是什么

一个被广泛引用、却从未被正式定义的工程经验法则。本报告把它拆成三条可测量的边界——能力边界、行为边界、经济边界——并用 2024–2026 年的受控实验与厂商一手评测数据,回答“边界在哪里”“为什么在那里”“该怎么用”。

研究方法 一手论文 / 厂商官方评测 / 官方工程文档优先;二手转述仅用于线索发现 数据截止 2026-09-18 证据强度 每条数据标注来源类型

00摘要:十条核心论断

如果把这篇报告压缩成一页,只需读这十条。每条都可以被证伪,括号内标注了它主要依赖的证据类型。

R1 · “Smart Zone” 不是研究成果,是一个工程经验的命名

2025 年 6 月,HumanLayer 创始人 Dex Horthy 在 AI Engineer World's Fair 的演讲《No Vibes Allowed: Solving Hard Problems in Complex Codebases》中提出 Smart Zone / Dumb Zone:上下文用量超过约 40% 后输出质量明显下滑。同一圈子(2025 年 4 月《12-Factor Agents》)也是 “context engineering” 一词的源头。这个概念没有对照实验支撑——但它指出的方向被随后一年内的一批受控研究反复证实。实践经验

R2 · 真正被测量的是“有效上下文长度”,不是窗口的某个百分比

RULER(NVIDIA,COLM 2024)定义了 effective context length;NoLiMa(Adobe,ICML 2025)把它再砍掉一半以上;Chroma《Context Rot》(2025-07)证明长度本身就足以造成退化;arXiv 2510.05381(EMNLP 2025)证明在完美检索条件下性能仍下降 13.9%–85%。所谓 smart zone 应被理解为一个任务×模型×位置相关的曲面,而不是一条固定水位线。受控实验(多篇)

R3 · 对 Agent 而言衰减比教科书更陡,拐点约在 32K——远早于 40% 规则

LOCA-bench(HKUST,2026)是首个可控“环境状态膨胀”的 agent 级基准。Claude-4.5-Opus 在环境描述 8K 时准确率 96.0%,64K 时 65.3%,128K 时 34.0%,256K 时 14.7%。若按 40% 规则,这个 200K 窗口的“安全线”是 80K——而实测 64K 时已经掉了 30 个百分点。40% 是上限,不是安全线。受控实验(n=525)

R4 · 模型之间真正的差别不是“窗口多大”,而是“衰减曲线多长”

OpenAI 官方 MRCR v2 8-needle 分桶数据:GPT-5.4 在 256K–512K 段掉到 57.5%、512K–1M 段掉到 36.6%;GPT-5.5 同一区间是 81.5% / 74.0%——同一模型族在数月内把长尾段提升了 +37.4 个百分点。Claude Opus 4.6 在 1M 上是 76%,而其同族 Sonnet 4.5 只有 18.5%。边界每隔几个月就被厂商重画一次,任何固定百分比都在过期。厂商官方评测

R5 · 存在第二条独立失效曲线:不是“变笨”,而是“提前收工”

Cognition 在 2025 年 9 月为 Claude Sonnet 4.5 重写 Devin 时命名了 context anxiety(上下文焦虑):模型感知到接近窗口上限时,会提前收尾、跳过子任务、下更草率的决定。MIT 团队在 ICML 2026 论文中首次系统测量:出现焦虑的模型对自身所需 token 的估计偏差 24%,这预测了 15% 的准确率下降与 54% 的 token 浪费。它与“变笨”是两回事,缓解手段也完全不同。受控实验 + 一手工程报告

R6 · 对编程 Agent,吃上下文的是 I/O,不是聊天

Anthropic 官方《Explore the context window》给出的代表性会话:启动阶段(系统提示、CLAUDE.md、自动记忆、技能清单、MCP 工具名)合计约 7,850 token;而 4 次文件读取就占整场会话的约 31%,用户自己输入的内容只占约 1%。管理上下文 ≈ 管理文件读取与工具输出。厂商官方文档(示意值)

R7 · 主要成本不是“塞满”,而是“污染”

失败尝试留在轨迹里会形成复利:Horthy 的 trajectory 论证、Anthropic 官方“同一问题纠正超过两次就 /clear 重开”的建议、Cline/Cursor 用户报告的“压缩后忘记刚才的编辑”,是同一现象的三个侧面。上下文里最贵的不是无关文件,是失败的路径。官方文档 + 工程共识

R8 · 各家 Agent 对同一问题给出四种答案,且都能跑通

压缩派(Claude Code / Codex / Cline / Cursor / OpenCode):分层渐进、成本递增、增量摘要;换线程派(Amp):拒绝递归摘要,改用 handoff;外置派(Manus / Anthropic memory tool):把文件系统当内存;隔离派(subagent):独立窗口只回摘要。Anthropic 自己承认 harness 假设会过期——为 Sonnet 4.5 加的 context reset 在 Opus 4.5 上“变成了纯开销,还会导致缓存被错误丢弃”。厂商一手工程报告

R9 · 经济边界往往比能力边界先到

Claude Opus 4.6 对超过 200K token 的请求收 $10 / $37.50(约 2 倍溢价);GPT-5.4 超过 272K 按 2 倍计费;Manus 实测 KV-cache 命中与未命中成本差 10 倍($0.30 vs $3.00 / MTok),而 agent 负载的输入输出比高达 100:1。smart zone 的下界由价格和延迟决定,不只是准确率。厂商定价页 + 一手工程博客

R10 · 唯一稳定的不变量是“信号密度 + 可见余量”

把上下文压到任务真正需要的量、给模型看得到的剩余空间、把状态外置成文件、把探索外包给子智能体、每个任务从干净会话开始——这些动作在 2024 与 2026 的模型上都有效,而任何具体的百分比都会随版本失效。优化的目标不是“保持在某个百分比内”,而是“让窗口里只剩高信号 token,并让模型知道自己还有余量”。本报告判断

01范式判定:Smart Zone 是什么,不是什么

在中文技术社区里,“smart zone”常被直接译成“智能区 / 黄金上下文区间”,并被当作模型的一个固有属性来讨论。这个用法有双重偏差:它既高估了概念的严谨性,又低估了它的实用价值。先把三个被混为一谈的含义拆开。

1.1 同一个词,三种互不相同的边界

① 能力边界

模型还能不能准确推理。由注意力机制与位置编码的架构约束决定,可用 MRCR v2 / RULER / LOCA-bench 测量。特征是平滑退化 + 局部断崖,不随使用者的操作改变,只随模型版本改变。

② 行为边界

模型愿不愿意把活干完。当它判断自己“空间不够”时会提前收尾。这是行为模式的切换,不是能力下降,触发阈值与真实余量无关。缓解手段是让模型看到余量,而不是压缩上下文。

③ 经济边界

用得起、等得起的规模上限。由分层定价(超阈值 2 倍计费)、KV-cache 命中率、首 token 延迟共同决定。它在能力边界之内很远处就可能已经生效。

Horthy 最初的 40% 说法,实际上是三条边界的一个粗略上界——他观察的是“什么时候开始不值得继续在这个会话里干”。把它当成模型的物理常数,是后续所有误用的根源。

需要先纠正的一处流行误引。中文与英文社区中流传着“Horthy 分析了 10 万+ 开发者会话,得出 40% 拐点”的说法(例如 npm 上的若干上下文状态栏插件页面)。没有任何一手材料支持这一表述。40% 是演讲中的口头经验值,演讲中明确说“40% 不是绝对数字,随任务复杂度变化”。“10 万+”这一数量级很可能来自与大型行业调查(DORA 类)的混淆——那类调查问的是 AI 使用与返工,与“上下文利用率拐点”不是同一件事。本报告凡引用 40%,都按“经验法则”而非“实验结论”处理。

1.2 概念演进时间轴

2023 窗口越大越好的时期 GPT-4 8K / 32K;NIAH 是大海捞针式的单一检索测试 长上下文能力 ≈ 能塞进去多少,几乎没有反面证据 2024 “能塞”与“能用”第一次被分开 Lost in the Middle(TACL):首尾记得住、中间记不住 RULER(NVIDIA, COLM):提出 effective context length 2025 上半年 百万窗口 + 语义检索的双重证伪 Gemini 1.5 / GPT-4.1 宣称 1M;NoLiMa(ICML)证明 去掉字面匹配后,32K 处多数模型跌破基线一半 4 月:12-Factor Agents 首次提出 context engineering 2025 下半年 命名年:Dumb Zone / Context Rot / Context Anxiety 6 月 AI Engineer:Horthy 提出 Smart / Dumb Zone(约 40%) 7 月 Chroma《Context Rot》:18 个模型逐一退化 9 月 Anthropic《Effective Context Engineering》;同月 Cognition 命名 context anxiety,并发现只用压缩治不好它 2026 Opus 4.6 1M / GPT-5.5 长尾修复 / LOCA-bench / ICML 焦虑量化
图 1 · 从“窗口有多大”到“窗口能用来干什么”。2025 年是命名密集年:三个后来被反复引用的概念(dumb zone、context rot、context anxiety)都出现在同一年,但它们分别描述经验、能力、行为三个不同层次的问题。来源:各概念原始出处,见第 12 节。

1.3 六个相邻概念的判别表

以下六个词在日常讨论中几乎被当作同义词,但它们的测量方式、责任方和修法完全不同。分不清它们,就会用错药。

概念回答的问题怎么测看到它会怎么做
Context Window
标称容量
最多能塞多少 token厂商规格表决定“能不能一次装下”,不决定“装下后能不能用”
Effective Context Length
有效长度
在多长输入内仍能达标RULER / NoLiMa 曲线作为容量规划的真实分子;低于标称 50%–65% 是常态
Context Rot
上下文腐烂
长度本身是否伤害性能固定任务复杂度、只变动长度承认“更多 token 不是免费的”,主动压缩与精选
Lost in the Middle
位置效应
信息放在哪里会被忽略针位扫描(首 / 中 / 尾)重排而非压缩:关键约束放开头与结尾
Dumb Zone / Smart Zone
经验水位线
什么时候该重开一个会话无受控测量;实践观测作为操作触发条件使用,不作容量依据
Context Anxiety
行为切换
模型是否在自我误判余量轨迹分析 + 焦虑检测协议给模型可见的余量、加反提前收尾提示、而非压缩

1.4 一个可用的判别式

把上面这些收敛成一个可操作的判断:一个任务是否处在 smart zone,取决于两个量的比值,而不是绝对 token 数。

信号密度 = 任务相关 token ÷ 窗口内总 token

余量可见性 = 模型能感知到的剩余空间 ÷ 它完成任务所需的估计空间

  • 信号密度高 + 余量可见性 > 1 → 在 smart zone。哪怕总量 60K 也没问题。
  • 信号密度高 + 余量可见性 < 1 → 触发 context anxiety。模型能力还在,但它会自己提前收工。修法是“让它看到余量”,不是压缩。
  • 信号密度低 → 无论用多少 token 都在 dumb zone。修法是删,不是调 prompt。
  • 总量超过能力边界 → 无论信号多纯都在退化。修法是切片、外置、隔离。

这个判别式的价值在于:它把“我该不该 /clear”从“我现在几 % 了”变成“我窗口里有多少东西跟当前任务无关”。后者才是可执行的。

02理论根基:为什么一定会这样

“上下文变长会变笨”不是玄学,它有明确的机制来源。理解机制的回报是:每条机制都能直接推导出一个工程动作。反过来,如果你听完一段解释仍不知道明天该改什么,那段解释就是没用的。

2.1 注意力是有限预算,不是可扩展内存

Transformer 让每个 token 与其它所有 token 建立联系,n 个 token 对应 n² 组两两关系。当上下文从 10K 涨到 100K,模型需要处理的关系数量从 1 亿涨到 100 亿。Anthropic 在《Effective context engineering for AI agents》中把这表述为一个注意力预算(attention budget):每引入一个新 token,都会消耗掉一部分预算。这不是容量问题——容量还在,是每个 token 能分到的注意力被稀释了。

这也解释了一个反直觉的实验结果:Chroma 在 18 个模型上发现,结构连贯的文本作为“大海”时表现更差,打乱句子顺序反而更好。因为连贯的结构让无关内容看起来更有相关性,从而更有效地参与竞争那份固定预算。

2.2 位置外推带来的是“位置理解退化”,不是“记不住”

模型的长上下文能力大量依赖位置编码外推(如 RoPE 缩放 / YaRN)。这意味着超出训练分布的长度上,模型对“这个 token 排在第几位”的理解本身就是含噪的。结果是经典的首尾偏好:开头与结尾被认真处理,中间被系统性低估。这就是 Lost in the Middle(Liu et al., arXiv:2307.03172)。

关键区别:位置效应是“重排问题”,长度效应是“容量问题”。把关键约束从中间挪到结尾,不需要减少一个 token 就能拿回大部分损失;而减少总长度则要动别的手段。两者常被混为一谈,导致人们用压缩去解决本可以靠重排解决的问题。

2.3 长度本身要交税:即使完美检索、即使全部掩码

arXiv:2510.05381(EMNLP 2025 Findings)做了一组很干净的实验:在数学、问答、编程任务上,先保证所有相关信息 100% 被检索到,只改变无关内容的多少。结果性能仍随长度下降 13.9%–85%。更关键的两步:把无关 token 换成干扰极小的空白,仍至少掉 7%;把无关 token 全部掩码、强制模型只看相关 token,仍至少掉 7.9%。

这条结论的工程含义非常硬:“检索做好了就没问题了”是错的。任何以“把全部相关文件都塞进去,让模型自己挑”为核心的设计,都在为一个无法通过检索优化消除的损耗付费。该研究给出的缓解手段本身也很朴素——让模型先复述检索到的证据,再解题,在 RULER 上让 GPT-4o 提升了约 4 个百分点。

2.4 训练分布里长序列更少

模型是在“短序列远多于长序列”的数据分布上训练出来的,因此针对长程依赖的专门参数更少、经验更少。这一条解释了两件工程上很常见的事:为什么长上下文能力在不同任务族上退化速度不同(检索慢、多跳快);以及为什么厂商能把长尾段做好——它更多是训练与推理栈的工程问题,而不是不可逾越的架构墙。

A · 位置效应:关键信息放在哪里 100% 50% 0% 中间最易被忽略 开头 中间 结尾 关键信息的相对位置 B · 长度效应:同一任务,只改长度 100% 50% 0% 32K 8K 32K 128K 输入长度(token) 简单字面检索 语义检索 多跳推理
图 2 · 两种效应的形状差异(示意,基于 Lost in the Middle、NoLiMa、Graphwalks 的定性结论重绘,非单一实验的原始数值)。A 是一条 U 形曲线:位置造成的损失可以靠重排拿回。B 是三条下降速度不同的曲线:任务越需要跨位置整合,断崖来得越早——简单字面检索到 128K 几乎无损失,多跳推理在 32K 附近就已腰斩。这解释了为什么“我的模型 NIAH 满分”和“我的 agent 一到长任务就丢要求”可以同时为真。

从机制到动作

机制直接推出的工程动作
注意力预算被稀释删掉与当前任务无关的一切:陈旧文件、上一轮任务的轨迹、未被使用的工具 schema
位置外推导致位置理解退化关键约束放开头与结尾;把任务指令在长上下文的末尾再复述一次
长度本身交税(与检索无关)不要靠“全塞进去 + 让模型挑”;把选取动作前移到检索层或代码层(programmatic tool calling)
长序列训练样本更少不要假设“更大的窗口会自然变得一样好”;对每个模型每一档长度实测,不要信规格表
失败路径会自我强化同一问题纠正两次以上即 /clear 重开,不要在同一条轨迹里继续修

03三条边界:Smart Zone 的真实形状

把第 1 节拆出的三种含义放到同一根坐标轴上,就能看出为什么“smart zone 是 40%”这句话既不算错、也几乎没用:四条不同性质的边界落在不同位置,而真正的可用区间是其中最靠左的那一条决定的。

Smart Zone ≈ 0–20% 经济边界 能力边界 行为边界 40% 经验线 20% 24% 30% 40% 0% 100%(标称窗口,如 200K)
图 3 · 以“200K 窗口 + agentic 编码任务”为参考场景,四条边界落在不同位置。最靠左的那条决定可用区间——在这个参照系里是经济边界(20%),而 40% 经验线已经落在能力断崖之后。绿色区间(0–20%)是保守口径的 Smart Zone,即最靠左那条边界之前的空间;后文若无特别说明,“smart zone”均按此保守口径理解。注意四条边界都会随模型版本与任务类型移动;这个图的价值在于结构,不在具体刻度。

3.1 四条边界各自的依据与强度

边界参考位置依据证据强度
经济边界20% Anthropic 对 Opus 4.6 超过 200K token 的请求提价至 $10 / $37.50(1M 窗口的 20%);OpenAI 对 GPT-5.4 超过 272K 按 2 倍计费。KV-cache 命中与未命中的成本差约 10 倍。 厂商定价页
能力边界16–24% LOCA-bench 实测:Claude-4.5-Opus 在环境描述 32K 时 84.0%、64K 时 65.3%(200K 窗口的 16% / 32%)。拐点出现在 32K 附近,而非 80K。 受控实验
行为边界~30% 一份生产观测:Kiro 的用量表显示 30%,同一会话中的模型声称“已没有空间继续”。单点观测,但方向与 Cognition 的发现一致——触发条件是模型自己的估计,不是真实余量。 单一案例
40% 经验线40% Horthy 的演讲经验值(2025-06)。用于回答“什么时候该重开会话”,不是容量规划依据。演讲中明确说明该比例随任务复杂度变化。 实践经验

3.2 为什么经济边界常常最先到期

工程讨论通常只盯准确率,但还有两个机制会提前把可用区间压窄,而且它们的作用是乘法的:

本节结论

讨论“smart zone 是不是 40%”时,真正的分歧往往不在数字,而在参照系:说 40% 的人关心的是“什么时候质量开始掉”;说 20% 的人关心的是“什么时候开始不划算”;说“32K 就腰斩”的人关心的是“agent 在真实任务里什么时候开始丢要求”。三者可以同时为真。可执行的结论只有一句:以最靠左的那条边界为准做规划,把 40% 当作“最迟必须动手”的告警线。

04证据全景(一):单次推理层的有效上下文

这一节回答一个模型层面的问题:宣称的窗口,有多少是真正能用的?四组研究给出的答案高度一致——多数模型的有效上下文只有标称的一半甚至更少,而且这个折扣无法通过“把检索做得更好”来抹平。

4.1 RULER:第一个把“有效长度”变成数字的基准

NVIDIA 的 RULER(arXiv:2404.06654,COLM 2024)用 13 个合成任务覆盖四类能力——检索、多跳追踪、聚合、长文档问答,长度 4K 到 128K,每个长度 500 个样本。它定义一个模型在某个长度上“达标”的门槛是 Llama-2-7B 在 4K 时达到的 85.6%,然后把“仍能达标的最长长度”称为有效上下文长度。

结果是:在被评估的 17 个宣称 32K 以上窗口的模型中,只有 4 个在 32K 上仍维持达标水平。有效长度普遍落在标称值的 1/2 到 1/4 之间。

标称窗口(厂商广告值) RULER 实测有效上下文长度 达标线:有效 ÷ 标称 ≥ 85.6%(Llama-2-7B @ 4K) GPT-4-1106 128K → 64K Yi-34B 200K → 32K Command-R+ 128K → 32K Mixtral 8x7B 32K → 32K(唯一达标者)
图 4 · 17 个模型中有 4 个在 32K 上仍维持 RULER 的达标门槛;上图给出其中四个的代表性结果。注意 Yi-34B:标称 200K,有效 32K——有效率 16%。来源:RULER 论文(arXiv:2404.06654),数值经多个二次来源交叉核对。

4.2 NoLiMa:把“字面匹配”这根拐杖拿走之后

RULER 之后最有力的推进来自 Adobe Research 与 LMU 慕尼黑合作的 NoLiMa(arXiv:2502.05167,ICML 2025)。它指出 NIAH 类测试的一个致命漏洞:问题与“针”之间存在字面重合,模型其实可以靠关键词匹配过关。NoLiMa 重新设计了针集,让问题与针几乎不共享词汇,必须依赖潜在关联(例如问“哪个角色去过赫尔辛基”,而针是“Yuki 住在 Kiasma 博物馆附近”——你得知道 Kiasma 在赫尔辛基)。

在 13 个宣称支持 128K 以上上下文的模型上:

  • 短上下文(<1K)表现都很好;
  • 到 32K,13 个里有 11 个跌破自身短上下文基线的 50%;
  • 即便表现最好的 GPT-4o,也从 99.3% 掉到 69.7%;
  • 带推理能力或 CoT 提示的模型同样维持不住。

公平起见的另一面:Chroma 在《Context Rot》中对 NoLiMa 提出了方法论质疑——NoLiMa 中约 72.4% 的问题-针对需要外部世界知识,因此它实际测的是“检索 + 外部知识推理”两个任务,而不是纯粹的语义检索。这个批评成立。但结论方向未被推翻:一旦取消字面匹配的便利,退化会早得多、陡得多。

4.3 Chroma《Context Rot》:长度本身、干扰项与结构

2025 年 7 月,Chroma 的 Kelly Hong、Anton Troynikov、Jeff Huber 发布了 18 个模型(含 GPT-4.1、Claude 4、Gemini 2.5、Qwen3)的受控实验,方法是固定任务复杂度、只改变输入长度,从而把“长度效应”与“任务变难”分离开。主要发现:

发现内容
退化是普遍的每一个被测模型、每一个长度增量上都出现性能下降,无例外。
结构连贯反而有害把“大海”的句子随机打乱之后,全部 18 个模型表现都变好。连贯的结构让无关内容看起来更相关,更有效地参与注意力竞争。
干扰项的影响会放大单个干扰项即造成下降,四个干扰项进一步加剧;且影响在不同模型间高度不均匀。
不同厂商的失败方式不同Claude 系列幻觉率最低、倾向保守弃权(明确说“找不到”);GPT 系列在存在干扰项时幻觉率最高,常生成自信但错误的答案。
最简任务也会崩“复制一串重复单词并在指定位置插入一个异类词”这种任务,也随长度持续退化。Opus 4 是衰减最慢的,但也是唯一会拒绝执行的(2.89%)。
聚焦提示远优于全量提示在 LongMemEval 上,只给相关片段的“聚焦输入”显著优于 113K 全量输入,Claude 系列的差距最大。

需要标注的利益相关:Chroma 是向量数据库厂商,其商业利益与“检索优于全量塞入”的结论一致。但该报告公开了完整实验代码、采用固定复杂度对照设计,且结论与 NoLiMa、RULER 相互独立地指向同一方向,因此仍按受控实验使用。全实验的拒绝率仅 0.035%(194,480 次调用中 69 次),说明这不是“模型不配合”造成的伪像。

4.4 决定性的一组实验:即使完美检索,长度仍然伤害性能

arXiv:2510.05381(EMNLP 2025 Findings)是这条证据链上最干净的一环。作者在 5 个开源与闭源模型、数学 / 问答 / 编程三类任务上,先保证相关信息 100% 被检索到,然后只改变无关内容的数量。三档对照:

条件性能变化说明
完美检索 + 正常无关文本−13.9% ~ −85%输入变长本身即造成大幅退化,且仍远在标称窗口内
无关 token 替换为空白≥ −7%干扰已降到最小,退化依旧存在
无关 token 全部掩码≥ −7.9%强制模型只关注相关 token,退化依旧存在

作者给出的缓解手段也很朴素:让模型先复述检索到的证据,再解题,把长上下文任务改造成短上下文任务——在 RULER 上让 GPT-4o 提升约 4 个百分点。这与 Manus 的 “recitation” 实践(不断重写 todo.md 把目标推回注意力热点)在原理上是同一件事。

这一节的净结论:“把上下文做厚”与“把上下文做准”是两条独立的技术路线,而后者在 32K 之后就已经开始显著占优。不要指望更好的检索来拯救长上下文;要用更短的上下文来让它不需要被拯救。

05证据全景(二):Agent 层的有效上下文

上一节测的是“一次调用能处理多长输入”。但编程助手不是一次调用,它是一个循环:探索、读文件、跑命令、看报错、再改。这个循环里的上下文是自己长出来的。2026 年出现的第一个可控基准,给出的答案比单次推理层更悲观。

5.1 LOCA-bench:把“环境变大”与“任务变难”分开

HKUST 的 LOCA-bench(arXiv:2602.07962,Zeng / Huang / He)解决了长期困扰这个领域的一个混淆:在真实 agent 任务里,上下文变长往往也意味着任务变难,因此无法判断退化来自长度还是难度。它的做法是自动放大环境状态、同时保持任务语义完全不变——例如把待处理的邮件、表格、数据库记录成倍增加,但“把 A 表按 B 规则汇总”这个指令一个字都不改。

方法细节:15 个种子任务(改编自 Toolathlon),280 个工具,7 档环境描述长度(8K / 16K / 32K / 64K / 96K / 128K / 256K),每档 5 个随机种子,共 525 个样本,统一使用 ReAct scaffold,模型在各自最大上下文内运行。

Claude-4.5-Opus GPT-5.2-Medium Gemini-3-Flash 实线 = 前沿闭源模型 DeepSeek-V3.2-Thinking MiniMax-M2.1 GLM-4.7 Kimi-K2-Thinking 虚线 = 开源权重模型 100% 75% 50% 25% 0% 50% 基准线 8K 16K 32K 64K 96K 128K 256K 环境描述长度(token,任务语义不变)
图 5 · LOCA-bench 各模型任务准确率随环境规模的变化。数据为论文 Table 1 原始数值。三条最关键的读数:Claude-4.5-Opus 在 8K→256K 之间从 96.0% 掉到 14.7%;GPT-5.2-Medium 起点低得多(72.0%)但衰减更平缓;DeepSeek-V3.2-Thinking 在 96K 处直接塌到 16.0%,而它的标称窗口是 130K。三条闭源曲线的形状差异说明:这不是“谁的窗口大”的问题。

5.2 与 40% 规则的正面对账

把 LOCA-bench 的数字换算成窗口占比,就能直接检验 40% 规则:

模型标称窗口8K 准确率32K(16%)64K(32%)能力拐点
Claude-4.5-Opus200K96.0%84.0%65.3%约 32–48K(16–24%)
GPT-5.2-Medium400K72.0%60.0%52.0%约 32K(8%)
Gemini-3-Flash1050K64.0%40.0%36.0%约 32K(3%)
DeepSeek-V3.2-Thinking130K78.7%61.3%45.3%约 96K(74%)

结论有两层:

一个反直觉但重要的事实

GPT-5.2-Medium 的 8K 起点(72.0%)明显低于 Claude-4.5-Opus(96.0%),但它的曲线更平缓,在 128K 处反超(38.7% vs 34.0%)。“短上下文更强”与“长上下文更稳”是两个独立属性。选型时如果不区分,很容易把“在小任务上更聪明”误当成“在大任务上更可靠”。

5.3 轨迹本身的行为变化:模型不只是变笨,还变得不愿探索

LOCA-bench 记录的不只是准确率,还有轨迹长度、工具调用次数与工具输出量。一个重要发现是:随着环境变大,这些量先上升、然后趋于平台。作者的解释是——面对过长的上下文,模型会减少探索。这正好与 context anxiety 的机制吻合:不是能力不够,是行为收窄。论文归纳出四类被长上下文放大的失败模式:

失败模式表现
复杂推理退化无法把多来源信息合并,或漏掉中间查询,导致任务不完整或错误
指令遵循变弱漏掉显式约束、输出格式不合规(例如 CSV 列名写错)
探索不足把部分证据当成全面证据,提前收尾——例如工具返回分页结果时不翻页
类幻觉的不一致在后续推理或生成代码时,窜改或编造之前已检索到的事实

论文还测试了六种上下文工程策略在同一环境(128K)下的效果:工具结果清除、思考块清除、上下文压缩、上下文感知(实时告知余量)、记忆工具、程序化工具调用(让 agent 写代码来编排工具,只把最终结果返回给模型)。结论是:程序化工具调用效果最稳定、最显著,同时缩短轨迹长度;而记忆工具与上下文感知对 Gemini-3-Flash、GPT-5.2-Medium 有帮助,却反而伤害了 DeepSeek-V3.2-Thinking。这是一个很实用的警告:上下文工程手段不是通用药,对部分模型会有负作用,必须实测。

论文自陈的局限:任务域仅限电商与教育场景;策略是规则式的;只测到 256K;环境描述中包含较多脚手架,绝对数值可能偏悲观。作者认为模型间的相对排序仍可信,因为造成退化的机制(位置偏置、注意力稀释、softmax 锐化)是架构级的、所有模型共享。

5.4 真实编程任务的轨迹有多长?

arXiv:2602.16069《The Limits of Long-Context Reasoning in Automated Bug Fixing》提供了一个很实用的对照数据。作者统计了在 SWE-bench Verified 上运行 agent 的完整对话长度:

Agent 轨迹普遍在 20K–30K token 以内

在所有被测模型上,完整对话一般不超过 20K–30K token。而且成功的解倾向于用更短的上下文;上下文更长的样本,解决率反而更低。作者谨慎指出这可能是“更难的问题本身需要更长推理”造成的混淆,但方向的启示是明确的。

但把 64K 一次性喂进去,几乎全线崩溃

作者构造了保证 100% 召回(所有需要的文件都在上下文里)的 64K 数据集,结果:Qwen3-Coder-30B-A3B 解决率 7%,GPT-5-nano 0%。失败模式包括 diff 头行号错误、指向不存在的文件。“检索 100% 正确”与“能改对 bug”之间隔着一整条鸿沟。

5.5 多智能体的上下文经济学

Anthropic 在多智能体研究系统的复盘中给出了一组常被引用的成本比例(经二次来源转述):单智能体消耗约为普通对话的 4 倍,多智能体约为 15 倍;并且在 BrowseComp 评测中,token 使用量解释了约 80% 的性能方差,工具调用次数与模型选择是额外因素。

这组数字的含义是双面的:它说明长任务的上限确实与“能消耗多少上下文”强相关,因此 subagent 隔离不只是省钱手段,也是能力手段;同时它也说明,多智能体是一种昂贵的能力购买,只在任务价值足以覆盖 15 倍成本时才成立。

06模型横评:2026 年的衰减曲线有多陡、差多少

这一节只用厂商官方发布的评测数据(OpenAI、Anthropic、Google DeepMind 的模型页与模型卡)与同行评议论文数据,不用聚合站的二手整理。原因很简单:长上下文这个指标上,二手数据的偏差极大——同一个模型在不同来源里的“有效上下文”可以差一倍以上。

关于数据源的一条硬规则。本报告在调研中遇到多份聚合站表格,给出诸如“GPT-5.5 可用 512K(50% 有效率)”“Claude Opus 4.6 可用 500K”“Gemini 3.1 Pro 可用 128K(13%)”这类“有效率”数字。这些数字没有可追溯的测量方法(不知道用什么基准、什么阈值、几个 needle、什么位置分布),且彼此矛盾。这类表格可以当线索,不能当依据。下面每个数字都标注了它来自哪个官方评测的哪一档。

6.1 MRCR v2 8-needle:目前最接近“长上下文推理”的公开标准

MRCR(Multi-Round Coreference Resolution)最初来自 Google DeepMind 的 Michelangelo 评测套件,OpenAI 在 2025 年 4 月把它公开化:在长合成对话中插入多个近乎相同的请求(2 / 4 / 8 个),要求模型取回“第 3 首关于貘的诗”这种需要区分同形项的结果。它比大海捞针难得多——因为所有针都是同一个模型写的,彼此高度相似,靠关键词匹配无法区分。它测的是检索 + 实体区分 + 序列定位,接近“在 500K 行的 PR 里找第 4 版实现”这种真实需求。

A · 同一模型族两代:衰减曲线被压平了 GPT-5.4 GPT-5.5 100% 50% 0% ≤8K 16K 32K 64K 128K 256K 512K 1M MRCR v2 8-needle(按上下文分桶) B · 1M 端点:同一时期差 4 倍 Claude Sonnet 4.5 18.5% Gemini 3.1 Pro 26.3% Claude Opus 4.7 32.2% GPT-5.4 36.6% GPT-5.5 74.0% Claude Opus 4.6 76.0% 口径:MRCR v2 8-needle,512K–1M 段 / 1M 单点
图 6 · A:GPT-5.4 与 GPT-5.5 的官方 MRCR v2 8-needle 分桶成绩。两代在 128K 以内几乎重合,差别全部出现在 256K 之后——GPT-5.5 把 256K–512K 从 57.5% 提到 81.5%,512K–1M 从 36.6% 提到 74.0%。B:同一时期不同模型在长尾端点的差距可达 4 倍(18.5% vs 76.0%)。数据来源:OpenAI GPT-5.4 / GPT-5.5 官方页面、Anthropic Opus 4.6 公告、Google DeepMind Gemini 3.1 Pro 模型卡。

6.2 分桶原始数据

评测≤8K16K32K64K128K256K512K1M
GPT-5.4 · MRCR v2 8-needle97.391.497.290.586.079.357.536.6
GPT-5.5 · MRCR v2 8-needle98.193.096.590.083.187.581.574.0
GPT-5.4 · Graphwalks BFS93.0(0–128K 合计)21.4(256K–1M 合计)
GPT-5.5 · Graphwalks BFS——73.7—45.4
Gemini 3.1 Pro · MRCR v2—84.9——26.3

数值单位皆为百分比。GPT-5.4 / GPT-5.5 数据来自 OpenAI 官方模型页;Gemini 3.1 Pro 的 128K(84.9%)与 1M(26.3%)来自 Google DeepMind 的 Gemini 3.1 Pro 模型卡。注意 Gemini 的一行里,1M 分数与它的前一代 Gemini 3 Pro 完全相同(26.3%)——这一代在长上下文检索上没有改进。

6.3 同代内部的差距,比跨代差距更大

Anthropic 在 2026 年 2 月发布 Claude Opus 4.6 时给出了一个很有说服力的对照:在 MRCR v2 的 8-needle 1M 变体上,Opus 4.6 得 76%,而同一家族的 Sonnet 4.5 只有 18.5%。Anthropic 的表述是这代表了“模型实际可用上下文长度的一次质变”。

这句话值得认真对待。它说明“1M 窗口”这个规格本身早已不是区分度——真正的区分度是在 1M 处还能不能干活。同一个产品线内的两个模型在这项指标上相差 4 倍,意味着任何按“窗口大小”做的选型都是无效的。

另外一个值得注意的信号是:Anthropic 在 Opus 4.6 上明确把 context compaction 写进了评测方法——Humanity's Last Exam 的测试中压缩在 50K token 处触发、累计跑到 3M;BrowseComp 中同样 50K 触发、累计跑到 10M。这等于厂商自己在承认:“长上下文能力”的正确形态是“压缩 + 长任务的组合能力”,而不是一次性塞入的能力。

6.4 SWE-bench Verified 已经饱和,长上下文鲁棒性正在接棒成为区分维度

2026 年 4 月的 SWE-bench Verified 榜单前五名:Claude Opus 4.5(80.9%)、Claude Opus 4.6(80.8%)、Gemini 3.1 Pro(80.6%)、MiniMax M2.5(80.2%)、GPT-5.2(80.0%)。前五名相差不到一个百分点,排名会随脚手架选择而月度重排。

与此同时,同一批模型在长上下文指标上差异巨大:Gemini 3.1 Pro 的 SWE-bench Verified 是 80.6%,与 Opus 4.6 几乎持平;但它在 MRCR v2 的 1M 上是 26.3%,远低于 Opus 4.6 的 76%。短任务能力趋同、长任务能力分化——这正是“smart zone”在 2026 年重新变得重要的原因。

模型SWE-bench VerifiedTerminal-Bench 2.0MRCR v2 长尾端
Claude Opus 4.680.8%65.4%76.0%(1M)
Claude Opus 4.580.9%——
Gemini 3.1 Pro80.6%68.5%26.3%(1M)
GPT-5.4——36.6%(512K–1M)
GPT-5.3-Codex56.8%(Pro)77.3%—

SWE-bench 与 Terminal-Bench 数据来自各厂商发布材料与榜单聚合;跨厂商比较存在脚手架差异,仅用于说明“短任务趋同”。Terminal-Bench 2.0 与 SWE-bench 的难度、口径不同,不可横向互推。

本节结论

不存在“2026 年的通用 smart zone 百分比”。存在的是每个模型在每个任务族上的一条衰减曲线,而且这条曲线每几个月就被厂商重画一次:GPT-5.4 → GPT-5.5 在 512K–1M 段提升了 37.4 个百分点;Opus 4.5 → 4.6 在 1M 段从“不可用”级别跃升到 76%。任何写死在代码或规范里的窗口百分比阈值,都会在下一个模型版本上过期。

07Harness 横评:七个编程助手怎么处理同一个问题

“模型能力”只是上限的一半。同一个模型放进不同 harness(脚手架),长任务表现可以差出数倍。这一节对比各主流 agent 的上下文机制——重点不是谁做得更好,而是它们对“上下文为什么会坏”给出了四种互不兼容的诊断,且都能跑通。

7.1 机制对比表

工具 窗口与触发 主要手段 隔离与可观测
Claude Code
Anthropic
自动压缩按 token 窗口而非比例配置,autoCompactWindow 可取 100K–1M,用 /autocompact 500k 设定 三层:microcompact(零模型调用,把旧工具输出归档到临时文件并替换为路径引用;触发条件为总量 >40K 且可省 >20K,保留最近 3 个工具结果)→ auto-compact(接近上限时摘要)→ /compact [焦点指令] 手动。另有 /clear、/rewind 的“从这里/到这里总结”、/btw(答案不进历史) subagent 是官方首推的上下文工具:官方模拟中研究子智能体在自己的窗口里读了 6,100 token 的文件,主会话只收到 420 token 的摘要。
/context 可查当前占用
Codex CLI
OpenAI
默认 272K,长上下文模式至约 1.05M 压缩时分三步:跳过最近 2 轮用户对话 → 保护最近 40K 的工具输出不动 → 更老的工具输出用时间戳标记为“已压缩”,模型只看到占位符 [Old tool result content cleared](数据仍在库中) 有 context compaction;用户报告压缩后可能丢失细节(例如忘记早前指定的运行环境版本)
Cursor
Anysphere
超出模型窗口时自动压缩旧消息,并提示用户开启带摘要的新对话 Dynamic Context Discovery(官方博客):长工具响应写入文件、由 agent 用 tail 按需读取;聊天记录作为文件引用以提升摘要质量;集成终端会话全部当作文件同步到本地;MCP 工具描述同步进文件夹,只注入工具名 Canvas 内的 Context Explorer 细分 token 去向(系统提示 / 工具定义 / rules / skills),并内置 “Debug with Agent” 按钮让 agent 主动找压缩机会
Cline 按 utilizationRatio 触发,支持固定预留或百分比阈值;未提供模型信息时默认 128K 压缩流水线两种策略可选:basic(裁掉最老消息,保留 system prompt 与最近若干轮)与 agentic(用第二个 LLM 生成摘要);手动压缩默认目标比例 0.5。v3.25 起提供 /smol(别名 /compact)手动压缩 Focus Chain 待办清单可穿越压缩存活,充当进度锚点
GitHub Copilot CLI 以 128K 为限;Agent 模式窗口取决于所选上游模型 /compact 摘要历史、/clear 硬重置。/usage 给出三类 token 分解:对话历史、@ 引用注入的文件、系统指令 /context 显示占用百分比;@file 优于 @folder 是官方推荐的省上下文方式
Amp
Sourcegraph
历史上不做自动压缩;2026 年 Neo CLI 加入 90% 用量时的自动管理 立场鲜明地拒绝递归摘要(引用 OpenAI 内部研究称递归摘要会导致性能逐步衰减),改用 /handoff:把当前线程要点打包进一个新线程,用户可在交接前审查并编辑带过去的内容 线程是一等公民,可用 @@ 引用其他线程、用 threads: map 可视化线程关系
OpenCode 未公开固定阈值 两步:Prune(用时间戳标记隐藏,而非真删,数据可恢复)+ Summary(五段式结构化摘要:目标 / 指令 / 发现 / 已完成 / 相关文件),并自动回放用户最后一条消息——让模型从你最近的指令继续,而不是从摘要文本继续 给模型看的详细摘要与给用户看的短摘要分离

Claude Code、Cursor、Cline 的部分机制来自各自官方文档与官方博客;Codex、OpenCode、Amp 的细节来自一份六家横评的技术分析(二手转述,未获官方文档逐一验证),已按“参考”而非“事实”对待。

7.2 四种互相不兼容的诊断

把这些机制放回第 1 节的三条边界,可以看出它们其实是在治不同的病:

压缩派 · 诊断:容量不够

Claude Code / Codex / Cline / Cursor / Copilot / OpenCode。核心动作是把旧内容变小:工具结果清除 → 摘要 → 上下文重置。分层渐进、成本递增。这一派最成熟,也最容易过度设计。

换线程派 · 诊断:长对话本身就是病

Amp。认为递归摘要会带来累积语义漂移,因此坚持用“一系列有焦点的短线程”取代一个逐渐退化的长线程,并把交接内容交给人类审查。代价是人工成本,收益是可预测性。

外置派 · 诊断:内存不该被当内存用

Manus、Anthropic 的 memory tool、Cursor 的文件化策略。把文件系统当作无限、可还原的外部上下文;压缩必须保留指针(URL、文件路径),否则就是不可逆的信息损失。

隔离派 · 诊断:污染而非容量

所有家的 subagent 机制。核心不是省钱,是让探索过程不进入主会话。Anthropic 的说法很直接:“既然上下文是根本约束,subagent 就是最有力的工具之一。”

7.3 Anthropic 自己承认的一件事:Harness 会过期

这是本报告里最重要的一条组织性教训,来自 Anthropic 的工程博客《Scaling Managed Agents》与《Harness design for long-running application development》:

原话的逻辑链

Sonnet 4.5 会出现 context anxiety。Anthropic 为此在 harness 里加入了 context reset——清空窗口、开一个新 agent,同时传入结构化的交接材料。

换到 Opus 4.5 之后,这个行为消失了。于是这批 context reset 变成“纯开销”,还会带来额外延迟,并“在某些情况下导致缓存被错误丢弃”,反而在损害性能。

Anthropic 的总结:harness 编码的是“模型做不到什么”的假设;这些假设会随模型改进而过期。当模型变了而 harness 没变,agent 就会变差。

他们由此提出的架构解法是把“brain”(模型 + harness)与“hands”(沙箱与工具)以及 session(append-only 事件日志)解耦:上下文窗口是 session 日志的一个视图,而不是日志本身。这样压缩策略可以放在平台层,模型改进时不必重写 harness。

对自建 agent 产品的团队,这条教训可以直接翻译成一个工程要求:把“为当前模型缺陷打的补丁”显式登记成一份清单,并在每次换模型时逐条复验。不登记,它们就会变成没人敢删的死代码,并且持续拖慢系统。

7.4 从七家里提炼出的六条共识

#原则含义来源
1分层渐进,不一刀切定义多个水位线,越接近上限手段越激进,系统始终在做小幅维护,避免悬崖式塌方跨厂商分析
2成本严格递增便宜的(字符串截断、占位符替换)先做,贵的(调 LLM 摘要)最后做;能用 0 成本释放的空间绝不花钱买跨厂商分析
3增量摘要优于全量摘要维护一份“活的摘要”,每次只合并新增部分,避免“摘要的摘要的摘要”造成语义漂移;同时单次摘要更便宜也更准跨厂商分析
4压缩必须可还原丢内容可以,丢指针不行。保留 URL、文件路径、行号,让模型能自己取回原文(Manus、Cursor、Codex 的做法一致)工程实践
5状态外置为文件计划、进度、决策写进仓库里的文件,而不是依赖会话历史。这是跨会话连续性的唯一可靠载体工程实践
6先治污染,再治容量失败轨迹、已被否决的方案、重复读取的文件,优先级高于“总量超了”。前者对推理的伤害是不成比例的本报告综合

08上下文预算解剖:token 到底被谁吃掉了

前面的证据说明“不能用满”。这一节回答“那到底花在哪了”。结论有点出人意料:在一次正常的编程会话里,聊天内容几乎不占预算,真正的开销是启动固定值、文件读取和工具 schema。

8.1 进入对话之前就已经花掉的部分

Anthropic 在 Claude Code 文档里放了一个可交互的上下文窗口模拟器,给出了一份“代表性会话”的 token 成本(官方标注为示意值)。它在设计上有两个用途:让你知道启动阶段并非免费;以及让你意识到——一个调试细节的代价,可能等于一整套工具链的启动成本。

单位:token System prompt 4,200 项目 CLAUDE.md 1,800 Auto memory 680 Skill 描述清单 450 全局 CLAUDE.md 320 环境信息 280 MCP 工具名(延迟加载) 120 合计 ≈ 7,850 token ≈ 200K 窗口的 3.9% 它在你说第一句话之前就已经占用,并且每一轮都会重新发送
图 7 · Claude Code 启动阶段的固定开销明细。数值为 Anthropic 官方文档中的示意值(用于说明相对权重,非实测某仓库),但相对关系很有指导性:系统提示一项就占了启动开销的一半以上。来源:Claude Code 文档《Explore the context window》。

把启动开销放回整场会话,官方同一份材料给出的比例是:

35%

启动固定开销
系统提示、CLAUDE.md、记忆、技能清单、MCP 工具名

31%

4 次文件读取
文件读取是上下文的主要消耗者

1%

你自己的输入
命令与搜索输出约 8%

这三行数字加起来就能推出大部分“最佳实践”。既然聊天只占 1%,那么“少说两句”几乎没有收益;而“少读 3 个无关文件”能省下接近 25% 的预算。“用 @path 直接给文件,而不是让模型自己找”之所以有效,是因为它把“可能读 10 个文件”变成“确定读 2 个”。

8.2 MCP 税:从 1.6% 到 80%,它是设计变量而不是常数

工具定义(JSON schema)会被注入上下文,且与你是否调用它无关。围绕它流传着一批差异极大的数字。把它们并列之后你会发现:区间之宽本身就是结论。

A · 治理后的量级(0–5%) Claude Code 默认 0.06%(仅工具名) 典型 10 工具 MCP 1.5% Harness 改造后 1.6% 0 2.5% 5% A 与 B 相差约 50 倍 同一套 MCP 配置,在不同 harness 下的体验可以完全不同。 工具定义占 26% 还是 1.6%,是架构选择的结果,不是宿命。 B · 未治理的量级(0–100%) GitHub MCP(35 工具) 13% 5 servers / 58 工具 27.5% MySQL server(106 工具) 27.3% 5 servers / ~120 工具 38.6% 最坏自报案例 80% 0 50% 100%
图 8 · 工具定义占 200K 窗口的比例。A 组:Claude Code 默认只注入工具名、schema 延迟加载(官方示意值 120 token);某平台团队把工具定义从窗口的 26% 改造成 1.6%(registry 按需查询模式);典型的 10 工具 server 约 1.5%。B 组:未做治理时的观测值——GitHub MCP 35 个工具约 26,000 token;5 个 server 58 个工具约 55,000 token(27.5%);MySQL server 106 个工具 54,600 token;“最坏自报案例”为一位工程师记录的 4 server / 47 工具达到 80%。区间跨度本身就是结论。

关于成本量级,还有两个可直接采用的估算:简单工具约 300–400 token,复杂工具约 800–1,200 token;主流生态里开发者平均连接 4–7 个 MCP server。用这两个数乘一下,就能在接入任何 MCP 之前先算清楚代价。

可直接照搬的三条治理动作

  1. 延迟加载 schema。启动只注入工具名与一句描述,模型需要时再取。Claude Code 默认就是这个行为;Cursor 用“每个 server 一个文件夹”的动态发现,A/B 测试中调用 MCP 的运行总 token 消耗下降 46.9%(官方数据,统计显著,但会随已安装 MCP 数量大幅波动)。
  2. 瘦身描述。把工具描述压到“名称 + 参数类型 + 一句意图”。行业实践报告可以达到约 67% 的 schema 缩减,同时工具选择准确率无明显下降。
  3. 白名单 + 服务端过滤。一个 server 暴露 106 个工具时,agent 实际用到的往往不到 10 个。把不需要的工具在服务端就过滤掉。

8.3 一个可执行的 200K 预算模板

把上面所有约束落在同一张表上。注意最后一行的“余量”不是浪费——它同时服务三件事:真实的能力缓冲、context anxiety 的安抚、以及出错时的回旋空间。

组成预算说明
系统提示 + 工具 schema≤ 4Kschema 一律延迟加载;不用的 MCP 直接不挂
项目规则(CLAUDE.md / rules)≤ 3K官方建议 200 行以内;参考性内容移到按需加载的 skill
当前任务相关文件≤ 40K单文件超过 5K 只给路径引用;用 @path 指定而不是让模型搜
工具输出累计≤ 30K超过即清旧结果(保留指针,不保留内容)
对话历史≤ 20K跨任务用 /clear;同一任务出界用带焦点的压缩
输出预留≥ 16K多数 API 的输入与输出共享同一窗口;Opus 4.6 最大输出 128K,Gemini 3.1 Pro 为 64K
余量(不分配)≥ 80K这是 40% 规则唯一正确的用法——不是“用到 40% 就停”,而是“始终留出 40%”

本节最重要的一个反转

把 40% 从“使用上限”改读成“保留余量”,前面所有看似矛盾的证据就同时成立了:
Anthropic 的官方模拟会话只用了窗口的 11%(远在余量线之内);LOCA-bench 显示 16%–32% 处质量已经开始掉(说明 40% 作为使用上限太晚);Cognition 发现给模型更大的窗口但限制实际使用能治好 context anxiety(说明余量必须被模型感知到)。
三者指向同一件事:把窗口当预算,先划掉不用的 40%,再在剩下的 60% 里按任务分配。

09最佳实践:三层可执行清单

前面的证据都指向同一个动作序列:先删无用的,再隔离探索,然后才压缩,最后才考虑换模型。下面按“个人日常 / 团队工程 / Agent 产品”分三层给出具体动作,每一条都能追溯到前文的一条证据。

9.1 先给一个决策树

Q1 · 本任务需要的「高信号 token」是否小于 16K? 口径:任务必需的文件内容 + 指令 + 工具输出,不含探索过程。 是 直接做,别压缩 从干净会话开始,参考性内容用 @path 指定。 否 Q2 · 任务能否拆成可独立验证的切片? 每个切片要有自己的验收标准(测试、可运行的行为)。 是 规格驱动:先写规格,再实现 规格自包含:文件、接口、边界、验收步骤。 否 Q3 · 探索部分(找文件、理流程)能否外包? 这类工作会读很多文件,但只留下很少结论。 是 用 subagent 隔离探索 实测:子窗口读 6,100 token,主会话只收 420。 否 兜底:单会话内的分层压缩 ① 清除旧工具结果(零模型调用)→ ② 增量摘要 → ③ 上下文重置 每一步都保留文件路径与行号,确保压缩可还原。
图 9 · 上下文策略选型。注意顺序:先判断能不能“不做”(切片、外包),再考虑“压缩”。压缩是最后手段而非第一反应——因为它是唯一有信息损失的手段。决策树中的 16K 阈值来自 LOCA-bench 与 SWE-bench 轨迹数据的交叉观察(真实编程任务的健康轨迹多在 20–30K 以内,而 32K 附近已出现明显拐点),实际使用时建议按自己的模型实测校准。

9.2 个人日常(10 条)

#动作为什么 / 依据
1一任务一会话,切换任务就 /clear官方明确:“长会话里充满无关上下文会降低性能”。切换任务时 /clear 比压缩更彻底也更便宜
2两次纠正规则:同一问题纠正超过两次就停手重开官方原话:此时上下文里已堆满失败方案,用更具体的提示重开,“几乎总是优于”继续修下去
3直接给文件:用 @path 指定,而不是让模型搜索文件读取占会话约 31%,用户自己的输入只占约 1%。让模型找 10 个文件 vs 你给 2 个,差 20 多个百分点
4探索走 subagent“我需要先搞清楚 X 怎么跟 Y 通信”这类任务最烧上下文,而结论往往只有几百 token
5压缩要带焦点:/compact focus on the auth bug fix自动压缩的摘要由模型猜什么重要;带焦点时由你决定保留什么
6只在同一任务续做时压缩;跨任务一律 /clear压缩保留连续性,代价是摘要的信息损失;跨任务不需要连续性,也就没必要付这个代价
7快速确认用 /btw,不让答案进入历史查一个细节不该永久占用预算
8动手前先出计划(计划模式)设计阶段不产生工具输出与长日志,避免大段内容在实现之前就占满窗口
9定期 /context 看构成MCP 与技能清单的开销常常超出预期;第一步是看清,不是优化
10换模型后重新校准,不要沿用上一代的手感GPT-5.4→5.5 在 512K–1M 段提升 37.4 个百分点;旧经验可能已经错的离谱

9.3 团队工程(8 条)

#动作为什么 / 依据
1CLAUDE.md 控制在 200 行内官方判定标准:“删掉这行会不会导致模型犯错”。臃肿的规则文件会让模型忽略你的真实指令
2参考性内容外移到 skill,但关键规则必须放项目根 CLAUDE.md带 paths: 前置声明的规则与嵌套 CLAUDE.md 在压缩后会丢失,需要匹配文件被再次读取才回来;技能清单在压缩后不再重新注入
3在 CLAUDE.md 里写明压缩保留项例如“压缩时始终保留已修改文件清单与测试命令”,把保留策略从模型的猜测变成你的规定
4确定性约束用 hooks,不用提示词hooks 以代码形式运行、不占用上下文;提示词是建议性的,且每一轮都在付费
5MCP 治理:schema 延迟加载 + 描述瘦身 + 工具白名单 + 季度审计工具定义占用区间可从 1.6% 到 80%;这是架构选择,不是宿命。生态里开发者平均连接 4–7 个 server
6用 subagent 做对抗性审查reviewer 在独立窗口里比对 diff 与规格,发现直接回到实现会话,不用你手工搬运。注意提示它只报影响正确性的缺口,否则会过度设计
7把上下文指标纳入可观测性需要采集:每会话 token 用量与曲线、压缩触发次数与时机、压缩后任务失败率、工具定义的 token 占比
8登记“模型缺陷补丁”清单,换模型时逐条复验Anthropic 的教训:为 Sonnet 4.5 加的 context reset 到 Opus 4.5 变成纯开销,还破坏缓存

9.4 Agent 产品(7 条)

#动作为什么 / 依据
1分层渐进压缩,成本严格递增字符串截断 / 占位符替换(0 成本)先做,调 LLM 摘要(有成本、有损失)最后做
2增量摘要,维护一份“活的摘要”避免“摘要的摘要的摘要”造成语义漂移;同时单次摘要输入更短,更便宜也更准
3压缩必须可还原:丢内容可以,丢指针不行保留 URL、文件路径、行号;Manus、Cursor、Codex 三家独立收敛到同一做法
4状态外置为文件(进度文件 + git 历史)Anthropic 的长任务 harness 用 init.sh + 进度文件 + 初始 git commit,让新会话能快速理解现状
5让模型看到余量Cognition 的做法:开启更大的窗口但限制实际用量,模型相信自己有余量后行为恢复正常。也可显式告知剩余 token
6session 日志与上下文视图分离append-only 日志是真相,覆盖窗口是它的一个视图。上下文策略可以放在平台层随模型更新,不必改 harness
7策略按模型实测,不跨模型照搬LOCA-bench:记忆工具与上下文感知对 Gemini-3-Flash、GPT-5.2 有帮助,却反而伤害 DeepSeek-V3.2-Thinking

9.5 成熟度阶梯

L0 · 无意识 一个会话干到底 满了等自动压缩 忽略启动开销 不清工具输出 L1 · 感知 会看用量占比 知道窗口 ≠ 可用 任务间 /clear 规则文件未瘦身 L2 · 受控 一任务一会话 出界立刻清理 规则文件精简 探索交给 subagent 指令首尾各一次 压缩保留文件清单 L3 · 度量 实测每模型曲线 工具定义延迟加载 用量纳入观测 预算表进规范 补丁清单登记 按任务配窗口档 压缩对模型校准 L4 · 自适应 自动选窗口档位 按模型切压缩策略 换模型自动复验 日志与视图分离 成本进交付度量 策略回归测试 余量显式可见 L0 · 无意识 L1 · 感知 L2 · 受控 L3 · 度量 L4 · 自适应
图 10 · 上下文工程成熟度阶梯。关键的分界线在 L2 → L3:L0–L2 靠习惯,L3 起靠度量。多数团队卡在 L2——会用 /clear 和 subagent,但没有“每个模型在哪个长度开始退化”的实测数据,因此每次换模型都要重新交学费。

9.6 30 / 60 / 90 天落地路线

阶段动作可验收的产出
第 0–30 天
看清
全组统一 /context 与用量观测;审计现有 MCP 与规则文件的 token 占用;把 CLAUDE.md 压到 200 行内 一份“启动开销清单”(每项多少 token)+ 一份瘦身后的规则文件;MCP schema 改为延迟加载
第 31–60 天
控制
推行一任务一会话、两次纠正规则、探索走 subagent、压缩带焦点指令;建立按任务的上下文预算表 预算表进入团队规范;压缩保留项写进 CLAUDE.md;子智能体审查纳入交付流程
第 61–90 天
度量
用真实仓库跑分档长度测试,画出自家代码库上的衰减曲线;建立 harness 补丁清单与换模型复验流程 每个在用的模型一份“有效长度参考值”;换模型 checklist;压缩后任务失败率进入看板

为什么要自己测。第 5 节那位作者对 LOCA-bench 的评价适用于所有公开基准:绝对数值会随任务域与脚手架大幅变化,但相对排序通常是稳的。你的代码库有自己的文件大小分布、工具链与失败模式。公开榜单是先验,不是你的测量结果。第 90 天的交付物不是“我们读了最新的模型评测”,而是“我们知道在我们自己的仓库上,用哪个模型、在多少 token 处、什么任务类型开始变差”。

10反模式清单

每一条都对应前文的一条证据。分三层:战略层决定方向,工程层决定日常效率,治理层决定这套东西能不能活过下一次模型换代。

10.1 战略层

反模式症状修正
按窗口大小选型 “选 1M 的那个模型”;上线后发现长任务照样丢要求;账单还更高 按目标长度处的准确率选型。至少要问:在 128K / 512K / 1M 处分别是多少?出处在哪一档?
把 40% 当物理常数写进规范 代码里出现 0.4 * context_window;换模型后规则自动失效却没人发现 改成两层:“始终预留 40% 余量”(不变)+ “每个模型的告警阈值单独配置”(随版本更新)
用评测分数代表长任务可靠性 SWE-bench Verified 前五名只差 1 个百分点,却据此排定优先级;忽略了同批模型在长上下文指标上差 4 倍 把长上下文鲁棒性单列为一个选型维度。短任务分数已经饱和,区分度不在那里
用“换更大的窗口”解决上下文不足 窗口从 200K 换到 1M,agent 还是在第 40 轮开始重复自己 先治信号密度与污染,再谈容量。窗口变大只会让“往里面乱塞”的代价更晚暴露、总额更高
信二手聚合站的“有效率”表格 表格里写着“模型 X 可用 500K(50% 有效率)”,但没有测量方法,且不同站点彼此矛盾 只用两种数据:厂商官方发布的评测分档,或你自己在真实仓库上跑出来的曲线

10.2 工程层

反模式症状修正
全量前置加载工具 schema 一句“git status”之前,工具定义已经吃掉窗口的 27%–80% 延迟加载(只注入工具名)+ 描述瘦身 + 工具白名单。三件一起做,才能从 26% 降到个位数
用压缩替代重排 为了省 token 删掉了放在中段的硬约束,然后奇怪模型为什么不遵守 顺序很重要:先重排(关键约束移到开头与结尾)→ 再删无用 → 最后才压缩
压缩不可还原 压缩后连“改过哪些文件”都说不清;模型开始重复已完成的修改 丢内容可以,丢指针不行。保留文件路径、行号、URL;把保留策略写进 CLAUDE.md
递归全量摘要 摘要的摘要的摘要,语义逐步漂移;模型信心十足地执行一个已经变形的需求 增量摘要:维护一份“活的摘要”,每次只把新增部分合并进去,不重写历史
让模型自己找文件 一句开放式指令触发十几次搜索与读取,占掉整场会话三分之一预算 用 @path 直接指定。文件读取与启动开销合计占会话约 66%,你自己的输入只占 1%——优化后者是徒劳
在同一条轨迹里反复纠正 对话越来越长,模型越来越差;每一次纠正都成为下一轮的“先例” 两次纠正规则:超过两次就停手,/clear,用吸收了经验的新提示重开
状态只存在会话历史里 换会话、崩一次、压缩一次,进度就没了;新会话从猜开始 进度、决策、计划写成仓库里的文件(progress 文件 + git 历史),并作为初始化的标准动作
忽略输出预留 输入塞到接近上限,输出被截断在半句代码上 多数 API 的输入输出共享同一窗口。至少预留 16K;Opus 4.6 最大输出 128K、Gemini 3.1 Pro 为 64K
用提示词做确定性约束 “绝对不要动 migrations 目录”这类规则时灵时不灵,还要每轮付费 用 hooks。它们以代码运行、不占上下文、保证触发。提示词留给判断性的事

10.3 治理层

反模式症状修正
失败经验以“权威说法”形式传播 “Horthy 分析了 10 万+ 开发者会话得出 40%”被反复引用;无人能给出出处 给每条经验标证据强度。经验法则就写“这是经验法则”,不要包装成实验结论
不为模型缺陷补丁登记清单 harness 里堆着一批没人敢删的 workaround;它们开始拖慢系统、破坏缓存 每条补丁记录:为什么加、针对哪个模型行为、什么条件下可以删。换模型时逐条复验
不度量上下文 只知道“这个月 token 涨了”,不知道是哪个会话、哪个阶段、哪次压缩造成的 采集四类指标:每会话 token 曲线、压缩触发时机与次数、压缩后任务失败率、工具定义占比
跨模型照搬上下文策略 把给 A 模型调好的记忆工具与上下文感知直接用在 B 上,效果反而变差 策略按模型实测。LOCA-bench 已经证明同一套策略对不同模型可以是正收益或负收益
只看 token 成本、不看延迟 成本可控,但多步 agent 任务因为每步都在等首 token 而变得不可用 把延迟纳入预算:128K 上下文首 token 约 15 秒、1M 约 1 分钟(厂商公开数据)。多步任务里它会复利

11结论与判断

以下内容中,凡是标注为“判断”的,是本报告基于前述证据的推论,不是行业共识,也不来自任何单一来源。

11.1 三个可以确定的结论

① “Smart Zone” 正确的用法是一个告警,不是一个阈值

它回答的是“什么时候该停下来重开一个会话 / 换一种做法”,这部分非常有价值。它没有回答“模型在多少 token 处开始退化”——这需要按模型、按任务族实测。把前者当后者用,是几乎所有误用的来源。本报告给出的替代方案是把它重读为“始终保留 40% 余量”,这样它同时与官方模拟数据(健康会话只用 11%)、LOCA-bench 的早期拐点(16%–32%)、以及 Cognition 的焦虑缓解方案(给模型可见余量)三者自洽。

② 2026 年的真实瓶颈已经从“窗口不够大”变成“信号密度不够高”

窗口在两年内从 8K 涨到 1M,而有效上下文只是从“一半”涨到“一半以上”。同时,agent 的真实健康轨迹依然在 20–30K 量级(SWE-bench 统计),并且 64K 完美检索条件下的单次修复成功率可以低到 0%–7%。决定产出的是窗口里那一小撮 token 的质量,而不是窗口的容量。

③ 上下文工程能力正在取代模型选择,成为差异化的主要来源

SWE-bench Verified 前五名相差不到一个百分点,而同一批模型在长上下文的 1M 端点相差 4 倍;同一套模型放进不同 harness,token 消耗可以差 4–5 倍而代码质量几乎无差别。当模型能力趋同,harness 与上下文策略就是唯一还有杠杆的地方——这也正是 Horthy 所说“coding agent 能力会商品化,差异化转移到团队与工作流适配”的经验版本。

11.2 四条判断(非共识)

判断理由与可观察信号
“窗口百分比”类经验的半衰期会继续缩短到 3–6 个月 GPT-5.4 → GPT-5.5 在 512K–1M 段 +37.4 个百分点;Opus 4.5 → 4.6 在 1M 段从小几十个点跃升到 76%。任何写死的阈值都会在下一个版本失效。可观察信号:厂商开始主动在模型页发布分桶成绩,而不是单一“1M 可用”
context anxiety 会从“提示词技巧”变成训练层修复 ICML 2026 的《Lost in Context》已经证明:轻量 SFT 可以让焦虑下降超过 50%,说明这是行为可变的,而不是能力不足。Anthropic 的实践也印证了同一路径(Opus 4.5 上该行为自行消失)。可观察信号:新模型开始发布“长任务完成率”而非仅“检索准确率”
“压缩 + 长任务”的组合可靠性会成为新的评测战场 Anthropic 已经把 compaction 写进评测方法(HLE 累计 3M、BrowseComp 累计 10M token),这是在为“单次塞入”之外的能力建标准。可观察信号:出现以“跨 N 次压缩后的任务完成率”为主指标的公开基准
上下文观测工具会从“显示百分比”进化为“预测拐点” 当前工具(Claude Code 的 /context、Cursor 的 Context Explorer、各类状态栏插件)都只显示占用。真正的需求是在任务变坏之前报警。可观察信号:出现基于轨迹特征(重复读取、工具调用平台化、输出变短)而非单纯 token 数的预警产品

11.3 尚未解决的问题(本报告未能回答)

  • 没有任何公开研究做过“窗口占用百分比 vs 输出质量”的连续测量。因此“40%”这个数字不可能被证实或证伪。本报告只能给出“拐点落在 16%–32%(agent 任务)”这一来自横向基准的区间估计,它不是连续测量。
  • MRCR v2 与 agent 任务成功率之间的相关性没有被公开测量过。它是目前最好的“长上下文推理”代理指标,但代理指标不等于目标指标。这是本报告最重要的证据缺口:我们用它给模型排序,但没有证据表明这个排序能预测你的 agent 在真实任务上的表现。
  • 缺少“压缩后质量损失”的量化研究。各家 harness 的压缩策略差异巨大,但公开的对比实验几乎没有。Cline 的 basic vs agentic、Amp 的 handoff、OpenCode 的 prune+replay 各自的效果目前只有厂商自述。
  • 长上下文退化与模型规模、架构的关系不明。RULER 的原始结论提到更大的模型显著受益,而非 Transformer 架构在此类任务上表现不及 Transformer;但 2026 年的混合注意力架构(如压缩稀疏注意力)在这方面还没有系统性的公开对比。

11.4 给三类角色的最短建议

角色如果只做一件事
日常使用者执行“两次纠正规则” + 任务之间 /clear。这两个动作几乎零成本,且直接命中上下文里最贵的那部分——失败轨迹。
团队技术负责人把 CLAUDE.md 压到 200 行以内,并把 MCP schema 改成延迟加载。这两件事同时降低每一轮的固定成本,且不依赖任何模型特性。
Agent 产品开发者把 session 日志与上下文窗口解耦,然后建立“模型缺陷补丁清单 + 换模型复验流程”。这是唯一能让你在模型每三个月换代一次的节奏下不被拖死的架构选择。

12参考来源

按证据类型分组。本报告的原则是:中文二手转述只用于线索发现,所有引用数据回溯一手来源;引用前做数量级反推自洽性检查。

A · 同行评议论文与预印本(一手研究)

  1. Liu, N. F. et al. Lost in the Middle: How Language Models Use Long Contexts. arXiv:2307.03172(TACL)。位置效应的原始来源。
  2. Hsieh, C.-P. et al. RULER: What's the Real Context Size of Your Long-Context Language Models? arXiv:2404.06654(COLM 2024,NVIDIA)。有效上下文长度指标的提出者。
  3. Modarressi, A. et al. NoLiMa: Long-Context Evaluation Beyond Literal Matching. arXiv:2502.05167;ICML 2025,PMLR 267:44554–44570(Adobe Research / LMU 慕尼黑)。13 个模型中 11 个在 32K 跌破基线 50%。
  4. Du, Y. et al. Context Length Alone Hurts LLM Performance Despite Perfect Retrieval. arXiv:2510.05381(EMNLP 2025 Findings)。完美检索下仍退化 13.9%–85%;掩码后仍 ≥7.9%;recitation 缓解方案。
  5. Igbinedion, I., Ross, J., Ricardez, E., Karaman, S., So, E. Lost in Context: Addressing Context Anxiety in Large Language Models. arXiv:2607.21616(ICML 2026,MIT)。首次系统测量 context anxiety:token 估计偏差 24%、准确率 −15%、token 消耗 +54%;SFT 可降低焦虑 >50%。
  6. Zeng, W., Huang, Y., He, J. LOCA-bench: Benchmarking Language Agents Under Controllable and Extreme Context Growth. arXiv:2602.07962(HKUST)。本报告第 5 节的核心数据源,525 个样本、7 档长度、280 个工具。
  7. The Limits of Long-Context Reasoning in Automated Bug Fixing. arXiv:2602.16069。SWE-bench 轨迹长度统计(普遍 <20–30K)与 64K 完美检索下的近零解决率。
  8. The SWE-Bench Illusion: When State-of-the-Art LLMs Remember Instead of Reason. arXiv:2506.12286。用于说明 SWE-bench 结果的解释边界。

B · 厂商一手工程文档与官方评测

  1. Anthropic. Effective context engineering for AI agents(2025-09-29)。注意力预算、context rot 的框架来源;compaction / 结构化笔记 / subagent 三技术;子智能体返回 1,000–2,000 token 摘要。
  2. Anthropic. Effective harnesses for long-running agents。initializer agent + coding agent、进度文件、干净状态。
  3. Anthropic. Harness design for long-running application development。context reset 的引入与移除;三智能体 harness(planner / generator / evaluator)。
  4. Anthropic. Scaling Managed Agents: Decoupling the brain from the hands。“harness 假设会过期”;session 作为 append-only 日志与上下文的视图关系。
  5. Anthropic. Claude Opus 4.6 发布公告。1M token 窗口(beta)、MRCR v2 8-needle 1M = 76%(Sonnet 4.5 为 18.5%)、context compaction(beta)、adaptive thinking、四档 effort、对 >200K 提示的溢价定价($10 / $37.50);compaction 在 HLE 于 50K 触发累计 3M、BrowseComp 累计 10M。
  6. Anthropic. Claude Code 官方文档:Best practices(两次纠正规则、/clear、/compact 焦点、subagent、rewind 检查点、常见失败模式);Explore the context window(启动开销示意值、压缩生存表、/autocompact 窗口);Claude Code on the web(云端自动压缩在窗口中点触发)。
  7. OpenAI. Introducing GPT-4.1 in the API。MRCR 与 Graphwalks 的公开化;首 token 延迟数据(128K ≈ 15 秒,1M ≈ 1 分钟)。
  8. OpenAI. Introducing GPT-5.4。MRCR v2 8-needle 完整分桶成绩;Graphwalks BFS / parents 分档。
  9. OpenAI. Introducing GPT-5.5。MRCR v2 8-needle 分桶(512K–1M = 74.0%);Graphwalks;跨模型对照(含 Claude Opus 4.7、Gemini 3.1 Pro 部分档位)。
  10. Google DeepMind. Gemini 3.1 Pro Model Card。1M 输入 / 64K 输出;MRCR v2(128K)= 84.9%,MRCR v2(1M)= 26.3%(与前代完全相同);SWE-bench Verified 80.6%;Terminal-Bench 2.0 68.5%。
  11. Cursor. Dynamic context discovery(官方博客)。长工具响应文件化、聊天记录作为文件、MCP 工具描述同步至文件夹、终端会话文件化;A/B 测试中调用 MCP 的运行总 token 消耗 −46.9%(统计显著,随已安装 MCP 数量波动)。
  12. Cursor. Changelog — Context usage report in canvas(2026-06-03)。Context Explorer 的 token 细分与 “Debug with Agent”。
  13. Cline. SDK 文档 — Context Compaction & Turn Management。basic / agentic 两种压缩策略、utilizationRatio 触发、默认 128K、手动目标比例 0.5。
  14. GitHub Copilot CLI 文档 — Context and Conversations。/context、/compact、/clear、/usage 的三类 token 分解;128K 限制。
  15. Peak Ji(Manus). Context Engineering for AI Agents: Lessons from Building Manus。KV-cache 优先、append-only、mask 而非移除、文件系统作为上下文、todo 复述、保留错误、避免 few-shot 化;缓存与未缓存成本差 10 倍、输入输出比约 100:1。

C · 独立研究与行业分析

  1. Chroma Research(Kelly Hong, Anton Troynikov, Jeff Huber). Context Rot: How Increasing Input Tokens Impacts LLM Performance(2025-07)。18 个模型、五类受控实验;结构连贯性反而损害性能;Claude 保守 / GPT 高幻觉。注意:Chroma 为向量数据库厂商,结论与其商业利益方向一致,但实验设计公开可复现。
  2. Dex Horthy(HumanLayer). No Vibes Allowed: Solving Hard Problems in Complex Codebases(AI Engineer World's Fair 2025)。smart zone / dumb zone 的原始出处;约 40% 的经验阈值;RPI 工作流;frequent intentional compaction。同作者 2025 年 4 月《12-Factor Agents》为 “context engineering” 一词的出处。
  3. 跨厂商 agent 上下文压缩策略横评(腾讯云开发者社区 / 腾讯新闻,2026-06)。用于 Codex CLI、Amp、OpenCode、Cline 的机制细节与三条共识原则。二手转述,未逐条获得官方文档验证
  4. LOCA-bench 的第三方解读(用于交叉核对论文 Table 1/2 数值与失败模式归纳)。二手转述

D · 明确不采信的数据

  1. “Horthy 分析了 10 万+ 开发者会话得出 40% 拐点”。无任何一手材料支持。该表述见于多个上下文状态栏插件的说明页;数量级疑为与 DORA 类大型行业调查混淆。本报告全程按“经验法则”处理。
  2. 聚合站的“有效上下文百分比”表格。例如“GPT-5.5 可用 512K(50%)”“Claude Opus 4.6 可用 500K”“Gemini 3.1 Pro 可用 128K(13%)”。这些表格未说明基准、阈值、needle 数量与位置分布,且不同站点互相矛盾。仅可作为调研线索。
  3. “F1 下降约 45%”“幻觉率飙升至 40%”类数字。出现在部分上下文状态栏工具的说明页中,无出处,不采用。
  4. 单一开发者自报的极端案例(如工具 schema 占窗口 80%、账单从 $387 降到 $180)。作为现象存在性证据引用,不作为量级依据。

E · 数据冲突与不确定项(供后续核验)

  • Claude Code 自动压缩的触发比例:官方文档只说明按 token 窗口(autoCompactWindow 100K–1M)配置,未公布百分比。一份针对未公开环境变量的第三方分析给出约 78%;另有实践者博客称约 95%。本报告不采用任何单一比例,只采用“按 token 窗口而非比例配置”这一官方事实。
  • Claude Opus 4.6 在 1M 的 MRCR v2 成绩:Anthropic 官方公告与多家媒体报道均为 76%;另有评测站点给出 78.3%(标注为 2026 年 3 月更新的全上下文测量)。本报告采用官方 76%。
  • Opus 4.7 的长上下文表现:OpenAI 的 GPT-5.5 对照表中给出 Opus 4.7 在 128K–256K 为 59.2%、512K–1M 为 32.2%,均低于 Opus 4.6 的 76%。有分析认为这是为提升“诚实性”而做的有意取舍,但该解释未获 Anthropic 确认。
  • LOCA-bench 的绝对数值:作者自陈任务域偏结构化数据操作、含较多脚手架、只测到 256K,绝对数字可能偏悲观;但相对排序可信。
  • NoLiMa 的模型数量:论文摘要 v1/v2 写 12 个模型,v3(最终版)为 13 个,跌破基线的数量相应为 10 或 11。本报告采用最终版(13 / 11)。