本文基于 Anthropic 官方技术复盘 An update on recent Claude Code quality reports 与中文媒体分析, 从工程视角解构一次典型的 AI 产品层质量事故,并提炼对 Harness 设计的通用参考。
一、事件背景:当「最强编程模型」口碑滑坡
2026 年 3 月至 4 月期间,大量 Claude Code 用户在 Hacker News、Reddit 和 X 上反馈模型「变笨了」—— 输出变得健忘、重复、废话连篇,甚至在复杂任务中表现明显退步。
作为当时全球最强梯队的编程模型,Claude Opus 4.7 的发布本应是一场胜利, 却意外成为质量危机的引爆点。Anthropic 研发团队在调查后承认:这并非用户错觉, 而是三个看似合理的产品优化,在组合作用下引发了连锁反应。
关键时间线:
| 日期 | 事件 | 影响范围 |
|---|---|---|
| 3月4日 | 默认推理强度从 high 降至 medium | Sonnet 4.6 / Opus 4.6 |
| 3月26日 | 缓存清理优化引入重复清除漏洞 | Sonnet 4.6 / Opus 4.6 |
| 4月7日 | 恢复默认推理强度为 high/xhigh | 上述模型 |
| 4月16日 | 新增字数限制系统提示词 | Sonnet 4.6 / Opus 4.6 / Opus 4.7 |
| 4月20日 | 撤销字数限制提示词,全面修复 | 全部 |
值得注意的是,这三个问题均发生在产品层(Harness / 应用层),底层 API 和推理服务并未受影响。 这为我们提供了一个绝佳案例:即便是顶级 AI 实验室,在 Harness 设计中也会犯「聪明的错误」。
二、三个 Bug 的深层解剖
Bug 1:推理强度的「错误取舍」
现象:用户反馈 Claude「思考变快但变蠢了」,复杂任务的输出质量明显下降。
根因:
- 2 月发布 Opus 4.6 时,默认推理强度设为
high - 部分用户反馈高模式下 UI 卡死、延迟过高、Token 消耗过快
- 团队内部评估认为
medium模式「以极小的智能损失换取显著的速度提升」 - 3 月 4 日将默认强度改为
medium,并通过/effort命令提供其他选项
问题所在:
「极小的智能损失」≠ 用户可接受的损失
对编程这类高认知负荷任务而言,推理强度下降导致的不是「稍微差一点」,
而是从「生成优雅重构」到「产出垃圾代码」的质变。更关键的是,
绝大多数用户不会修改默认值——无论团队如何优化提示、增加选择器、
恢复 ultrathink 选项,默认设置就是事实上的标准体验。
修复:4 月 7 日恢复默认强度——Opus 4.7 默认 xhigh,其他模型默认 high。
核心教训:
在 AI 产品中,「性能 vs 智能」的取舍不能由产品团队单方面定义。 对专业用户(如开发者)而言,智能下降是不可接受的 trade-off, 默认设置必须是「最佳智能」,让用户主动选择「更快但更简单」的模式。
Bug 2:缓存清理的「幽灵漏洞」
现象:会话超过一小时后,Claude 变得极度健忘,重复询问相同问题, 同时用户的使用额度被「光速消耗」。
根因:
- Claude Code 使用 prompt caching 降低连续 API 调用的成本
- 正常流程:Claude 发起请求时将输入 Token 写入缓存 → 一段时间无活动后缓存被逐出
- 3 月 26 日的优化意图:若会话空闲超过一小时,清除旧推理内容以降低恢复成本
- 使用
clear_thinking_20251015API 头部 +keep:1参数实现
致命代码漏洞:
设计意图:清除一次旧推理 → 恢复正常发送完整历史
实际行为:一旦触发空闲阈值,后续每一轮都持续清除推理历史
这意味着 Claude 只能记住最近的一句对话,彻底忘记了自己为什么要做当前的编辑和工具调用。 更严重的是,持续的缓存未命中(Cache Miss)导致 API 成本飙升—— 这正是用户反馈「额度光速消耗」的根本原因。
调试难度: 这个漏洞处于三个系统的交汇点:
- Claude Code 的上下文管理
- Anthropic API 的缓存机制
- 扩展推理(Extended Thinking)模块
加上两个互不相关的内部实验干扰了复现:
- 仅服务端的消息队列实验
- 思考内容展示方式的正交改动(在大多数 CLI 会话中掩盖了漏洞)
尽管变更通过了多轮人工/自动化代码审查、单元测试、端到端测试和内部试用, 团队仍花费 超过一周 才定位根因。
有趣的反向验证: 调查过程中,团队用 Opus 4.7 对问题 PR 进行「代码审查」测试—— 当提供完整代码仓库上下文时,Opus 4.7 发现了该漏洞,而 Opus 4.6 没有。
修复:4 月 10 日 v2.1.101 版本修复。
核心教训:
跨系统的边缘情况(corner case)是最危险的漏洞温床。 「仅发生在陈旧会话」的假设让团队放松了警惕, 但缓存机制的复利效应(compounding effect)使得一次触发导致永久损坏。
Bug 3:系统提示词的「过度约束」
现象:Claude Opus 4.7 输出异常简洁,但在复杂编码任务中频繁出错, 表现出「为了短而牺牲正确性」的倾向。
根因:
- Opus 4.7 相较于前代更加「啰嗦」——更多输出 Token,但在困难问题上表现更好
- 团队综合运用模型训练、提示优化、思考体验改进来降低冗长程度
- 新增的系统提示词:
Length limits: keep text between tool calls to ≤25 words.
Keep final responses to ≤100 words unless the task requires more detail.
问题所在: 这条提示词经过数周内部测试,在既有评估集上未出现性能退化, 于是团队认为它是安全的。然而更广泛的消融测试(ablations)发现: Opus 4.6 和 4.7 均出现 3% 的性能下降。
3% 看似很小,但在编码任务中,这意味着:
- 关键上下文被截断
- 复杂推理链被迫压缩
- 工具调用之间的解释性文本不足,导致后续轮次误解意图
修复:4 月 20 日立即撤销该提示词。
核心教训:
「减少冗长」和「保持智能」不是零和博弈,但用硬约束(hard limit) 而非软引导(soft nudge)来实现前者,极易越过临界点。 系统提示词的每一行都必须经过「逐行消融测试」验证, 因为 LLM 对提示词的敏感度是非线性的。
三、Anthropic 的后续改进方案
1. 内部「同频」机制:全员使用公共构建版
团队将推动更大比例的员工使用精确的公共构建版本(而非内部测试版), 确保开发者与用户「感同身受」。同时改进内部代码审查工具,并同步提供给客户。
启示:
Dogfooding 必须是用「真实版本」吃自己的狗粮。 内部测试版的特性污染会掩盖真实用户体验问题。
2. 系统提示词审计工具:逐行消融测试
对每次系统提示词变更:
- 针对每个模型运行广泛评估
- 持续开展消融测试明确每行提示词的具体影响
- 构建新的审查和审计工具
- 在
CLAUDE.md中新增指导原则:模型特定变更仅限该模型范围
启示:
提示词工程需要「版本控制 + 回归测试」的严谨性, 不能依赖「感觉没问题」的主观判断。
3. 「浸泡期」机制:智能不可牺牲
对任何可能「牺牲智能换取性能」的改动:
- 增加浸泡期(soak periods)
- 扩大评估集范围
- 采用逐步上线(gradual rollouts)流程
启示:
AI 产品的性能优化必须设置「智能红线」。 任何可能影响推理质量的改动,都需要更长的观察窗口和更保守的发布策略。
4. 透明度提升:建立开发者沟通渠道
- 创建 @ClaudeDevs X 账号解释产品决策
- 在 GitHub 集中讨论帖中同步更新
四、对 Harness 设计迭代的深层参考
Anthropic 的这次危机不是「低级错误」,而是一系列「合理决策的累积效应」。 从中我们可以提炼出对 AI Harness 设计的通用原则:
原则 1:默认配置是产品设计的一部分,不是技术参数
推理强度默认值从 high → medium → high/xhigh 的反复,
暴露了产品团队对「用户是谁」的误判。
对 Harness 设计的启示:
- 默认配置必须经过「目标用户角色」的严格验证
- 专业工具的默认设置应该偏向「能力最大化」而非「体验平滑化」
- 任何默认值的变更都是产品级决策,需要 A/B 测试和用户反馈的双重验证
原则 2:缓存和状态管理需要「防御性设计」
缓存清理漏洞的核心是:一个一次性操作变成了永久性状态。
对 Harness 设计的启示:
- 缓存清理类操作必须带有「自恢复」机制(如:清理一次后恢复完整发送)
- 跨系统的状态变更需要「断言检查」(assertion checks)验证预期行为
- 对「仅发生在边缘情况」的代码路径,应强制要求 100% 的测试覆盖
原则 3:系统提示词是「隐性代码」,需要同等治理
一条看似无害的「字数限制」提示词,导致了 3% 的编码性能下降。
对 Harness 设计的启示:
- 系统提示词应纳入 CI/CD 流程,每次变更触发自动化评估
- 建立「提示词影响矩阵」:逐行记录每行提示词对不同模型/任务的影响
- 避免使用硬性约束(≤25 words),改用软性引导(「请简洁表达」)
原则 4:多系统交汇点是风险最高区域
这个漏洞位于上下文管理、API 缓存、扩展推理三个模块的交汇点。
对 Harness 设计的启示:
- 模块边界处需要「集成契约测试」(integration contract tests)
- 跨系统交互的日志必须足够详细,支持「事后追溯性调试」
- 复杂系统的变更审查应强制要求「跨模块影响分析」
原则 5:评估集必须覆盖「真实使用模式」
内部评估未能发现问题的根本原因是:评估集没有覆盖真实的长会话场景。
对 Harness 设计的启示:
- 评估集应包含「长时间交互」「边缘状态恢复」「高延迟容忍度」等真实场景
- 建立「生产环境影子评估」:对真实用户会话进行匿名化回归测试
- 用户反馈是「最昂贵的信号」,需要建立快速响应机制
五、结语:透明是最好的危机公关
Anthropic 在这次事件中的应对值得肯定:
- 承认问题(而非否认或推诿)
- 提供详细的技术复盘(而非模糊的「已优化」)
- 重置所有订阅用户的使用限额(用实际行动道歉)
但社区的愤怒也说明:信任一旦受损,修复成本远超预防成本。 一位用户的评论精准地总结了这一点:
「过去一年我为 Anthropic Max 支付了约 2400 美元,为 OpenAI 支付了 0 美元。 过去 48 小时我切换到 OpenAI 的 Codex 感觉真的非常棒。 失去最忠实用户的方式,不是因为模型出 Bug,而是因为糟糕的道歉。」
对于 Harness 设计者而言,这次事件是一堂代价高昂的公开课: 在 AI 产品中,产品层的「小优化」可能引发模型层的「大降级」, 而用户不会区分「是模型问题还是 Harness 问题」——他们只会觉得「你变笨了」。
参考资料:
- Anthropic 官方复盘:An update on recent Claude Code quality reports
- InfoQ 中文分析:Anthropic 正面回应模型「变笨」