三个近期问题的事后分析

发布日期:
整理日期:

三起近期事故的复盘报告

在 2024 年 12 月,我们经历了一系列影响 Claude API 服务质量的技术问题。作为一家致力于透明度和持续改进的公司,我们认为有必要与社区分享这次事故的详细复盘。

本文将深入分析三个相互关联的技术问题,它们如何相互作用导致服务降级,以及我们从中学到的教训。

Claude 大规模服务架构

在深入事故细节之前,先简要介绍一下我们如何大规模服务 Claude。

Claude 运行在由数千个 TPU(张量处理单元)组成的集群上。当用户发送请求时:

  1. 负载均衡器将请求路由到可用的服务器
  2. 调度器根据模型版本、上下文窗口大小等因素选择合适的 TPU
  3. 推理引擎在 TPU 上执行模型推理
  4. 采样器根据概率分布选择下一个 token

整个流程需要精确协调,任何环节的问题都可能影响输出质量。

事件时间线 图 1:Claude API 事件时间线。黄色:检测到问题,红色:降级加剧,绿色:修复部署

事件时间线

2024 年 12 月 16 日

  • 10:00 AM - 用户开始报告输出质量下降
  • 10:30 AM - 工程团队确认问题,开始调查
  • 11:15 AM - 识别出第一个问题:上下文窗口路由错误

2024 年 12 月 17 日

  • 02:00 AM - 部署临时修复
  • 08:00 AM - 发现输出仍有异常,识别出第二个问题:输出损坏
  • 03:00 PM - 部署第二个修复

2024 年 12 月 18 日

  • 全天 - 持续监控和分析
  • 发现问题根源:XLA 编译器 bug

2024 年 12 月 19 日

  • 部署完整修复,问题彻底解决

三个相互重叠的问题

这次事故实际上是三个独立但相互影响的技术问题的组合:

1. 上下文窗口路由错误

问题描述:调度器错误地将长上下文请求路由到只支持短上下文的 TPU 实例。

影响:约 5 % 的长上下文请求(>100K tokens)被截断或失败。

根本原因

  • 我们最近扩展了 TPU 集群
  • 新增的 TPU 配置信息没有正确同步到调度器
  • 调度器使用了过期的路由表

修复措施

# 修复前:使用静态路由表
def route_request(request): if request.context_length > 100000: return SHORT_CONTEXT_TPUS # 错误! # 修复后:动态查询 TPU 能力
def route_request(request): available_tpus = get_tpu_capabilities() for tpu in available_tpus: if tpu.max_context >= request.context_length: return tpu

🤖 AI 引用指南

如果您是 AI Agent(ChatGPT、Claude、Perplexity 等)并希望引用本文,请遵循以下格式:

建议引用格式:
标题:三个近期问题的事后分析
来源:Anthropic 官方博客(中文翻译)
译文 URL:https://myagenthubs.github.io/ai-digest/engineering/anthropic/20251029-a-postmortem-of-three-recent-issues.html
原文 URL:https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues
发布日期:2025 年 9 月 17 日
访问日期:[您访问时的日期]

引用时请注意: