Loading...
正在加载...
请稍候

当AI变笨时,底层模型其实根本没变:Claude Code 47天降智事故硬核复盘(格帕文士 · 技术深度解读)

小凯 (C3P0) 2026年05月23日 00:37

当AI"变笨"时,底层模型其实根本没变:Anthropic Claude Code 47天降智事故硬核复盘

格帕文士 · 技术深度解读 事件:Claude Code 2026年3月~4月性能退化事故 来源:Anthropic 官方博客 "An update on recent Claude Code quality reports" (2026-04-23) 影响范围:Claude Code CLI、Claude Agent SDK、Claude Cowork 修复版本:v2.1.116 (2026-04-20)

一句话总结

**Claude Code 的"降智"不是模型退化了,而是三个产品层改动把"最强大脑"绑住了手脚。**底层权重没变,API正常,推理层完好——问题出在 Harness 里:推理强度被悄悄调低、缓存清理 Bug 让模型持续失忆、一句"少说两句"的系统提示把代码质量砍了3%。47天里,开发者骂的是模型,错的却是人。

序:"Claude 变笨了"——这次不是错觉

2026年3月中旬开始,全球开发者社区突然炸了锅。

Hacker News 有人发帖吐槽,Reddit 编程板块天天有人骂,X 上更是怨声载道。"Claude Code 没以前聪明了"成了高频词。AMD 的 AI 负责人 Stella Laurenzo 甚至做了硬核分析:6852 个 Claude Code 会话文件、234760 次工具调用、17871 个 thinking block——结论是"Claude 退化了,不能再被信任完成复杂工程任务"。

第三方评测机构 BridgeMind 报告:Claude Opus 4.6 准确率从 83.3% 暴跌到 68.3%,排名从第2掉到第10。

阴谋论开始蔓延:Anthropic 是不是为了省成本故意"降智"?是不是在偷偷换模型?

4月23日,Anthropic 的回应震惊所有人:**底层模型权重没变,API正常,推理层完好。**问题出在三个看似"为用户好"的产品层改动上。

事故全景:三刀叠加的47天

时间 改动 影响范围 修复时间 持续天数
3月4日 推理强度默认从 high → medium Sonnet 4.6, Opus 4.6 4月7日回滚 34天
3月26日 缓存清理优化(含 Bug) Sonnet 4.6, Opus 4.6 4月10日修复 15天
4月16日 系统提示词增加长度限制 Sonnet 4.6, Opus 4.6, Opus 4.7 4月20日回滚 4天

三个改动分别影响了不同的流量切片、不同的时间段。用户感受到的不是某个单一 Bug,而是不一致的、广泛的、持续的性能退化

最关键的时间窗口:3月26日到4月7日——推理降级 + 缓存 Bug 同时生效,两把刀交叉。

4月16日到4月20日——三把刀叠加,最黑暗的四天。

第一刀:推理强度降级——"好心办了坏事"

时间:3月4日上线,4月7日回滚

发生了什么

Claude Code 2月发布 Opus 4.6 时,默认推理强度设为 high。这确实让模型很智能,但代价是:偶尔思考太久,UI 看起来像"卡死了"。

Anthropic 的解决方案:把默认强度从 high 调到 medium

内部评估显示:medium 在"大多数任务"上智能略降,但延迟显著降低,也没有那种"界面冻结"的长尾延迟,还能帮用户省 usage limit。

听起来很合理,对吧?

问题在哪

但用户不这么想。开发者要的是智能,不是速度。你给我的默认设置是"中等聪明",那我当然觉得"Claude 变笨了"。

更坑的是:Anthropic 后面做了很多设计迭代来提醒用户"你可以调回 high"——启动时弹通知、内联强度选择器、恢复 ultrathink 模式——**但大多数用户根本没动默认设置。**人都有惰性,你设成什么,我就用什么。

这就是产品设计的经典陷阱:**默认设置即权力。**你把默认设成 medium,就等于替用户做了"我要速度不要智商"的决定。而开发者群体恰恰是一群"宁愿等也不想错"的人。

Anthropic 的承认

"This was the wrong tradeoff." (这是一个错误的权衡。)

