Anthropic 的退役表只写"不早于":Sonnet 4.5 最早 9 月 29 日

2026-09-20 AnthropicClaude模型退役迁移

昨天写了 OpenAI 那张硬日期的停用表,今天补 Anthropic 这一张,因为两家的写法完全不是一回事,混着看会得出错误的紧迫感。

OpenAI 给的是 Shutdown date,到点不可访问,没有商量。Anthropic 给的是 Tentative retirement date,措辞统一是 Not sooner than(不早于)。

API 模型名当前状态暂定退役日期
claude-sonnet-4-5-20250929ActiveNot sooner than 2026-09-29
claude-haiku-4-5-20251001ActiveNot sooner than 2026-10-15
claude-opus-4-5-20251101ActiveNot sooner than 2026-11-24
claude-opus-4-6ActiveNot sooner than 2027-02-05
claude-opus-4-7ActiveNot sooner than 2027-04-16

这几个模型现在全部还是 Active,连 Deprecated 都还没进。表格里也没有”Legacy”这个状态打在任何具体模型上。

“不早于”到底是什么意思

它是下限,不是日期。官方写 Not sooner than September 29, 2026,意思是 9 月 29 日之前不会退,至于之后哪天退,页面不说。历史上 Anthropic 确实往后推过。对照页面上已经退休的那条:claude-opus-4-1-20250805,2026 年 6 月 5 日通知、8 月 5 日退休,间隔正好 2 个月——这就是它承诺的下限:公开发布的模型至少提前 60 天通知。

所以正确的读法是:把 9 月 29 日当成”最早可能出事的日子”,而不是”这天会出事”。恐慌没必要,但当它还剩 9 天的时候,也不该按”反正会延后”来处理。

今天该做的一件事:把硬编码的模型名找出来

Sonnet 4.5 是很多工具、脚手架、教程里的默认值,也是大量线上服务写死在配置里的那一个。跑一遍:

grep -rn "claude-sonnet-4-5\|claude-opus-4-5\|claude-haiku-4-5" . \
  --include="*.ts" --include="*.py" --include="*.json" --include="*.env*"

找到之后建议换成模型别名(claude-sonnet-4-6 这种带日期的完整名换成不带日期的 sonnet / opus / haiku 别名,或者至少在配置里加一层映射),这样下次退役你改一行配置就行,不用满仓库搜。

改别名的成本是 0。不改的成本是:某天早上 API 开始返回 not_found 之类的错误,线上功能直接挂,你要在用户投诉之后去翻 changelog 找原因。

两条容易踩的坑

用 Amazon Bedrock 或 Google Cloud Vertex 的,别照抄上面这张表。官方文档明确写了合作平台有自己的退休时间表,可能不一样。同一个模型走不同通道,寿命可以不同——这个事实本身就值得单独记一笔。

还有一条:非预览版才有这张表。预览模型(preview)什么时候结束、结束后会怎样,文档里没有写。任何名字里带 preview 的模型,默认按”随时可能没了”来用,别放进生产。

最后说回那张倒计时表

把 OpenAI 的硬日期和 Anthropic 的”不早于”排在同一张倒计时里,是给自己制造假紧迫和假安全——前者的紧迫是真的,后者的”安全”是假的。更稳妥的做法是分开记:硬日期进倒计时,“不早于”进复查清单,每两周自己回官方页面看一眼有没有从 Active 变成 Deprecated。真正该盯的信号不是那个日期,是状态列。

原文:https://platform.claude.com/docs/en/about-claude/model-deprecations

原文出处 · 事实以此为准
Anthropic Docs · Model deprecations
阅读原文 ↗