Anthropic 发布了 Claude API 的新版本号 2026-10-21。开发者此前一直在请求头里写的 anthropic-version: 2023-06-01,从 2023 年用到现在,这次是它之后第一个正式的新版本。
改动最显眼的一条:Messages API 里的 temperature、top_p、top_k 三个采样参数被移除。按迁移文档的说法,用新版本发请求时只要带了这三个字段,哪怕填的就是默认值,也会直接返回 400 错误。不传的话,请求按默认值采样,temperature 为 1.0,和旧版本不传参数时的效果一样。
旧版本没有被弃用。文档给出的建议很直白:哪个请求依赖非默认的采样值,要么去掉参数,要么继续留在 2023-06-01。
哪些人会被影响
对 Claude 4.7 及之后的模型来说,这次删参数几乎没有实际变化,文档说明这些模型本来就只接受默认值。受影响的是还在用 Claude Sonnet 4.6 这类老模型、又专门把温度调低来换取稳定输出的应用。文档写得很清楚,这部分请求升级后会失去原来的效果,也没有任何其他设置能替代。
除了采样参数,Messages API 还有两处会报 400 的变化:
- 在 assistant 消息里直接放
document块,改为报错,文档要放进 user 消息; - 在 user 消息的 text 块里带非空
citations,同样报错。
管理侧也有改名。Admin API 里 RBAC 分组的 roles 变成 role_ids,API 密钥上的 workspace_id 被拿掉,改读 scope;企业分析接口里 actor.email 改成 actor.email_address。新版本下旧字段名不再返回。
SDK 一起跳大版本
各语言官方 SDK 这次都升了主版本号,新版默认发送 2026-10-21:Python 包 anthropic 到 2.0.0,TypeScript 的 @anthropic-ai/sdk 到 1.0.0,Go 到 v2(导入路径要加 /v2),Java 到 3.0.0,C# 到 13.0.0,PHP 到 1.0.0,Ruby 到 2.0.0。命令行工具 ant 升到 2.0.0。
Go 用户要多留一个心眼。CLI 的模块路径变成 github.com/anthropics/anthropic-cli/v2,文档特别提醒,用旧路径 go install 会继续装上最新的 v1,不报错也没有警告。
在 Amazon Bedrock 上,新版本只对 Claude 4.7 及之后的模型开放。还在 Bedrock 上调用 Opus 4.6 等旧模型的,要么停在现有 SDK 版本,要么先换模型再升级。
密钥换了个请求头
对国内开发者影响面可能最大的一条藏在 SDK 改动里。新版 SDK 和 CLI 不再把 API 密钥放进 X-Api-Key 请求头,统一改成 Authorization: Bearer <key>。
Claude API 本身两种头都接受,直连官方接口的程序不受影响。麻烦在中间层:自建的反向代理、API 网关、额度统计中间件,凡是从 X-Api-Key 里读密钥做鉴权或计费的,SDK 一升级就会读不到。文档给了两条路,改网关去读 Authorization,或者在客户端手动把密钥塞回 X-Api-Key。
另一个连带变化是一个客户端只能持有一种凭据。过去在 Python 里同时传 api_key 和 auth_token,会把两个头一起发出去,现在直接抛 ValueError。
从两年多的老版本号说起
2023-06-01 这个版本号覆盖了 Claude 从 Claude 2 时代到 Claude 5 系列的全部演进,中间新增的工具调用、提示缓存、扩展思考等能力,大多通过 beta 头和新字段叠加上去,版本号本身一直没动。
采样参数的退场其实早有铺垫。Claude 4.7 起模型就只认默认值,开发者在新模型上调温度早已不起作用,这次是把这条规则写进接口契约,让请求在入口处直接失败,免得调用方以为参数还在生效。
旧版本保留多久,迁移文档没有给出时间表,Anthropic 目前也没有公布 2023-06-01 的停用日期。
参考来源:Claude 平台迁移文档、Claude 开发者官方账号、CocoLoop;各语言 SDK 版本号、报错条件与 Bedrock 适用模型范围以官方迁移文档为准。