跳到文章正文
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 中的任何一个,直接返回 400 invalid_request_error,报错信息是「temperature is deprecated for this model」
  • 就算你传的是默认值 1.0,照样报错
  • 覆盖面包括 Messages API、token 计数接口和 Message Batch 三类请求

换句话说,老代码只要没把这几行清掉,升级 SDK 之后第一次请求就会挂。

为什么敢这么干

这不是突然袭击。按官方迁移说明,从 Claude Opus 4.7 开始,Anthropic 就已经对新模型收紧非默认值的 temperature——只有新模型拒绝,老模型还能照常调。这次的 2026-10-21 把范围扩大到全部模型,包括以前能随便调的老模型。

背后的逻辑不难猜:模型的输出控制权应该交给模型自己,而不是让调用方去拧一个概率旋钮。官方文档对此的表述非常直接——没有其它设置可以替代 temperature,想改风格就去改 prompt。

迁移清单

  1. 全局搜一遍代码里的 temperature、top_p、top_k,能删就删,或者按 API 版本做条件性省略
  2. 更新 SDK:Python 2.0.0、TypeScript 1.0.0、Go 2.0.0、Java 3.0.0 等大版本已经把这三个参数从类型定义里去掉,默认 API 版本也指向 2026-10-21
  3. 检查网关和代理:SDK 的认证头从 X-Api-Key 换成了 Authorization: Bearer。服务端两个都收,但你的中间层可能只认旧的
  4. 确实需要非默认随机性:要么把请求钉在 2023-06-01(官方目前没给弃用期限),要么用 prompt 去控制语气和格式
  5. Admin API 有几个字段改了名,比如 workspace_id 变成 scope,管理后台的脚本要跟着动

顺带的其它破坏性变更

  • assistant 消息里塞 document block 会 400,得挪到 user 消息里
  • user 消息的 text block 带非空 citations 会 400,要去掉
  • Bedrock 上对新版本的支持范围另有差异,接云厂商通道的团队要先查一遍可用性

总结

删掉采样参数,本质上是 Anthropic 收回了一部分「调参」的权力:同一个 prompt,跨模型、跨版本的行为更可复现,不用再纠结 0.7 还是 0.8;代价是那些靠低 temperature 求稳定输出的老项目,要么留在旧版本,要么重写 prompt。

对普通用户来说没什么感觉,对调 API 的开发者来说,这是这个月最需要处理的兼容性问题。而且这大概只是开始——官方说以后会更频繁地发布版本号,意思就是破坏性变更会来得更规律。

本文地址:https://www.163264.com/18028