2026-10-21 改了什么

ClaudeDevs 在 2026 年 10 月 21 日的帖子列出三处破坏性变更:temperature、top_p 和 top_k 离开 Messages API;assistant 回合中的文档和 user 回合中的 citations 会返回 400;若干已弃用的 Admin 与 Enterprise Analytics 字段被替换。迁移指南把这些 Messages 规则用于 POST /v1/messages、token 计数,以及用 2026-10-21 创建的 Message Batch 里的每一个请求。

发送 temperature、top_p 或 top_k 会返回 400,即使是该参数的默认值。不发送它们时,请求按默认值采样,其中包括 temperature 1.0,与省略这些参数的 2023-06-01 请求相同。Claude 4.7 及之后的模型本来就只接受这些默认值,采样方式与以前一样。对仍接受其他取值的模型,指南举的例子是 Claude Sonnet 4.6:调低的 temperature 会失去该效果,没有别的设置可以替代,该请求可以留在 2023-06-01。

把文档块直接放进 assistant 消息会返回 400。文档应放在 user 消息里发送。嵌在另一个块里的文档仍然接受,例如 Claude 返回的 web-fetch 工具结果。user 消息里 citations 数组非空的文本块会返回 400,包括 search_result 块内部的 citations。assistant 消息文本上的 citations 仍然接受,例如把先前的回复再发回去;文档和搜索结果上的 "citations": {"enabled": true} 也同样接受。

Admin API 与 Claude Enterprise Analytics API 的响应不再包含表中的旧名称。API 密钥上的 workspace_id 被移除,调用方改读 scope。绑定到工作区的密钥,包括绑定到 Default Workspace 的密钥,会把该工作区的真实 ID 放在 scope.workspace_id 上。面向全部工作区的密钥,其 scope 为 {"type": "organization"},且没有 workspace_id。指南称,在 2023-06-01 下,绑定到 Default Workspace 的密钥和面向全部工作区的密钥,workspace_id 都是 null。把 null 当作 Default 的代码,应把 scope.workspace_id 与名为 Default 的工作区比较;该工作区通过带 include_default=true 的 List Workspaces 取得。速率限制列表端点上的 group_type 查询参数,以及 API 密钥列表端点上的 workspace_id 过滤器,都没有变化。

API 版本 2026-10-21 的响应字段更名,来自 Anthropic 的迁移指南。
端点旧名称新名称
RBAC 组:创建、列出、获取和更新rolesrole_ids
RBAC 组成员:列出、添加,以及移除成员的响应group_idrbac_group_id
RBAC 角色:列出和获取namedisplay_name
组织和工作区速率限制:列出,以及设置工作区速率限制的响应group_typegroup.type
API 密钥:列出、获取和更新workspace_idscope(取值不同)
按用户的用量与费用报告actor.emailactor.email_address
活动摘要summariesdata

谁需要改客户端

ClaudeDevs 称,Anthropic SDK 与 ant CLI 的新主要版本在帖子当天,即 2026 年 10 月 21 日发布,并默认使用 2026-10-21。迁移指南没有给这次客户端发布标注日期。指南称,SDK 发送的是其主要版本发布时当时的 API 版本,各语言所示版本是首批发送 2026-10-21 的版本,其中包括它们的 Amazon Bedrock 与 Google Cloud 客户端。更早的 SDK 和 CLI 版本发送的是 anthropic-version 2023-06-01。指南点名的 Python 升级是 anthropic 2.0.0。其他语言则指向该语言标签页上显示的版本。

在 Amazon Bedrock 上,2026-10-21 只适用于 Claude 4.7 及之后的模型。对更早的 Bedrock 模型的调用,在 Claude on Amazon Bedrock 中列为 Opus 4.6 及更早,在这些调用改用 Claude 4.7 或更新的模型之前,继续使用你今天所用的 SDK 版本,或你今天发送的版本头。同一份指南称,这些 SDK 版本的 Google Cloud 客户端会发送 2026-10-21。

SDK 和 CLI 把 API 密钥作为 Authorization: Bearer 发送,而不再放在 X-Api-Key 里。Claude API 接受任一头部中的密钥,因此直接与 API 通信的程序不必为这次调换改代码。读取或设置 X-Api-Key 的代理或网关应改用 Authorization,调用方也可以继续发送 X-Api-Key。指南称 AnthropicFoundry 仍以 x-api-key 发送密钥。

