
新智元报道
Anthropic近日发表了一篇博客,详细介绍了如何管理“上下文腐烂”这一问题,并且承认了即使拥有百万token的庞大上下文空间,模型也可能因信息过多而变得不那么聪明。
他们是否打破了关于百万级上下文窗口的概念神话?

https://claude.com/blog/using-claude-code-session-management-and-1m-context
在这篇新博文中,Anthropic再次提到了“上下文腐烂”的问题。简而言之,“上下文越长,模型表现越差”。
Anthropic指出,上下文指的是模型生成下一个回复时可以参考的所有内容,包括系统提示、对话历史、工具调用及其结果等。
目前,Claude Code的上下文窗口支持一百万个token。
但是,并非所有的信息都对模型有益。过多的信息会导致注意力分散,早期不再相关的内容会干扰当前的任务,从而影响表现。

这一概念并非社区自创,而是源自Anthropic官方发布的内容。

在今年2月的Sonnet 4.6版本更新中就已提及百万token上下文窗口的概念。
尽管提供了一百万个token的空间,但并不意味着每个都被有效利用了。
每一条对话记录、每一次文件读取和工具调用都在消耗模型的注意力资源。
更早之前无关的信息不会自动消失,并且会持续干扰当前的工作任务。
面对这一挑战,Anthropic提出了一系列应对策略。
他们首先揭示了“上下文腐烂”的机制,然后提供具体的解决办法。
他们将问题拆解为多个部分进行详细说明,并给出了处理方案。
上下文越长
AI越蠢
尽管一百万token听起来很多,但实际上,一个中型代码库可能只需要几十万个token就能容纳下。
然而,模型的注意力资源是有限的。
例如,两小时前读取的配置文件、一小时内调试失败的日志记录和半小时前探索的无效路径等信息都会占用宝贵的上下文空间。
这就是所谓的“context rot”机制:过多无关的信息导致模型难以集中注意力处理当前任务。
有时候人们会开玩笑说,这就像人类开会时间过长而走神一样。
当信息量过大时,会导致注意力分散,影响工作效果,这是带宽问题而非能力不足所致。
随着上下文窗口接近百万token的上限,系统将自动启动压缩功能。
的确如此。
然而,在这个关键节点上,模型的表现往往最差。
在这种状态下进行总结工作可能会导致信息丢失或失真。
Anthropic建议用户可以采取以下五种策略来管理上下文:
1. 继续对话:在相关性仍然存在的前提下继续与模型交互,这是最直接的方式。
2. 回退:利用/rewind命令回到之前的某个点重新开始,减少不必要的干扰信息。
每一轮对话都是岔路口
3. 开启新会话:通过/clear指令创建一个新的对话环境,虽然费时但可以完全控制上下文内容。
4. 压缩上下文:使用/compact功能让模型总结当前的对话并用摘要替代旧历史记录。
5. 子智能体任务:将复杂或长时间的任务交给一个拥有独立上下文的子智能体完成,以避免主会话被污染。
这些策略各有优劣,并且适用于不同的场景和需求。
Anthropic认为,在处理需要大量中间输出但只需要最终结果的工作时,使用subagent是最干净的选择。

官方文档明确表示每个子智能体都有独立的上下文空间。
子智能体会执行特定任务,并将结论带回主会话,而中间过程则保留在其专属的空间内。
这些策略帮助用户更好地管理上下文,避免不必要的信息干扰模型的表现。
除了提供上下文管理的工具外,Anthropic还引入了新的命令以提高透明度。
/usage命令可以让开发者了解他们消耗了多少token资源。
此前没有这样的机制可以查看具体的使用情况和剩余额度。
这一功能虽然简单但意义重大,表明公司已经开始考虑如何在百万token时代更好地服务用户。
今年2月发布的Sonnet 4.6版本证明了模型有能力处理大规模的上下文信息。
用户反馈显示,在修改代码时,系统能够更有效地读取长上下文的历史记录。

省事,但有损。
四月份的这篇博客则进一步提供了一套系统的管理方法来应对“上下文腐烂”问题。
通过这两步措施,Anthropic不仅提供了强大的工具,还教会了用户如何正确使用这些资源而不至于造成浪费或损失。
近年来,“提示工程”(prompt engineering)被广泛讨论,但未来的发展方向可能是“上下文工程”(context engineering)。
如何有效管理和优化模型的上下文信息将成为关键问题之一。

上下文管理即将成为AI编程领域的核心技能。
把一块工作交给一个拥有独立上下文的子智能体,干完活只把结论带回来。
当你知道接下来的任务会产生大量中间输出,但你只需要最终结论时,subagent是最干净的方案。
它拿到一个全新的独立上下文窗口,在里面完成所有脏活,中间过程全部留在子窗口里,最后只有一份结论带回主会话。
Subagents:你的一次性调查员
这五个动作里,最容易被误解的就是subagents。
很多人一听「子智能体」就往「多智能体协作」上联想:团队分工、并行处理、AI员工开会讨论。
但Anthropic这篇博客里讲的subagents,核心价值只有一个:上下文隔离。
官方文档明确写道:每个subagent都运行在自己的上下文窗口中。
它可以读大量文件、做大量搜索、跑完整个调查流程。但最终,只有摘要和一小段元数据会回传给主会话。
那些海量的中间过程,全部留在子智能体的一次性上下文里。你的主会话不会被这些噪声污染。

