【生产力】Claude Opus 5 新特性与行为变化:完整更新与迁移指南
本文概览 Claude Opus 5 带来的新功能、行为变化、能力提升、定价、可用平台以及从 Claude Opus 4.8 迁移时需要注意的事项。
Claude Opus 5 相较于 Claude Opus 4.8 是一次跨越式升级,在深度推理、智能体任务、长周期任务以及测试时计算扩展方面提升尤为明显。本文汇总 Claude Opus 5 的全部重要变化,包括默认开启思考、对话中途变更工具,以及“何时可以禁用思考”这一破坏性变更。
新模型
| 模型 | API 模型 ID | 说明 |
|---|---|---|
| Claude Opus 5 | claude-opus-5 |
面向复杂的智能体编程和企业级工作 |
Claude Opus 5 提供 100 万 token 上下文窗口。100 万 token 同时是默认值和最大值,不提供更小的上下文版本;模型最多可生成 128k token,并且默认开启思考能力。
完整的定价和规格请参阅模型概览。
新功能
对话中途变更工具(Beta)
在多轮对话的不同轮次之间,可以添加或移除工具,同时保留提示缓存;不再需要在整个会话生命周期内重复发送一份固定的工具列表。
对话中途变更工具目前处于 Beta 阶段。请求中需要加入 mid-conversation-tool-changes-2026-07-01 Beta 标头。具体用法请参阅对话中途变更工具。
默认回退模式
fallbacks 参数新增了 "default" 模式。该模式会根据拒答类别应用 Anthropic 推荐的回退模型,无需自行维护模型列表。
整个 fallbacks 参数目前处于 Beta 阶段。请使用 server-side-fallback-2026-07-01 Beta 标头;该标头同时支持 "default" 模式和显式模型列表。此前的 server-side-fallback-2026-06-01 标头仅支持显式模型列表。详情请参阅拒答与回退。
降低提示缓存最小长度
Claude Opus 5 的可缓存提示最小长度为 512 个 token,低于 Claude Opus 4.8 的 1,024 个 token。此前在 Claude Opus 4.8 上因过短而无法缓存的提示,现在无需修改代码即可创建缓存条目。各模型的最小长度请参阅提示缓存的限制。
快速模式
快速模式目前以研究预览版形式提供,仅支持 Claude API 上的 Claude Opus 5;Amazon Bedrock、Google Cloud 和 Microsoft Foundry 暂不支持该功能。
Claude Opus 5 快速模式的价格为:每百万输入 token 10 美元,每百万输出 token 50 美元。访问方式、支持的模型和定价详情请参阅快速模式。
行为变化
默认开启思考
在 Claude Opus 4.8 中,如果不设置 thinking: {"type": "adaptive"},请求默认不会启用思考。Claude Opus 5 则会让相同请求默认启用思考:模型会在每一轮自行决定是否思考以及思考多少,而effort 参数用于控制思考深度。
API 传输层的取值没有变化:thinking: {"type": "adaptive"} 仍然有效,并且与默认行为等价。
由于 max_tokens 是整个输出的硬性上限(包括思考内容和最终响应文本),因此需要重新评估那些此前在 Claude Opus 4.8 上未启用思考的工作负载所使用的 max_tokens 值。
API 仍然支持禁用思考,但需要遵守下文的 effort 限制。
effort 参数影响更大
与此前的任何 Opus 模型相比,Claude Opus 5 都能更稳定地将额外的 effort 转化为更好的结果,因此所选的 effort 等级会产生更明显的影响。
完整的等级梯度为:low、medium、high、xhigh 和 max。其中 max 是最高等级,用于执行最深度的推理。建议从默认的 high 开始,然后根据评测结果上下调整:如果质量没有明显下降,可以降低等级以节省 token 和延迟;对于最具挑战性的工作,则可以提高等级。
使用 xhigh 或 max effort 时,应设置较大的 max_tokens,为模型在多个子智能体和工具调用之间进行思考与执行留出足够空间。
以下请求将 effort 完全提升至 max:
cURL
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5",
"max_tokens": 64000,
"stream": true,
"output_config": {
"effort": "max"
},
"messages": [
{
"role": "user",
"content": "Explain why the sum of two even numbers is always even."
}
]
}'
Claude CLI
# 64k max_tokens 可能超过非流式请求的时间限制,因此使用流式事件。
ant messages create --stream --format jsonl <<'YAML'
model: claude-opus-5
max_tokens: 64000
output_config:
effort: max
messages:
- role: user
content: Explain why the sum of two even numbers is always even.
YAML
Python
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-opus-5",
max_tokens=64000,
output_config={"effort": "max"},
messages=[
{
"role": "user",
"content": "Explain why the sum of two even numbers is always even.",
}
],
) as stream:
response = stream.get_final_message()
print(response)
TypeScript
const client = new Anthropic();
const stream = client.messages.stream({
model: "claude-opus-5",
max_tokens: 64000,
output_config: {
effort: "max"
},
messages: [
{
role: "user",
content: "Explain why the sum of two even numbers is always even."
}
]
});
const response = await stream.finalMessage();
console.log(response);
C#
AnthropicClient client = new();
var parameters = new MessageCreateParams
{
Model = Model.ClaudeOpus5,
MaxTokens = 64000,
OutputConfig = new OutputConfig
{
Effort = Effort.Max
},
Messages = [new() { Role = Role.User, Content = "Explain why the sum of two even numbers is always even." }]
};
var response = await client.Messages.CreateStreaming(parameters).Aggregate();
Console.WriteLine(response);
Go
client := anthropic.NewClient()
stream := client.Messages.NewStreaming(context.TODO(), anthropic.MessageNewParams{
Model: anthropic.ModelClaudeOpus5,
MaxTokens: 64000,
OutputConfig: anthropic.OutputConfigParam{
Effort: anthropic.OutputConfigEffortMax,
},
Messages: []anthropic.MessageParam{
anthropic.NewUserMessage(anthropic.NewTextBlock("Explain why the sum of two even numbers is always even.")),
},
})
response := anthropic.Message{}
for stream.Next() {
event := stream.Current()
if err := response.Accumulate(event); err != nil {
log.Fatal(err)
}
}
if err := stream.Err(); err != nil {
log.Fatal(err)
}
fmt.Println(response)
Java
AnthropicClient client = AnthropicOkHttpClient.fromEnv();
MessageCreateParams params = MessageCreateParams.builder()
.model(Model.CLAUDE_OPUS_5)
.maxTokens(64000L)
.outputConfig(OutputConfig.builder()
.effort(OutputConfig.Effort.MAX)
.build())
.addUserMessage("Explain why the sum of two even numbers is always even.")
.build();
MessageAccumulator accumulator = MessageAccumulator.create();
try (var streamResponse = client.messages().createStreaming(params)) {
streamResponse.stream().forEach(accumulator::accumulate);
}
Message response = accumulator.message();
IO.println(response);
PHP
$client = new Client();
$stream = $client->messages->createStream(
maxTokens: 64000,
messages: [
['role' => 'user', 'content' => 'Explain why the sum of two even numbers is always even.']
],
model: Model::CLAUDE_OPUS_5,
outputConfig: ['effort' => Effort::MAX],
);
$accumulator = MessageAccumulator::forMessages();
foreach ($stream as $event) {
$accumulator->accumulate($event);
}
echo $accumulator->message();
Ruby
client = Anthropic::Client.new
response = client.messages.stream(
model: Anthropic::Model::CLAUDE_OPUS_5,
max_tokens: 64000,
output_config: {
effort: :max
},
messages: [
{ role: "user", content: "Explain why the sum of two even numbers is always even." }
]
).accumulated_message
puts response
Claude Opus 5 默认开启思考,因此不需要提供 thinking 字段。
禁用思考时,effort 必须为 high 或更低
在 Claude Opus 5 中,只有当 effort 等级为 high 或更低时,thinking: {"type": "disabled"} 才会被接受。当 effort 设置为 xhigh 或 max 时再设置 thinking: {"type": "disabled"},API 会返回 400 错误。
这项行为从 Claude Opus 5 起正式生效,并在每次请求中执行。相较于 Claude Opus 4.8,这是一个破坏性变更;在 Claude Opus 4.8 中,禁用思考与 effort 等级彼此独立。
如果当前在较高 effort 等级下禁用了思考,可以选择以下方式之一:
- 保持禁用思考,同时将 effort 设置为
high或更低; - 保留当前 effort 等级,并移除
thinking字段。
禁用思考后,Claude Opus 5 偶尔可能会将工具调用写入文本输出,而不是发出 tool_use 代码块;也可能在可见响应中包含内部 XML 标签。只要条件允许,建议保持思考开启,并通过较低的 effort 等级控制 token 成本。对于必须禁用思考的集成,请参阅禁用思考运行时的提示建议。
模型行为差异
除了上述 API 变化外,Claude Opus 5 在不修改任何代码的情况下,也会表现出一些与 Claude Opus 4.8 不同的行为:
- 默认面向用户的响应和书面交付物会更长;
- 在智能体会话中,模型会更频繁地向用户说明进度;
- 在多智能体框架中,模型更愿意将任务委派给子智能体;
- 模型会在没有明确要求的情况下自行验证工作结果。因此,应删除从早期模型沿用的验证指令,例如“最后增加一个验证步骤”或“使用子智能体验证”。这些指令在 Claude Opus 5 上可能导致过度验证。
针对上述行为的调优提示模式,请参阅Claude Opus 5 提示指南。
能力提升
与 Claude Opus 4.8 相比,Claude Opus 5 并非渐进式升级,而是一次跨越式提升;它以 Claude Fable 5 一半的成本提供前沿级智能。主要提升包括:
- 深度推理:能够在很长的问题链条中持续进行多步骤分析。
- 智能体编程和长周期任务:能够在持续的工具调用循环中保持任务目标,完成多文件功能、大规模重构和端到端功能开发,而不会留下存根或占位实现。
- 测试时计算扩展:能够将额外的 effort(最高至
max)有效转化为更好的结果。 - 低 effort 等级下的效率:
low和mediumeffort 等级即可提供较强质量,同时 token 消耗和延迟仅为更高等级的一小部分。 - 代码审查和缺陷发现:每轮审查都能以较高命中率发现真实缺陷,误报较少,并且在较低 effort 等级下仍能保持准确性。
- 视觉能力:能够理解图表、文档和示意图,并复刻 UI 与前端视觉效果。为模型提供可以迭代分析、裁剪和验证结果的工具时,表现尤其出色。
- 长上下文工作:上下文窗口默认且最大均为100 万 token,在整个窗口范围内都能稳定遵循指令、调用工具并进行推理。
- 办公和文档任务:能够生成和编辑带有复杂、多工作表结构及非平凡公式的电子表格,并制作结构良好的演示文稿。
- 多智能体协作:能够运行由多个子智能体组成的团队,有效采用“编写者—验证者”模式,并减少智能体之间相互覆盖工作成果的情况。
要充分发挥这些能力,请参阅Claude Opus 5 提示指南中的能力优化建议。
定价
Claude Opus 5 的价格为每百万输入 token 5 美元、每百万输出 token 25 美元,与 Claude Opus 4.8 保持不变。
完整定价信息(包括批处理、提示缓存和快速模式费率)请参阅定价说明。
可用性
Claude Opus 5 已在以下平台提供:
- Claude API:面向所有客户开放,模型 ID 为
claude-opus-5。 - AWS:可通过 Claude on Amazon Bedrock 使用,模型 ID 为
anthropic.claude-opus-5。Claude Opus 5 也可以通过bedrock-runtime上的InvokeModelAPI 访问,底层使用相同的基础设施。旧版 Claude on Amazon Bedrock 集成的 ARN 版本化模型 ID 表中不包含该模型。 - Google Cloud:可通过 Claude on Google Cloud 使用,模型 ID 为
claude-opus-5。 - Microsoft Foundry:可通过 Claude in Microsoft Foundry 使用。
Claude Opus 4.8 仍可在上述所有平台使用。
迁移指南
从 Claude Opus 4.8 迁移时,首先更新模型 ID:
Python
model = "claude-opus-4-8" # 之前
model = "claude-opus-5" # 之后
TypeScript
let model = "claude-opus-4-8"; // 之前
model = "claude-opus-5"; // 之后
C#
var model = Model.ClaudeOpus4_8; // 之前
model = Model.ClaudeOpus5; // 之后
Go
model := anthropic.ModelClaudeOpus4_8 // 之前
model = anthropic.ModelClaudeOpus5 // 之后
Java
Model model = Model.CLAUDE_OPUS_4_8; // 之前
model = Model.CLAUDE_OPUS_5; // 之后
PHP
$model = Model::CLAUDE_OPUS_4_8; // 之前
$model = Model::CLAUDE_OPUS_5; // 之后
Ruby
model = Anthropic::Model::CLAUDE_OPUS_4_8 # 之前
model = Anthropic::Model::CLAUDE_OPUS_5 # 之后
然后重点检查两项行为变化:思考默认开启;当 effort 为 xhigh 或 max 时禁用思考会返回 400 错误。
更多推荐



所有评论(0)