本文基于 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 降至 mediumSonnet 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_20251015 API 头部 + keep:1 参数实现

致命代码漏洞

设计意图:清除一次旧推理 → 恢复正常发送完整历史
实际行为:一旦触发空闲阈值,后续每一轮都持续清除推理历史

这意味着 Claude 只能记住最近的一句对话,彻底忘记了自己为什么要做当前的编辑和工具调用。 更严重的是,持续的缓存未命中(Cache Miss)导致 API 成本飙升—— 这正是用户反馈「额度光速消耗」的根本原因。

调试难度: 这个漏洞处于三个系统的交汇点:

  • Claude Code 的上下文管理
  • Anthropic API 的缓存机制
  • 扩展推理(Extended Thinking)模块

加上两个互不相关的内部实验干扰了复现:

  1. 仅服务端的消息队列实验
  2. 思考内容展示方式的正交改动(在大多数 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:默认配置是产品设计的一部分,不是技术参数

推理强度默认值从 highmediumhigh/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 问题」——他们只会觉得「你变笨了」。


参考资料