anthropic-Claude 编辑推荐
Claude API 删掉 temperature 参数:想调随机性,官方说没有替代品
核心看点 Anthropic 发布 Claude API 版本 2026-10-21,这是 20…
文章目录
核心看点
- Anthropic 发布 Claude API 版本
2026-10-21,这是 2023 年 6 月以来第一个新的正式版本号 temperature、top_p、top_k三个采样参数被彻底移除,请求里带上就返回 400- 官方迁移文档写得很直白:没有别的设置能替代它
- 主流 SDK 同步发了大版本,新版本默认就走
2026-10-21
三年没动的版本号,突然动了
Claude API 从 2023 年 6 月起一直挂着 2023-06-01 这个版本号,三年多没换过。10 月 21 日,Anthropic 第一次把版本号改成了 2026-10-21。换版本号本身不算新闻,真正让开发者头疼的是它带来的第一项破坏性变更——把三个采样参数从 API 里删掉了。
删得有多彻底
不是「不建议使用」,是硬性拒绝:
- 请求里只要带上
temperature、top_p、top_k中的任何一个,直接返回 400invalid_request_error,报错信息是「temperatureis deprecated for this model」 - 就算你传的是默认值 1.0,照样报错
- 覆盖面包括 Messages API、token 计数接口和 Message Batch 三类请求
换句话说,老代码只要没把这几行清掉,升级 SDK 之后第一次请求就会挂。
为什么敢这么干
这不是突然袭击。按官方迁移说明,从 Claude Opus 4.7 开始,Anthropic 就已经对新模型收紧非默认值的 temperature——只有新模型拒绝,老模型还能照常调。这次的 2026-10-21 把范围扩大到全部模型,包括以前能随便调的老模型。
背后的逻辑不难猜:模型的输出控制权应该交给模型自己,而不是让调用方去拧一个概率旋钮。官方文档对此的表述非常直接——没有其它设置可以替代 temperature,想改风格就去改 prompt。
迁移清单
- 全局搜一遍代码里的
temperature、top_p、top_k,能删就删,或者按 API 版本做条件性省略 - 更新 SDK:Python 2.0.0、TypeScript 1.0.0、Go 2.0.0、Java 3.0.0 等大版本已经把这三个参数从类型定义里去掉,默认 API 版本也指向
2026-10-21 - 检查网关和代理:SDK 的认证头从
X-Api-Key换成了Authorization: Bearer。服务端两个都收,但你的中间层可能只认旧的 - 确实需要非默认随机性:要么把请求钉在
2023-06-01(官方目前没给弃用期限),要么用 prompt 去控制语气和格式 - Admin API 有几个字段改了名,比如
workspace_id变成scope,管理后台的脚本要跟着动
顺带的其它破坏性变更
- assistant 消息里塞
documentblock 会 400,得挪到 user 消息里 - user 消息的 text block 带非空
citations会 400,要去掉 - Bedrock 上对新版本的支持范围另有差异,接云厂商通道的团队要先查一遍可用性
总结
删掉采样参数,本质上是 Anthropic 收回了一部分「调参」的权力:同一个 prompt,跨模型、跨版本的行为更可复现,不用再纠结 0.7 还是 0.8;代价是那些靠低 temperature 求稳定输出的老项目,要么留在旧版本,要么重写 prompt。
对普通用户来说没什么感觉,对调 API 的开发者来说,这是这个月最需要处理的兼容性问题。而且这大概只是开始——官方说以后会更频繁地发布版本号,意思就是破坏性变更会来得更规律。
本文地址:https://www.163264.com/18028