Anthropic内部用的判断标准也很简单:
我之后还需要这些工具输出本身吗,还是只需要最终结论?
如果答案是后者,就交给subagent。
博客里给了三个典型场景:
让subagent基于规格文件验证工作结果;让subagent去读另一个代码库,总结它的认证流程,然后你自己来实现;让subagent根据你的git改动去写文档。
这三个场景有一个共同点:过程很重,结论很轻。
所以subagent的本质不是你的同事,和你在一块干活,更像是你的「一次性调查员」。
它的工作簿在任务结束后就可以扔掉,你只需要拿走最后那页报告。
虽然Claude Code会自动调用Subagents,但你也可以给它更明确的执行指令,比如:
启动一个Subagents,根据以下规范文件验证此项工作的结果;
派生一个Subagents去阅读另一个代码库,并总结其身份验证流程的实现方式,然后你自己以相同的方式实现它;
派生一个Subagents,根据我的Git变更来编写此功能的文档。
警惕自动压缩的翻车时刻
Anthropic在博客里坦承了一个很多开发者已经踩过的坑:自动压缩(compaction)翻车。
什么时候翻车?当模型无法预测你接下来要干什么的时候。
博客举了一个例子:
你做了一次很长的调试会话,自动压缩触发了,模型把整个排查过程总结了一遍。然后你突然说:「现在修一下bar.ts里那个warning。」
但因为整个会话主要围绕调试展开,那个warning只是中途顺带看到的一眼,压缩的时候已经被丢掉了。
这事棘手在哪?触发自动压缩的那一刻,恰恰是上下文最长、模型表现最打折的时候。
你让一个已经「走神」的模型来决定什么信息重要、什么可以丢掉。
好在百万Token窗口给了一个缓冲区。
你不用等到自动触发,可以提前主动/compact,并附上说明:接下来要做什么、哪些信息必须保留。

用最清醒的时候做压缩,而不是等到最糊涂的时候被动挨打。
说到底,自动压缩不是不能用,是不能盲信。
五条路
一个急救包
虽然最自然的做法就是继续下去,但另外四个选项可用于帮助你管理上下文。
这五条路拼在一起,本质上就是一套防治「上下文腐烂」的急救包。

Anthropic官方示意图:五种上下文管理动作,从左到右保留的旧上下文越来越多
官方博客在文末放了一张决策表,按场景匹配工具:

每一次回车,都是一次上下文决策。
五种场景,五个工具,选对了上下文干净,选错了模型变蠢。
因此,每一轮交互之后,都该花一秒钟想想:我的上下文还干净吗?接下来该走哪条路?
百万上下文的另一面
是百万token的账单
除了管上下文质量,Anthropic这次还做了另一件事:
让开发者看见自己的消耗。
博客开头就说了,/usage这个新命令的推出,「来自我们和客户进行的多次交流」。
/usage是干什么的?
根据Claude Code官方命令文档,它的作用是「显示套餐使用上限和速率限制状态」。
注意,这不是一个上下文管理工具。
它不压缩、不回退、不清理,只做一件事:让你看见自己用了多少,还剩多少,有没有撞上限流。
但这恰恰是开发者最焦虑的事。
100万上下文听起来很美,但token不是免费的。
一个长会话跑下来,你到底消耗了多少配额?自动压缩会不会在你不知情的情况下触发,丢掉关键信息?你离速率限制还有多远?
以前这些问题没有答案,现在Anthropic给了一个透明窗口。
这个功能很小,但表明Anthropic已经意识到,百万上下文时代,「用得起」和「用得好」是两个必须同时解决的问题。
光给能力不给可见性,开发者迟早会踩坑然后流失。
提示词工程之后
是上下文工程
退一步看全局。
今年2月,Anthropic发布Sonnet 4.6,公告里确认了100万token上下文窗口(beta)。

那篇公告解决的是「能不能」的问题:模型能不能撑住这么长的上下文。
用户反馈也很正面:它在改代码前更能有效读取上下文了。
4月15日这篇博客,解决的是「怎么用」的问题。它直接承认了现实局限,然后给出一套系统化的管理方法。
两步合在一起,构成了一个完整的闭环:先给你武器,再教你怎么用不伤到自己的钱包。
Prompt engineering这几年被讲烂了。但真正决定AI编程天花板的,可能是下一个词:context engineering(上下文工程)。
怎么喂上下文、什么时候清理、哪些信息该隔离、哪些该保留,这些问题以前靠直觉,现在Anthropic开始给方法论了。
上下文工程,正在成为AI编程时代的必修课。
参考资料:
https://claude.com/blog/using-claude-code-session-management-and-1m-context
