过去一个月,从 GitHub Issues、Reddit r/ClaudeAI 到 X 的中文技术圈,都充斥着"Claude Code 不会思考了""Opus 4.6 傻了""Cowork 循环卡死"的吐槽。4 月 23 日,Anthropic 发布官方工程复盘《An update on recent Claude Code quality reports》,把这场持续数周的"AI shrinkflation"钉在了三个独立的 harness 层改动上——模型权重没有退化,API 也始终正常,被坑的只有 Claude Code、Claude Agent SDK 以及跑在 SDK 之上的 Claude Cowork。这篇文章把三次改动逐条拆开讲清楚,顺带说明为什么第三方基准早就敲响了警报、为什么 harness 比模型权重更值得你盯着,以及对开发者来说下一步该做什么。 事件全貌:从 3 月 4 日到 4 月 23 日
先把时间线摆平:
- 3 月 4 日:Claude Code 把默认推理 effort 从 high 降到 medium(目的:缓解 UI 卡顿感)。
- 3 月 26 日:上线一个"空闲 1 小时以上的会话清除旧 thinking"的改动,结果 bug 导致每一轮都清除;4 月 10 日修复。
- 4 月 16 日:随 Opus 4.7 一起上线一条新的 system prompt 指令,强制压缩中间文本长度;4 月 20 日回滚。
- 4 月 20 日:v2.1.116 版本发布,三处问题全部修复。
- 4 月 23 日:Anthropic 发布公开复盘,并为所有订阅用户重置使用额度作为补偿。
Anthropic 明确说法是:"我们从不会故意降低模型质量,API 和推理层已立即确认不受影响。"所有退化都集中在 Claude Code、Claude Agent SDK 和 Claude Cowork 这几个 harness 产品上,且三次改动影响不同流量切片、不同时间表,聚合起来看像是"广泛、不一致的退化",内部 eval 最初也未能复现。这也解释了为什么过去几周 Anthropic 的官方回应一直是"没发现退化"——他们跑的 eval 对着模型权重,而问题藏在 harness 层。
三次改动逐条拆解
Bug 1:3 月 4 日 reasoning effort 从 high 悄悄降到 medium
Opus 4.6 在 Claude Code 里默认用 high effort 跑。用户反馈 high 模式下模型会"思考太久",UI 看起来卡死,延迟和 token 消耗都对普通用户不友好。Anthropic 于是把默认档降到 medium。
这个改动看起来是 UX 优化,但它直接把最适合复杂代码任务的推理深度砍掉了一档。结果就是社区观察到的那个现象——"模型从 research-first 的工作风格变成了 edit-first 的偷懒风格,不再能被信任处理复杂的工程任务"。
关键点:effort 层级是在 Claude Code 产品层设定的,会透传到 Messages API 的 effort 参数。这意味着你如果直接用 API 调同一个模型、显式传 high,效果不会有任何变化。被坑的只是直接用 Claude Code CLI 的开发者。
Bug 2:3 月 26 日 thinking 清除机制的 off-by-one 错误
Anthropic 为了缩短恢复老会话时的延迟,写了一段"清除闲置超过 1 小时的会话中旧 thinking"的逻辑。结果一个 bug 让这个清除动作在该会话的整个剩余生命周期里每一轮都执行一次,而不是只执行一次。模型因此看起来健忘、重复,上一条刚讨论过的结论下一条就忘干净。4 月 10 日修复,影响 Sonnet 4.6 和 Opus 4.6。
这个就是典型的 Agent 基础设施 bug:逻辑本身没错,触发条件设错了。对用户体验的打击非常直接——Claude 的长程一致性本来是它相对 GPT 系列的核心优势之一,这个 bug 把这个优势的底直接抽掉。
Bug 3:4 月 16 日那条"毁编码能力"的长度限制系统提示
这是三条里争议最大的。Opus 4.7 的行为特征是"偏冗长",这让它在难题上更聪明,但也产生更多输出 token。Anthropic 在发布前几周就开始为 Claude Code 做适配调优,尝试了模型训练、prompt、thinking UX 改进等多种工具来控制冗长。最终这条系统提示的加入产生了远超预期的副作用:
"Length limits: keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless the task requires more detail."(长度限制:工具调用之间的文本保持在 ≤25 字,最终回复保持在 ≤100 字,除非任务需要更多细节。)
Anthropic 承认,经过多周内部测试、eval 未见 regression,才连同 Opus 4.7 于 4 月 16 日一起发布。4 月 20 日随即回滚。影响 Sonnet 4.6、Opus 4.6、Opus 4.7。
这个 bug 是三条里最耐人寻味的——它说明一条贴在系统提示里的"字数限制"指令,在足够长的工具调用链路上,会把整个模型的推理深度打折。Claude Code 的工作方式本来就是"每一步调用工具之间想一会、总结一下、规划下一步",强制压缩中间思考的字数等于切断了模型的链式推理。
社区信号早就亮了:为什么 Anthropic 的 eval 慢了一拍
复盘时间线里最尴尬的一段是:用户已经发飙好几周,Anthropic 的内部 eval 还没能复现问题。第三方信号其实一直在堆:
- AMD AI 组 Senior Director Stella Laurenzo 在 GitHub 上公开审计了 6,852 个 Claude Code 会话文件、超过 234,000 次工具调用,数据显示 Claude 的推理深度明显下降,陷入推理循环的频率升高,更倾向于挑"最简单的修复"而非"正确的修复"。
- BridgeMind 的第三方基准测试显示 Claude Opus 4.6 的准确率从 83.3% 跌到 68.3%,排名大幅下滑。
- 用户给这个现象起了个外号叫 "AI shrinkflation"(AI 缩水通胀),并纷纷吐槽使用额度"耗得比以前快",怀疑 Anthropic 在节流。
Anthropic 承认 他们早在 3 月初就开始看这些反馈,但"最初难以将其与正常的用户反馈波动区分开来,内部使用和 eval 最初也未能复现这些问题"。他们给出的后续改进承诺有两条值得注意:内部测试将更多使用与用户完全一致的公开构建版本(而非内部特供版);针对 harness 和 system prompt 变更增加独立的评估流程。换句话说,未来 eval 不再只对着模型权重跑,还要对着"用户真实用到的那个 binary"跑。
harness 比模型权重更重要:Agent 基础设施的启示
这次事件最值得 ChooseAI 读者带走的一点,是 Practical AI 播客那段话总结的现实:"模型本身不是这些系统性能的关键组件。真正的 IP 不在模型,而在围绕模型的 agent harness——编排、内存管理、工具连接、会话持久化、上下文注入"。
三次事件里,两次是 system prompt / effort 默认值改动,一次是会话状态管理 bug。没有一个动到模型权重,但每一个都让 Claude 看起来变笨。对比来看:
- OpenAI GPT-5.5 的发布策略是"把 Codex 作为 harness 连同模型一起产品化",意味着 harness 层同样是产品核心。
- OpenClaw、Hermes Agent 这类开源 Agent 框架则把 harness 权交给用户——你自己控制 prompt、tool-loop、memory,风险自担但不会突然被上游一条系统提示改动砍掉 20% 能力。
- Claude Code / Cowork 这种一体化封装 体验最顺滑,但你把 harness 交给了 Anthropic,他们一次默认值调优你就要跟着吃亏。
对做内容工程化、长程 Agent 应用的团队来说,结论不是"换到哪家",而是:凡是依赖外部 harness 的工作流都要做端到端的回归测试,而不是只看模型名字和版本号。你工作流里的"智能"不等于"模型权重",还包括 prompt、effort、thinking 保留策略、tool-call 格式这些容易被 vendor 悄悄改掉的东西。
对开发者的实际影响与应对建议
如果你在用 Claude Code、Claude Agent SDK 或 Claude Cowork,现在立刻升级到 v2.1.116 或更新版本——三条 bug 全部修复,订阅额度已经重置,继续跑旧版本没有任何理由。
如果你在用 OpenClaw、Hermes、Continue.dev 这种本地 harness 接 Claude API,过去这几周你没有受影响。Anthropic 反复强调"API 和推理层完全正常",这次事件只是再次验证了"自建 harness、把 vendor 只当模型源"的路线在稳定性上的优势。
如果你在做选型,几条实操建议:
- 把 eval 套件从"只看模型 benchmark"扩展到"端到端工作流测试"。同样的 prompt、同样的 tool-loop,跑上游一次 CLI 升级前后各一次。ChooseAI 如果长期跑新闻流水线,就该把"每日新闻整理"的标准任务和"SEO 长文输出"的标准任务做成自动化回归,每次 Claude Code 升级后跑一遍。
- 对高赌注任务固定 effort=high。既然默认值可以被上游调低,那就别依赖默认值。Claude Code 支持在命令行显式传 effort 档位。
- 保留一条 API 直连的 fallback 路径。同样的任务,用 API 直接调 Claude Sonnet 4.6 或 Opus 4.7 时模型没问题;问题只在封装层。真出事时,能快速切到 API 直连可以救命。
- 关注 Anthropic 的 @ClaudeDevs 账号。Anthropic 已表态将通过新的 @ClaudeDevs X 账号和 GitHub 线程提供更深入的产品决策理由,与开发者社区保持更透明的对话。
结语:透明度是 Anthropic 这次捞回的分数
这次事件 Anthropic 该挨的骂已经挨完了,但 4 月 23 日这份复盘确实把事情说清楚了——哪天改了什么、为什么改、影响了哪些模型、为什么自己没测出来、下一步改什么,每一条都有具体时间和具体代码改动。对一家前沿实验室来说,这种量级的技术透明度并不常见。OpenAI 的 GPT-5.4/5.5 发布节奏里,很少有这种"我们上周改了什么把你坑了"的公开复盘。
真正的长期启示是那句老话:Agent 时代,harness 就是生产环境。你对上游的信任边界,应该精确到版本号,而不是产品名。Claude Opus 4.7 本身没问题,有问题的是 2026 年 4 月 16 日到 20 日之间的那个 Claude Code 版本。分清楚这两件事,是做 AI 工程化的基本功。