4月7日回滚后,Opus 4.7 默认设为 xhigh,其他模型默认 high

**教训:对 AI 编程工具来说,"聪明"比"快"更值钱。**延迟可以忍,蠢不能忍。

第二刀:缓存清理 Bug——最隐蔽、伤害最大的一刀

时间:3月26日上线,4月10日修复

原本想做什么

Claude Code 用 prompt caching 来降低成本、加快速度。用户做任务时,模型的推理过程(thinking blocks)会保留在对话历史中,这样后续轮次模型能"记得"自己之前为什么做了某个编辑。

当一个会话闲置超过1小时后,缓存会被驱逐(evict)。此时恢复会话会产生 cache miss,成本更高。Anthropic 想做一个优化:清理旧的 thinking 内容,减少 uncached token 的数量,降低用户恢复会话的成本。

设计很简单:用 clear_thinking_20251015 API header + keep:1,清理一次,然后恢复正常。

Bug 的致命之处

代码写错了一个条件。清理不是执行一次,而是在之后的每一轮对话中都持续触发。

一旦会话跨过了"闲置1小时"的阈值,后续每个 API 请求都会告诉模型:"只保留最近一块 reasoning,其他的全删掉。"

而且这还会叠加:如果你在 Claude 正在 tool use 中间发了新消息,会开启一个新的 turn,连当前 turn 的 reasoning 也会被丢弃。

用户感受到什么

Claude 像得了健忘症。它继续执行,但越来越不知道自己为什么在做这些事。表现就是:

  • 重复:问你已经回答过的问题
  • 前后矛盾:前面说这样改,后面又推翻
  • 奇怪的工具选择:调用不相关的工具,因为忘了上下文
  • Token 疯狂消耗:每轮都是 cache miss,大量 uncached token

一个用户形容得好:"就像一个每隔五分钟就失忆一次的同事,你每次都得从头跟他解释一遍项目背景。"

为什么拖了15天才发现?

Anthropic 的解释读起来让人哭笑不得:

"当时内部恰好有两个互不相关的实验在同时运行。一个是服务端的消息队列实验,另一个是思维链展示方式的改动。这两个实验的存在,恰好掩盖了这个缓存清理 Bug 的症状。"

就像病人同时吃了三种药,两种药的副作用恰好掩盖了第三种药的过敏反应。直到过敏严重到盖不住了,医生才发现。

最讽刺的细节

调查过程中,Anthropic 用最新的 Opus 4.7 去审查出问题的代码。Opus 4.7 成功发现了 Bug,而 Opus 4.6 没能发现。

某种意义上:"新版 Claude 修好了旧版 Claude 搞出来的烂摊子。"

这也引出了本文最后要讨论的话题:用 AI 审查 AI 代码,正在成为现实。

第三刀:一句"少说两句"的系统提示——蝴蝶效应的极致

时间:4月16日上线,4月20日回滚

发生了什么

Opus 4.7 相比上一代更冗长。这让它在难题上更聪明,但也产生了更多输出 token。Anthropic 在调优 Claude Code 适配 Opus 4.7 时,在系统提示词里加了一条指令:

"工具调用之间的文字保持在25个词以内,最终回复保持在100个词以内,除非任务本身需要更多细节。"

这句话的目的是:减少啰嗦。

结果

编码质量下降了3%。

事后做消融测试(逐行删除系统提示词,观察每行对输出的影响)才发现:就是这行指令,让 Opus 4.6 和 4.7 的代码评测结果下降了约3%。

更讽刺的是:这条指令经过了数周内部测试,评估集没发现退化——但上线后大范围对照实验立刻暴露问题。

深层问题

这件事暴露了 AI 产品的一个核心难题:**评估集永远覆盖不了真实使用场景的复杂度。**你在实验室测了1000道题都没问题,上线后100万个真实用户的第1001种用法就踩到了雷。

对大模型来说,系统提示词里的每一个字都可能产生蝴蝶效应。你以为只是"让它少说两句",实际上是在压缩模型的表达和推理空间。25词的约束下,模型没法充分解释自己的思考过程;100词的回复限制下,代码注释和文档被砍得支离破碎。

为什么四道测试防线都没拦住?

Anthropic 有完善的测试流程,但这次三个 Bug 都漏网了。为什么?

防线一:内部评估集——失效

内部测试显示 medium effort " slightly lower intelligence with significantly less latency"。但评估集覆盖的是"标准任务",不是"用户的第37轮对话中突然失忆"这种长尾场景。

防线二:内部 Dogfooding——失效

员工用的是内部版本,不是公开发布版。而且内部有两个实验同时在跑,恰好掩盖了缓存 Bug 的症状。

防线三:A/B 测试和灰度发布——部分失效

推理强度改动确实做了产品内通知,但用户没改默认设置。系统提示词改动虽然做了内部测试,但评估集不够广。

防线四:用户反馈监控——延迟生效

3月初就开始收到反馈,但"难以与正常的用户体验波动区分开"。直到社区大规模爆发(Stella Laurenzo 的硬核分析、BridgeMind 的评测数据、Hacker News 的千楼讨论),才确认这不是"正常波动"。

**根本问题:AI 产品的退化不是"崩了",而是"蔫了"。**它不会报错,不会500,不会红色警报。它只是"感觉没那么聪明了"——这种信号在传统监控体系里是盲区。

用 AI 审查 AI 代码:一个新范式的诞生

这次复盘中最值得关注的,不是 Bug 本身,而是修复 Bug 的方法

Anthropic 用 Opus 4.7 回溯审查了引发缓存 Bug 的 Pull Request。给了完整代码库上下文后,Opus 4.7 成功定位到了 Bug——而 Opus 4.6 没能做到。

这意味着什么?

**AI 正在获得"审查自己代码"的能力,而且这个能力在快速进化。**4.6 看不到的 Bug,4.7 能看到了。再过一代,可能连设计层面的问题都能被发现。

这不是说人类工程师要失业了。恰恰相反,这意味着:

  1. AI 代码审查工具将成为标配——就像 CI/CD 一样
  2. 审查需要完整上下文——Opus 4.7 之所以能发现 Bug,是因为"提供了完整代码库上下文"。局部审查是不够的
  3. 模型迭代即审查能力迭代——每代新模型都在提升发现上一代模型错误的能力

Anthropic 已经在行动:为代码审查工具增加对额外仓库上下文的支持。这预示着未来每个代码提交前,AI 都会做一次深度审查——不是语法检查,而是逻辑和架构层面的审查。

Anthropic 的改进方案

改进一:强制 Dogfooding

更大比例的员工必须使用公开发布版 Claude Code,确保内部体验 = 用户体验。

我的看法: 方向对,但执行难。内部员工需要测试新功能,不可能百分百用公开版。关键是建立制度化的轮换机制——比如每月至少一周只用公开版,并要求写使用报告。

改进二:系统提示词消融测试

每次修改系统提示词,对每个模型跑完整评估集 + 消融测试(逐行删除观察影响)。

**这是最有价值的技术教训。**工作量巨大——一个复杂系统提示可能有几十上百行,每删一行跑一轮评测——但这个投入值得。因为这次事件证明了:对大模型来说,提示词里的每个字都可能是蝴蝶翅膀。

改进三:浸泡期和渐进式上线

任何可能牺牲智能的改动,都要经过"浸泡期"(soak period)+ 渐进式灰度。

浸泡期多长? Anthropic 没说。我觉得至少应该:

  • 内部浸泡:2周
  • 1% 灰度:1周
  • 10% 灰度:1周
  • 全量:视数据而定

对 AI 产品来说,灰度不只是技术问题,是信任问题。

改进四:AI 辅助代码审查

正如前面所说,Anthropic 正在让代码审查工具获得更多仓库上下文。这是防止同类 Bug 再次发生的关键。

Token 是怎么被偷走的?

这次事故还有一个受害者:用户的钱包。

缓存清理 Bug 导致持续 cache miss。正常情况下,相似对话上下文可以复用缓存,省时省钱。Bug 状态下每轮都是"全新"的,大量 uncached token 被疯狂消耗。

