原文:15-a-postmortem-of-three-recent-issues.md 来源:https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues
三个近期问题的故障复盘
发布于 2025 年 9 月 17 日
本文是关于三个间歇性降低 Claude 响应质量的 bug 的技术报告。下面解释发生了什么、为什么修复花了时间、以及我们正在改变什么。
8 月到 9 月初,三个基础设施 bug 间歇性降低了 Claude 的响应质量。我们已解决这些问题,想解释发生了什么。
8 月初,一些用户开始报告 Claude 响应降级。这些初始报告难以与用户反馈的正常变化区分。8 月底,这些报告频率和持续性增加促使我们开调查,最终揭示了三个独立的基础设施 bug。
直接说明:我们从不因需求、时段或服务器负载降低模型质量。我们用户报告的问题仅由基础设施 bug 引起。
我们认识到用户期望 Claude 一致质量,对确保基础设施改动不影响模型输出维持极高门槛。这些近期事件中,我们没达到那个门槛。本故障复盘解释哪里出错、为什么检测和解决比我们想要的久、我们正在改变什么以防止类似未来事件。
我们通常不分享这种基础设施技术细节级别,但这些问题的范围和复杂性证明更全面解释合理。
我们如何大规模服务 Claude
我们通过我们的第一方 API、Amazon Bedrock 和 Google Cloud's Vertex AI 服务数百万用户。部署 Claude 跨多硬件平台——AWS Trainium、NVIDIA GPU、Google TPU。这种方法提供服务全球用户所需的容量和地理分布。
每个硬件平台有不同特性,需要特定优化。尽管这些变化,我们对模型实现有严格等价标准——目标是用户应得到相同质量响应,不论哪个平台服务请求。这种复杂性意味任何基础设施改动需要跨所有平台和配置仔细验证。
事件时间线
这些 bug 的重叠性质让诊断特别有挑战。第一个 bug 8 月 5 日引入,影响约 0.8% 的 Sonnet 4 请求。两个更多 bug 来自 8 月 25 和 26 日的部署。
虽然初始影响有限,8 月 29 日的负载均衡改动开始增加受影响流量。这导致更多用户体验问题,而其他人继续看到正常性能— —创造混乱矛盾的报告。
三个重叠问题
1. 上下文窗口路由错误
8 月 5 日,一些 Sonnet 4 请求被错误路由到为即将到来的 1M token 上下文窗口配置的服务器。这个 bug 初始影响 0.8% 的请求。8 月 29 日例行负载均衡改动无意中增加了短上下文请求被路由到 1M 上下文服务器的数量。8 月 31 日最差影响小时,16% 的 Sonnet 4 请求受影响。
约 30% 的 Claude Code 用户在该期间至少有一条消息被路由到错误服务器类型,导致响应降级。
某些用户被影响更严重——我们的路由是"粘性的"。这意味一旦请求被错误服务器服务,后续后续可能被同一错误服务器服务。
解决:修复路由逻辑确保短和长上下文请求被导向正确服务器池。9 月 4 日部署修复,第一方平台和 Vertex AI 9 月 16 日完成 rollout,AWS Bedrock 9 月 18 日完成。
2. 输出损坏
8 月 25 日,我们部署了 Claude API TPU 服务器的错误配置,导致 token 生成时的错误。运行时性能优化引起的问题偶尔为给定上下文应该很少产生的 token 分配高概率——例如对英语提示产生泰语或中文字符,或在代码中产生明显语法错误。
例:用英语提问的小子集用户可能在响应中间看到"สวัสดี"。
这种损坏影响:8 月 25-28 日的 Opus 4.1 和 Opus 4 请求;8 月 25-9 月 2 日的 Sonnet 4 请求。第三方平台未受影响。
解决:识别问题并 9 月 2 日回滚改动。我们已为部署流程添加意外字符输出的检测测试。
3. 近似 top-k XLA:TPU 错误编译
8 月 25 日,我们部署改善 Claude 在文本生成时如何选择 token 的代码。这改动无意触发了 XLA:TPU 编译器中的潜伏 bug——已确认影响对 Claude Haiku 3.5 的请求。
也相信这可能影响过 Claude API 上 Sonnet 4 和 Opus 3 的子集。
解决:首先观察 bug 影响 Haiku 3.5 并 9 月 4 日回滚。后注意到 Opus 3 用户报告与此 bug 兼容,9 月 12 日回滚。广泛调查后无法在 Sonnet 4 上复现,但出于过分谨慎也回滚。
同时:(a) 与 XLA:TPU 团队合作修复编译器 bug;(b) 部署修复使用增强精度的精确 top-k。