AI 不是变笨,是上下文在腐烂
9 月下旬 Opus 5.5 上线,10 月初成了 Claude Code 的默认模型。紧接着,“降智”的讨论就刷屏了。
最扎心的一份数据来自一个博主的自救统计:他把最近 30 天的 155 个 Claude Code 会话拉出来看,81 个超过了 15 万 token,占 52%;越线的中位时间是开工后 20 分钟;最大的一个会话烧到了 95 万 token。
他的状态栏还设着 70% 变黄、90% 变红。等灯变黄,已经 70 万 token 了。
先别急着骂模型。大多数“变笨”,不是权重变了,是上下文烂了。
窗口没满,不代表它看得见
Opus 5.5 的上下文窗口是 100 万 token。15 万 token 只占了 15%,状态栏一片绿。但“装得下”和“用得好”是两件事。
第一层是注意力预算。模型要计算每两个 token 之间的关系,数量大致是 token 数的平方。15 万 token 就是两百多亿个关系,每个 token 分到的注意力被摊薄。窗口越大,摊得越薄。
第二层是“迷失在中间”。斯坦福 2023 年那篇 Lost in the Middle 早就测过:输入很长时,模型对开头和结尾的信息用得最好,中间最容易被忽略。你开场交代的命名规范、目录结构、禁止改的文件,如果埋在几万 token 之前,它未必真的“看进去”了。
这不是 Claude 一家的问题。向量数据库公司 Chroma 测过 18 个主流模型,结论是全部都会随输入变长而变差,一个不漏,而且在窗口远没满的时候就开始。
Anthropic 自己的文档也写了这句话:response quality degrades as a conversation grows。对话越长,回复质量越差。这不是社区猜测,是官方在 compaction 文档里的原话。
你骂的,可能不是你以为的那个模型
这是最容易被忽略的一种“变笨”。
Claude 有一层安全分类器。某些请求被判定为高风险时,系统会把它换到能力更弱的模型上重跑:生物类回退到 Opus 5,网络安全类回退到 Opus 4.8。官方帮助中心写得很清楚:自动切换默认开启,切换会在对话里显示通知,之后模型选择器会一直停在这个更弱的模型上,直到你手动切回去。
更麻烦的是,触发检查的不只是你刚发的那句话。前面的消息、读过的文件、搜索结果都算。所以你对着最后一句反复改措辞,可能根本没用——触发源在几轮之前。
官方给了一个开关:设置 → 功能 → 关掉“消息被标记时切换模型”;Claude Code 在 Config → MODEL & OUTPUT 里。关掉之后,被标记的请求会暂停,让你选择改提示词重试,还是手动换模型。
还有一个细节:API 的自动切换默认是不开的,需要自己配置 fallback。所以同一句话,在网页端和 API 上可能得到不同结果,别拿一边的体验去推断另一边。
压缩是有损的
上下文快满时,Claude Code 会自动压缩:把前面的对话总结成摘要,带着摘要继续跑。默认要等到接近上限,大约 96.7 万 token 才触发。
压缩能留下什么?系统提示、CLAUDE.md、自动记忆、最近读过的几个文件、你调用过的 skill——skill 还有额度上限,每个 5000 token、总共 25000 token。留下的是“骨架”,丢的是细节。
而细节往往正是你要的:第三天说过“这个接口不能改”,第五天说过“测试数据用 fixtures 里那份”,压缩之后可能就变成了一句“遵循项目约定”。
所以官方自己建议:把关键状态写到窗口外面。让 Claude Code 把待办写进 TASKS.md,完成一项更新一项,接着干活前先读一遍。社区里更流行的是 HANDOFF.md——关会话之前,让它写清楚“在做什么、做完了什么、卡在哪、下一步、哪些坑别再踩”,新会话第一句就是“先读 HANDOFF.md”。
这不是什么高级技巧,就是一个 md 文件。但它比任何压缩算法都可靠,因为它是你控制的,不是模型摘要的。
越聊越贵,也是真的
长会话不只变笨,还变贵。
模型每生成一个 token,都要把窗口里已有的内容整体处理一遍。对话越长,每一句的输入成本越高。一个 95 万 token 的巨型会话,吃掉的速度够你开六个干净会话干完同样的活。
订阅用户也别觉得包月无所谓。额度是按用量算的,巨型会话烧穿额度的速度,和它变笨的速度是一起上去的。
官方新推的 /fast 快速模式也是同一个逻辑:模型不变,速度更快,但同样的 token 更贵,还要开额外用量。快和聪明,正在被拆成两个商品卖。
今天就能做的四件事
第一,给水位装个表。/context 随时看占用。别用默认的 70% 报警——按社区经验线,100 万窗口在 15% 就该警惕,也就是 15 万 token。等到 70 万,已经晚了。
第二,把状态写到窗口外面。TASKS.md 或 HANDOFF.md,二选一,养成习惯。会话可以关,文件不会丢。
第三,重要要求放在消息最后再说一遍。这是“迷失在中间”的直接应用。格式、禁改项、验收标准,结尾补一句,比开头写十句管用。
第四,一个话题一个会话。切到无关的新任务,直接 /clear。干净的桌面永远比堆满的桌面好用。
如果还是觉得不对,按顺序排查:/model 确认自己在跟谁说话;/context 看水位;数一下装了多少插件和工具;三个都排除了,再去 /feedback。那时候你的“降智”指控才有分量。
最后
模型不负责记住你。它没有“上次说过”的概念,它只有这一次请求里的上下文。上下文是工作台,不是仓库——台面堆满了,手艺再好也施展不开。
所谓“AI 越聊越笨”,多数时候不是它退化了,是我们把台面弄乱了。
相关链接:
- Claude Opus 5.5 新功能:https://platform.claude.com/docs/zh-CN/models/opus-5-5/whats-new-opus-5-5
- 为什么对话中切换了模型:https://support.claude.com/zh-CN/articles/16049681
- 压缩(Compaction)文档:https://docs.anthropic.com/en/build-with-claude/compaction
- Claude Code 上下文与压缩:https://code.claude.com/docs/en/model-config
- Lost in the Middle 论文:https://arxiv.org/abs/2307.03172
暂无评论。