API 密钥和身份验证令牌现在共用一个头部,因此一个 SDK 客户端只持有一份凭证。在 Python 中,构造函数里传入两份或更多,或在同一次 copy() 或 with_options() 调用里传入两份或更多,会抛出 ValueError。传入 None 不算一份凭证。若要同时发送网关令牌和 API 密钥,把令牌作为 auth_token 传入,在 default_headers 里设置 X-Api-Key,并让网关在转发前去掉它的 Authorization 头,因为 Claude API 期望每个请求只有一份凭证。在 Python、TypeScript、Go、PHP 和 Ruby SDK 上,省略 X-Api-Key 的 extra_headers 不再能把密钥从请求中拿掉。指南给出的 Python 替代写法是 extra_headers={"Authorization": omit}。

ant CLI 移除了 --api-key 和 --auth-token,因为标志的值会出现在 shell 历史和进程列表里。这两个标志从 v1.27.0 起就会打印弃用警告。仍然传入其中任一标志的命令会停在 "flag provided but not defined."。密钥改用 ANTHROPIC_API_KEY、--api-key-stdin 或 ant auth login。令牌改用 ANTHROPIC_AUTH_TOKEN 或 --auth-token-stdin。

  • Text Completions 已从 TypeScript、Go、Java 和 Ruby SDK 以及 CLI 中移除,其中包括 ant completions create。指南称应改用 Messages API。
  • TypeScript 和 Ruby 的工具运行器去掉客户端 compaction,改为服务端 compaction。input token 触发阈值必须至少为 50,000。手动调用是 compactBeforeNextTurn()。
  • 非 beta 的 Models 方法不再接受 betas,ant models 命令也不再接受 --beta。beta 头通过 client.beta.models 或 ant beta:models 发送,返回类型为 BetaModelInfo。
  • MessageParam 现在是 UserMessageParam、AssistantMessageParam 和 SystemMessageParam 的联合类型。BetaMessageParam 以同样方式拆分。SDK 发送的 JSON 仍保持相同的字段和值。在 Python 中,{"role": "user", "content": "Hello"} 这样的 dict 字面量无需修改。调用 MessageParam() 或 BetaMessageParam(),或对这两个名字做子类化,会抛出 TypeError。应对应角色的类型做子类,例如 UserMessageParam。
  • 在 C#、Go、Java、PHP 和 Ruby SDK 中,只能取一个值的必填字段现在是常量,只有一个成员的 enum 类型已经去掉。SDK 发送和读取的 JSON 保持不变。在 CLI 上,ant beta:sessions:resources add 的 --type 是可选的,file 是唯一取值,仍然传入 --type file 的命令可以继续工作。

如何切换

不使用 SDK 的调用方把 anthropic-version 头设为 2026-10-21。使用 SDK 的调用方升级到指南为其语言所示的版本。Python 被点名的步骤是 anthropic 2.0.0。指南的顺序是:切换版本,按每一项适用的破坏性变更以及新 SDK 或 CLI 的需要更新代码,并在发布前针对 2026-10-21 测试集成。版本升级与这些修复一起发布。

ClaudeDevs 把读者指向 Claude Code 里的 /claude-api 技能或迁移指南。日期为 2026 年 10 月 21 日的 Claude Code 2.1.307 增加了 /claude-api api-version,用来把 Claude API 代码迁到 API 版本 2026-10-21。

这些 SDK 和 CLI 版本采用 Apache License 2.0。更早的版本仍是 MIT。指南称许可证变更不需要改代码;如果你跟踪依赖项的许可证条目,就更新该条目。1.0.0 发布是 TypeScript 平台包以及其他 C# 包的许可证变更。Java 的变更覆盖每一个 com.anthropic 构件。指南里 Python 的 API 版本锁定仍是 anthropic 2.0.0。

仍然开放的问题

ClaudeDevs 的帖子和迁移指南都没有给出 2023-06-01 或 2026-10-21 的价格、配额变化或停用日期。ClaudeDevs 称 2023-06-01 并未弃用。指南中与此相关的指示是:请求若需要非默认的采样值,就留在 2023-06-01。ClaudeDevs 更频繁发布版本的计划没有给出日程、下一个版本 id,或哪个模型会要求后续版本。

来源

Claude Developers · @ClaudeDevs

相关来源

资料与编写依据

这篇简报依据的是 2026 年 10 月 21 日发表的 ClaudeDevs 帖子、Anthropic 针对 API 版本 2026-10-21 的迁移指南,以及日期为 2026 年 10 月 21 日的 Claude Code 2.1.307 更新日志条目。指南和更新日志于 2026 年 10 月 22 日核对。可用性、2023 年以来第一个正式版本这一说法、更频繁发布版本的计划、2023-06-01 并未弃用这句话,以及 SDK 与 ant CLI 在同一天发布,都是 ClaudeDevs 的表述。请求和客户端行为以迁移指南所述为准。价格、配额、任何停用日期、真实 API 调用,以及单独的 Bedrock 模型列表,本文没有覆盖。指南为 Python 点名 anthropic 2.0.0,其他语言则指向各语言所示的版本。