采样参数退场、认证头换位、Admin API 字段改名——一次攒了三年的破坏性变更
2026-10-21,这是自 2023 年 2023-06-01 以来第一次推出新的正式版本号。新版移除 temperature、top_p、top_k,任何模型上传入都会返回 400;SDK 与 ant CLI 的新大版本默认使用它,并把 API Key 改放在 Authorization: Bearer 头里。旧版本没有被弃用。Claude API 靠请求头 anthropic-version 锁定行为。官方文档的承诺是:同一个版本内,既有的输入输出参数不会被拿走,Anthropic 只会加可选参数、加输出字段、加枚举值。换句话说,只有想删东西的时候才需要换版本号。过去三年工具调用、扩展思考、引用、批处理都是以「新增」的方式塞进了 2023-06-01,所以它一直撑到了现在。
这次终于要删了,而且一次删了一批。
根据官方版本历史与迁移指南,2026-10-21 的变更主要有这些:
temperature、top_p、top_k 被移除,哪怕传的是默认值也会 400;assistant 消息里直接放 document 块、user 消息里带非空 citations 的 text 块,同样返回 400。Authorization: Bearer <key> 发送 API Key,不再写 X-Api-Key。roles(改用 role_ids)、角色的 name 改为 display_name、API Key 的 workspace_id 改到 scope.workspace_id 等一批字段改名。ant CLI 升到 2.0.0,Go 模块路径加上 /v2;各语言 SDK 的新大版本默认使用新版本号。采样参数被删看着激进,实际上是给已经发生的事补一纸公文。据多家开发者社区与第三方变更追踪的记录,从 4 月 Opus 4.7 上线开始,较新的 Claude 模型对非默认的 temperature/top_p/top_k 已经直接报 400,官方建议改用提示词控制输出风格。问题在于老版本号下各模型行为不一致:同一段代码调旧模型能跑、调新模型就挂,SDK 的类型定义又仍然接受这几个字段,编译期查不出来。新版本把「所有模型一律不收」写成规则,至少让报错变得可预期。
代价也很直接:不少评测框架和「temperature=0 求确定性输出」的老习惯要改。确定性如今更多要靠结构化输出、工具约束和提示词本身,而不是一个旋钮。
比起参数,X-Api-Key 换成 Authorization: Bearer 更可能在不声不响中出事。很多团队在 SDK 和 Anthropic 之间隔着一层自建网关、反向代理或计费中间件,它们按 X-Api-Key 读取、校验、替换密钥。升级 SDK 大版本后,这些中间层看不到熟悉的头,轻则 401,重则把请求当成匿名流量放行或拦截。迁移指南专门提醒要改这类网关,或者在客户端显式继续发 X-Api-Key。
好在 2023-06-01 并未弃用,锁住旧 SDK 大版本、或者手写请求继续带旧版本号,现有集成可以原样跑下去。真正需要排期的,是「哪天想用只在新版本上提供的东西」——按照这套版本规则,那一天迟早会来。