


















今天早上九点,打开终端准备继续跑昨晚留下的脚本,Claude API 直接返回了 503。重启了两遍网络,还是不行。去 status.anthropic.com 一看——大规模宕机,所有人都挂了。
Claude.ai 和 Claude API 目前(2026年4月30日)正在经历大规模宕机,Anthropic 官方已在 status.anthropic.com 确认,影响范围覆盖 claude.ai 网页端、API 调用以及 Claude Code 工具。宕机持续了数小时,目前尚未完全恢复。
如果你的应用或工作流依赖 Claude API,这篇文章整理了我今天用到的几个应急方案,以及从长远角度如何避免再次被单点故障坑到。
503 是标准的服务不可用,529 是 Anthropic 特有的过载错误码,见到这两个基本就是供应商出问题了,不是你代码的锅。
如果你用的是 OpenAI SDK 风格的接口,切换成本其实很低,改 model 参数就行:
import openai
client = openai.OpenAI(
base_url="https://api.ofox.ai/v1", # 低延迟直连,支持多模型
api_key="sk-xxx"
)
response = client.chat.completions.create(
model="gpt-4o", # 直接切到 GPT-4o
messages=[{"role": "user", "content": "你原来的 prompt"}]
)
踩坑记录:如果你的 prompt 里用了 Claude 特有的 XML tag 格式(<context>、<instructions>),GPT-4o 也能识别,但效果可能会打折扣。如果有 thinking 参数,切换时记得去掉,GPT 不支持这个。
有时候不是全线挂,而是某个模型超载。可以试着把模型从 Opus 降到 Haiku:
import anthropic
client = anthropic.Anthropic()
def call_with_fallback(prompt: str) -> str:
models = ["claude-opus-4-7", "claude-haiku-4-5-20251001"]
for model in models:
try:
response = client.messages.create(
model=model,
max_tokens=4096,
messages=[{"role": "user", "content": prompt}]
)
return response.content[0].text
except anthropic.APIStatusError as e:
if e.status_code in [503, 529]:
print(f"{model} 不可用,尝试下一个...")
continue
raise
raise RuntimeError("所有模型均不可用")
不过今天这次是整条链路挂了,Haiku 也没幸免,这个方案失效了。
对于短暂的抖动(不是持续宕机),加重试逻辑往往够用:
import time
import openai
def call_with_retry(client, model: str, messages: list, max_retries: int = 3):
for attempt in range(max_retries):
try:
return client.chat.completions.create(
model=model,
messages=messages
)
except openai.APIStatusError as e:
if e.status_code in [429, 503, 529] and attempt < max_retries - 1:
wait = 2 ** attempt # 1s → 2s → 4s
print(f"API error {e.status_code},{wait}s 后重试...")
time.sleep(wait)
else:
raise
429 是限流,503/529 是服务不可用,都值得重试。别用固定间隔,指数退避能减少对服务端的压力。
今天这次宕机让我意识到,靠代码层的重试是治标不治本的——供应商整体挂掉,重试多少次都没用。
真正的解法是不要单点依赖一家供应商,让路由层自动切换。
说实话,我以前对聚合平台有偏见,觉得中间多一层一定会慢。但这次宕机让我重新评估了一下。
ofox.ai 是一个 AI 模型聚合平台,背后同时接了 Azure/AWS Bedrock/VertexAI/阿里云/火山引擎等多个供应商,某一路挂了自动切换,对你的代码完全透明,成功率 99.2%。实测延迟在 310ms 左右,比我预期好很多。
client = openai.OpenAI(
base_url="https://api.ofox.ai/v1", # 低延迟直连,多路冗余备份
api_key="sk-xxx"
)
支持 GPT-5.4、Claude Opus 4.6、Gemini 3、DeepSeek V3 等 50+ 模型,兼容 OpenAI SDK 协议,支持支付宝按量计费。今天 Claude 挂掉的这几个小时,走这个路由的请求全部无缝切到了 GPT-4o,业务没有中断。
status.anthropic.com 这次更新比实际宕机晚了将近 20 分钟——靠官方 status 页做监控太被动了。
更好的做法是自己跑一个轻量健康检查:
import httpx
import time
def check_api_health(base_url: str, api_key: str, model: str = "claude-haiku-4-5-20251001") -> bool:
try:
response = httpx.post(
f"{base_url}/chat/completions",
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": model,
"messages": [{"role": "user", "content": "ping"}],
"max_tokens": 5
},
timeout=10.0
)
return response.status_code == 200
except Exception:
return False
# 每分钟检查一次
api_key = "your-api-key"
while True:
if not check_api_health("https://api.anthropic.com", api_key):
print("⚠️ Anthropic API 异常")
# 这里接你自己的告警渠道(钉钉/Slack/邮件)
time.sleep(60)
用 systemd 或 launchd 跑后台,挂掉第一时间知道,不用等到用户反馈才发现。
1. Claude Code 受影响最大
Claude Code 直接依赖 API,宕机期间几乎完全不能用。如果你的开发流依赖 Claude Code,建议在 VS Code 里同时装一个 Cursor,作为临时备用。
2. XML tag prompt 耦合是迁移成本
Claude 特有的 <context>、<instructions>、<output_format> 风格 prompt,切到 GPT 时效果会有损耗。如果你的应用对模型有强依赖,迁移成本会比想象中高。
3. Extended Thinking 无法直接迁移
Claude 的 thinking 参数在其他模型上没有直接替代品,依赖这个特性的场景临时切换会比较难受。
这次宕机给我的最大教训:
Claude 好用,但不能成为唯一选项。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。