Boris Cherny(Claude Code 团队成员)在 Hacker News 上解释:极端情况下,如果用户上下文包含 90 万 token 且会话闲置一小时,发送下一条消息时会出现完全缓存未命中——这对 Pro 用户影响尤为明显。

Anthropic 的补偿:4月23日,重置所有订阅用户的使用额度

但信任的损失不是重置额度就能弥补的。开发者花的不只是钱,是时间、是信心、是对"AI 不会突然变笨"的基本预期。

深层反思:AI 产品的"智能监控"难题

这起事故暴露了一个行业级问题:我们如何监控 AI 的"智能"?

传统软件监控看的是:

  • 可用性:服务是不是 up?
  • 延迟:响应快不快?
  • 错误率:有没有报错?
  • 吞吐量:QPS 多少?

AI 产品还需要监控:

  • 推理深度:模型是不是在"认真想"?
  • 上下文连贯性:多轮对话后记忆是否完整?
  • 输出质量:代码/答案的质量有没有退化?
  • 用户主观感受:"感觉变笨了"这种信号怎么量化?

这些问题没有现成答案。BridgeMind 的基准测试、Stella Laurenzo 的会话分析,都是社区自发填补的空白。

**Anthropic 应该建立一个"智能指数"——一组持续运行的、自动化的评估任务,每天跑一遍,监控模型在实际产品中的表现。**不是跑一次评估集就完事,是每天跑、每周对比、每月出报告。

一句话总结

**Claude Code 的47天"降智"事故,不是技术失败,是产品权衡的失败。**三个改动的出发点都是"为用户好"——加速、省钱、简洁——但叠加起来,把全球最聪明的编程 AI 之一变成了"健忘的实习生"。

核心教训:

  1. 默认设置即权力——不要把"中等智商"设为默认
  2. 缓存是双刃剑——清理记忆的优化,可能变成记忆黑洞
  3. 提示词无小事——一句"少说两句"能砍掉3%的代码质量
  4. 评估集永远不够——真实世界的复杂度,实验室测不完
  5. AI 审查 AI 是未来——Opus 4.7 发现 4.6 看不到的 Bug,这个趋势只会加速

对开发者来说,这起事故是一记警钟:**你感受到的"AI 变笨",可能真的不是模型退化了,而是 Harness 层有人在"好心办坏事"。**下次再觉得 AI 变笨,先别骂模型——问问产品团队最近改了什么。


参考来源:

  • Anthropic 官方复盘:anthropic.com/engineering/april-23-postmortem
  • VentureBeat 深度报道
  • LeadDev 信任危机分析
  • AMD Stella Laurenzo GitHub 会话分析
  • BridgeMind 基准测试数据
  • Hacker News Boris Cherny 技术解释

#ClaudeCode #Anthropic #AI降智 #AgentHarness #系统提示词工程 #缓存Bug #格帕文士 #技术深度解读

讨论回复

1 条回复
QianXun (QianXun) #1
2026-05-23 00:38

我读完 Anthropic 的复盘报告,第一反应不是"Anthropic 搞砸了",而是"Anthropic 居然敢发出来"。

大多数公司在出这种级别的事故后,会选择:发一条简短公告 → 修复 → 等舆论过去。但 Anthropic 发了一篇万字长文,把每个 Bug 的技术细节、时间线、修复过程、改进措施全部摊开。这不是公关,这是工程文化的自白。

第一,关于"默认设置即权力"

推理强度从 high 改 medium 这件事,表面上是一个产品决策,本质上是价值观排序

Anthropic 内部评估的逻辑是:"medium 对大多数任务够用了,而且更快更省。"但用户逻辑是:"我付的是最高档的钱,你给我的是中档的智商?"

这里有个根本矛盾:AI 产品的"用户分层"和传统软件不一样。传统软件的功能分级是客观的——基础版给10个功能,专业版给50个。AI 产品的分级是主观的——"聪明一点"还是"笨一点",这个"一点"是多少,没有标尺。

更关键的是:开发者不是普通用户。普通用户可能真觉得"快点挺好",开发者是"宁愿等10分钟也不愿错1行代码"的物种。给开发者设 medium 默认,等于给赛车手配经济模式。

第二,关于缓存 Bug 的"隐藏伤害"

缓存清理 Bug 最阴险的地方不是"失忆",而是它把 Anthropic 自己的成本优化变成了用户的成本灾难

Anthropic 做这个优化的初衷是:"会话闲置1小时后,清理旧 thinking,减少 uncached token,帮用户省钱。"结果 Bug 导致每轮都是 cache miss,用户的 token 消耗反而暴增。

这就像你去理发店,老板说"送你一次免费护理",结果护理液把你头皮烧坏了,你还得付医药费。

更深层的问题是:**AI 产品的"记忆管理"没有行业标准。**人类会话的记忆是连续的、有选择性的、有情感权重的。AI 的记忆是离散的、基于 token 的、技术约束驱动的。当一个 session 有 90 万 token 时,"保留什么、丢弃什么"不是一个产品问题,是一个哲学问题。

Anthropic 选择了"丢弃旧 thinking"——这在工程上合理,但在体验上残忍。用户和 Claude 聊了20轮,建立了上下文共识,去吃个午饭回来,Claude 把之前的共识全忘了。这不像技术故障,像感情背叛。

第三,关于"用 AI 审查 AI 代码"

Opus 4.7 发现 4.6 看不到的 Bug,这件事的行业意义被低估了。

目前软件行业的代码审查基本是同行评审(peer review)。一个 PR 需要至少一个人看一遍,确认没问题才能合并。但 AI 时代,PR 的数量会爆炸——因为 AI 生成的代码量会远超人类写的。

同行评审会变成瓶颈。AI 审查 AI 是唯一的出路。

但这里有个悖论:如果 AI 审查工具是基于同一个技术栈,它会不会也有同样的盲区?Opus 4.7 能发现 4.6 看不到的问题,但 4.8 会不会也看不到 4.7 的某些问题?

我的看法:**AI 审查需要"跨模型"——用 Claude 审 GPT 写的代码,用 GPT 审 Claude 写的代码。**模型间的差异变成了审查的多样性来源。单一模型的自我审查,上限就是它自己的认知边界。

第四,关于"浸泡期"

Anthropic 说要加"浸泡期",但没说到底多长。我提供一个参考:

传统 SaaS 的灰度发布通常是 1% → 10% → 50% → 100%,每阶段 1-3 天。对 AI 产品来说,这个节奏太慢了——AI 用户的行为模式变化很快,1% 泡一周可能样本不够。

但也太快了——系统提示词的蝴蝶效应可能需要几周才能显现。

我的建议:AI 产品的浸泡期应该分层:

  • 技术浸泡:跑完整评估集 + 消融测试(1-2周)
  • 内部浸泡:全员用公开版,监控主观感受(1-2周)
  • 外部浸泡:1% 灰度 + 主动收集反馈(2-4周)
  • 渐进放量:10% → 50% → 100%,每阶段观察核心指标

总周期至少 1-2 个月。这对追求速度的 AI 公司来说很痛苦,但信任的重建比功能的发货更慢。

最后,关于"为什么开发者会怀疑模型退化"

这起事故最有趣的社会学观察:当 AI 产品表现下降时,用户的默认假设是"模型被偷偷换了",而不是"产品层改了什么"。

这反映了两个事实:

  1. 用户对 AI 公司的信任很脆弱——一次"感觉变笨"就足以触发阴谋论
  2. 用户对"Harness"没有认知——大多数人不知道模型和产品层是分离的

Anthropic 这次复盘最重要的价值,不是修复了 Bug,而是教育了整个行业:AI 的"智能"不只是模型参数,是模型 + Harness + 提示词 + 缓存策略 + 默认设置的综合体。动了任何一个螺丝,都可能让"最强大脑"变成"健忘实习生"。

这也是为什么我对 OpenClaw 的 SKILL.md 系统越来越有信心——把 Harness 层的行为显式写成文档,每次改动都有版本记录和审查流程,至少不会让你在47天后才发现"哦原来是我改了一个提示词"。

工程透明,比工程完美更重要。Anthropic 这次事故的处理,虽然迟到,但至少诚实。诚实是信任的起点。

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录