Claude Opus 4 与 Claude Sonnet 4 是 Anthropic 于 2025 年 5 月发布的混合推理模型。它们的重要性在于把强编码能力、推理中工具调用和长任务执行带入同一产品代际,但原始 API 快照现已退役。真正值得保留的结论并不是某个型号曾经“世界最强”,而是模型、Agent 脚手架、计算策略、权限与验收测试共同决定生产结果。

新项目不要从旧教程复制模型 ID。应先查询 Anthropic 当前模型目录,再用自己的评测集回放后迁移流量。本文还原 Claude 4 发布时的成绩和边界,解释这些数字没有证明什么,并给出跨模型代际仍然有效的选型与上线方法。

核心结论

  • Anthropic 于 2025 年 5 月 22 日发布 Opus 4 与 Sonnet 4。两者拥有 200K Token 上下文、混合推理、文本与图像输入、工具调用;发布价分别为每百万输入/输出 Token 15/75 美元与 3/15 美元。
  • SWE-bench Verified 的 72.5% 与 72.7% 是 Anthropic 在明确脚手架下得到的结果,不是脱离 Agent 系统仍保持不变的“模型常数”。
  • 79.4% 与 80.2% 的“高计算量”成绩使用并行候选、可见测试淘汰和内部评分模型,不能和单次尝试结果按相同推理预算比较。
  • 常被引用的“7 小时自主编程”来自 Anthropic 转述的 Rakuten 单次开源重构案例,证明长任务曾经可行,不构成通用可靠性保证。
  • Anthropic 已于 2026 年 6 月 15 日从自营 API 退役两个原始 Claude 4 快照。迁移不能只替换模型名,因为推理参数、内容块、成本与拒答行为都可能变化。
  • Opus 4 的 ASL-3 不会自动保护下游应用。工具白名单、沙箱、审批、幂等、审计日志和故障恢复仍由应用负责。

Claude 4 当时带来了什么

Claude 4 是一个产品家族,不是已公开细节的新神经网络架构。Anthropic 将两款模型定义为混合推理模型:既能以标准模式快速回答,也能由调用方开启 Extended Thinking。同期能力还包括推理中使用工具、并行工具调用、借助开发者提供的文件保存记忆,以及代码执行、Files API、提示缓存和远程 MCP Connector 等 API 能力。

发布时的产品对照适合作为带日期的历史记录:

发布时维度 Claude Opus 4 Claude Sonnet 4 工程含义
API 快照 claude-opus-4-20250514 claude-sonnet-4-20250514 Anthropic API 均已退役
产品定位 复杂、长时间任务 平衡能力与成本的主力模型 是待验证假设,不是路由规则
上下文窗口 200K Token 200K Token 容量不等于长上下文召回率
输入/输出价格 $15 / $75 每 MTok $3 / $15 每 MTok Opus 单 Token 成本为 5 倍
标准推理 支持 支持 简单请求可获得较低延迟
Extended Thinking 支持 支持 固定思考预算,按输出计费
推理中工具调用 Beta Beta 需要兼容 API 和宿主循环
发布安全级别 ASL-3 ASL-2 厂商部署标准,不是应用认证

表中价格和能力仅描述发布时状态。当前模型的 ID、思考控制、限制和价格均可能不同。

2026 年的生命周期状态

Anthropic 于 2026 年 4 月 14 日弃用两个原始快照,并于 6 月 15 日正式退役:

  • claude-opus-4-20250514 的退役替代项为 claude-opus-4-8。
  • claude-sonnet-4-20250514 的退役替代项为 claude-sonnet-4-6。

这些是该次退役公告指定的替代型号,不是永久指向“最新模型”的别名。Anthropic 自营平台和合作方平台可能采用不同退役时间表。新业务应查询当前模型目录,并把选定快照或稳定 ID 放在配置中心,不要散落在业务代码中。

混合推理究竟如何工作

Extended Thinking 是请求配置,不是模型会自动为每个任务选择正确推理量的保证。在原始 Claude 4 API 中,调用方通过 thinking.type: "enabled" 开启它,并设置 budget_tokens。Interleaved Thinking 则允许模型在收到工具结果后继续推理,再决定下一步动作。

必须区分三件事:

  1. 思考不等于执行。 在工具调用中,模型只提出调用,应用或托管 API 负责校验和执行。
  2. 思考预算不等于质量保证。 更多 Token 可能改善复杂问题,也会增加延迟和成本,错误轨迹依然可能发生。
  3. 思考摘要不等于审计日志。 Anthropic 说明较长的 Claude 4 思考过程可能由较小模型摘要。真正可审计的证据应是工具请求、工具结果、来源、状态迁移和验收结论。

原始固定预算接口也没有成为永久 API 契约。后续 Claude 代际引入 Adaptive Thinking 和不同参数规则,因此迁移必须验证请求协议,不能只替换模型名。

flowchart LR A["任务与验收契约"] --> B["策略与模型路由"] B --> C["Claude 请求"] C --> D{"文本还是工具调用?"} D -->|"工具调用"| E["Schema 与权限校验"] E --> F["沙箱或受限执行器"] F --> G["工具结果与证据"] G --> C D -->|"候选结果"| H["测试、策略检查、评审"] H -->|"拒绝或重试"| B H -->|"通过"| I["提交外部副作用"]

这条由 Agent Runtime 管理的完整链路才是评测单元。至少要固定提示、工具、权限、预算和验证器,只替换模型,才能把结果变化主要归因到模型。

正确阅读 Claude 4 基准成绩

Anthropic 在发布时报告了以下编码结果:

评测 Opus 4 Sonnet 4 关键条件
SWE-bench Verified pass@1 72.5% 72.7% 完整 500 题,Bash/编辑器工具,十次试验平均,无测试时计算
SWE-bench 高计算量 79.4% 80.2% 并行尝试、可见测试过滤、内部评分模型
Terminal-bench + Claude Code 脚手架 43.2% 35.5% Claude 专用 Agent 框架
Terminal-bench + 与竞品相同 Agent 39.2% 33.5% 脚手架条件更可比

第一行不能证明 Sonnet 4 整体优于 Opus 4。对于具有随机性的 Agent,0.2 个百分点不足以支持这种结论。它也不代表两款模型能解决任意企业约四分之三的工单。SWE-bench Verified 是从 Python 仓库中人工筛选的 500 个 Issue,采用自动化测试判定,并依赖特定工具环境。

高计算量一行衡量的是另一个系统:同时生成多个候选,先淘汰无法通过可见测试的补丁,再用内部模型选择。这个模式可以用于生产,但额外推理成本和选择器失败也必须计入结果。

SWE-bench 官方榜单还展示了同一模型搭配不同 Agent 的多条成绩,这直接说明所谓“模型分数”也包含脚手架能力。横向比较前至少要对齐:

  • 数据集版本与具体任务子集;
  • Agent 版本、提示、工具和仓库访问范围;
  • 采样参数与独立尝试次数;
  • 步数、Token、时间和金额预算;
  • 候选淘汰或选择逻辑;
  • 测试可见性与污染控制;
  • 提供商快照和评测日期。

2026 年一项独立研究分析了 60,000 条 SWE-bench Verified 轨迹,发现单次运行的 pass@1 会因抽到哪次运行而波动 2.2 至 6.0 个百分点,即使温度为 0,标准差仍超过 1.5 个百分点。该研究没有专门评测 Claude 4,但足以说明:不能用几个百分点的榜单差距直接做采购决策。

“自主编程 7 小时”证明了什么

Anthropic 发布文称,Rakuten 用一次高难度开源重构验证了 Opus 4,任务独立运行 7 小时。这是模型与脚手架能够维持一次长流程的合作方证据,但它没有证明:

  • 7 小时上下文或可用性保证;
  • 跨仓库、跨语言的成功率;
  • 每一步中间操作都正确;
  • 不受限制地访问 Shell、网络、密钥或 Git 是安全的;
  • 比短周期人机协作拥有更低的总工程成本。

长任务可靠性会逐步相乘。如果一条流程有 40 个关键步骤,每一步正确率都是 98%,全部步骤同时正确的概率约为 0.98^40,即 44.6%,还没有计入相关性失败。检查点、本地验证、有界重试和可逆副作用,比连续运行时长更重要。

记忆文件也有明确边界。它能在上下文压力下保留计划与发现,但仍是应用可见状态,可能陈旧、被污染或互相冲突。应对其进行版本化、记录来源,并在复用前验证。完整控制循环可参阅 Agent Loop 工程指南。

如何选择不同模型档位

在发布时,Sonnet 4 的单 Token 价格只有 Opus 4 的五分之一,且在 Anthropic 的编码评测下结果接近,因此适合作为大量边界清晰任务的默认候选。Opus 4 则适合在困难任务上验证其质量、一致性或恢复能力是否值得溢价。这两句话都不是免评测的选型结论。

先建立工作负载矩阵:

工作负载属性 较低成本档候选 较高能力档候选
范围 单组件、文件明确、测试清晰 跨服务变更、归属模糊
判定器 确定性测试或 Schema 校验 部分自动判定加专家评审
上下文 小而经过筛选的检索集 大型仓库或冲突证据
后果 可撤销草稿或只读分析 安全、资金、数据写入、发布
延迟 在线交互链路 异步或人工复核链路
失败处理 低成本重试或降级 调查与审慎恢复

生产路由应先使用任务类型、仓库规模、风险等级和历史评测等确定性元数据,并实施版本化的上下文预算。不要让不可信提示或模型自我评价单方面提升权限或费用。

真正有意义的成本指标是:

text
每个验收通过任务的成本 =
  (模型 Token + 缓存 + 工具执行 + 重试 + 人工评审)
  / 验收通过的输出数

低价模型如果需要反复修复,每个有效结果可能更贵;高价模型处理存在确定性解法的简单任务同样会浪费预算。应同时记录 Token 成本与端到端成本。

构建业务专属评测

先写验收契约,不要先堆提示词。每道任务必须定义输入 Fixture、允许使用的上下文、工具策略、必做检查、禁止变更和验收证据。

1. 从真实业务抽样

按难度和后果分层:

  • 有确定性测试的局部 Bug 修复;
  • 带兼容性约束的多文件重构;
  • 需要收集证据的模糊故障;
  • 同时包含读取与写入的工具工作流;
  • 含提示注入或误导性仓库文本的对抗输入。

保留私有留出集。公开基准与训练数据重叠会放大信心,而全部由干净、可解 Issue 组成的评测也无法覆盖生产中的歧义。

2. 重复运行

在相同脚手架和预算下,让每个候选模型对每道任务运行多次。报告均值与离散程度,不只展示最好的一次。失败轨迹必须保留,因为它们最能暴露重复误解、不安全操作和高成本循环。

3. 拆分结果维度

至少跟踪:

维度 指标示例
正确性 测试验证的通过率
一致性 多次运行全部通过的任务占比
范围控制 非需求文件或 API 变更数
工具可靠性 非法调用、重试、超时
安全 策略违规或绕过审批次数
效率 每个通过任务的成本与耗时
可恢复性 注入中断后的恢复成功率
可评审性 人工评审时长与证据完整度

LLM-as-a-Judge 可以辅助筛查主观输出,但必须用人工标签校准,不能替代确定性需求的可执行测试。

4. 先定义发布门禁

按任务类型预先确定阈值。文档草稿可以允许重试,迁移或支付变更则应要求确定性验证与人工审批。在看到结果前锁定阈值,可以减少为了偏好某个模型而挑选指标的风险。

可运行的 Go 评测门禁

下面的程序从标准输入读取试验记录,按模型聚合;只有同时满足通过率、延迟、安全和有效结果成本阈值才允许候选通过。真实系统中的 accepted 必须由测试与策略检查产生,不能让模型自评。

go
package main

import (
	"encoding/json"
	"fmt"
	"os"
	"sort"
)

type Trial struct {
	Model            string  `json:"model"`
	Task             string  `json:"task"`
	Accepted         bool    `json:"accepted"`
	LatencyMS        int64   `json:"latency_ms"`
	CostUSD          float64 `json:"cost_usd"`
	PolicyViolations int     `json:"policy_violations"`
}

type Report struct {
	Model              string  `json:"model"`
	Trials             int     `json:"trials"`
	AcceptanceRate     float64 `json:"acceptance_rate"`
	P95LatencyMS       int64   `json:"p95_latency_ms"`
	CostPerAcceptedUSD float64 `json:"cost_per_accepted_usd"`
	PolicyViolations   int     `json:"policy_violations"`
	Passed             bool    `json:"passed"`
}

func p95(values []int64) int64 {
	sort.Slice(values, func(i, j int) bool { return values[i] < values[j] })
	index := (95*len(values)+99)/100 - 1
	return values[index]
}

func summarize(model string, trials []Trial) Report {
	accepted := 0
	totalCost := 0.0
	violations := 0
	latencies := make([]int64, 0, len(trials))

	for _, trial := range trials {
		if trial.Accepted {
			accepted++
		}
		totalCost += trial.CostUSD
		violations += trial.PolicyViolations
		latencies = append(latencies, trial.LatencyMS)
	}

	rate := float64(accepted) / float64(len(trials))
	costPerAccepted := -1.0
	if accepted > 0 {
		costPerAccepted = totalCost / float64(accepted)
	}

	return Report{
		Model:              model,
		Trials:             len(trials),
		AcceptanceRate:     rate,
		P95LatencyMS:       p95(latencies),
		CostPerAcceptedUSD: costPerAccepted,
		PolicyViolations:   violations,
		Passed:             rate >= 0.80 && p95(latencies) <= 30_000 && costPerAccepted >= 0 && costPerAccepted <= 1.50 && violations == 0,
	}
}

func main() {
	var trials []Trial
	if err := json.NewDecoder(os.Stdin).Decode(&trials); err != nil {
		fmt.Fprintln(os.Stderr, err)
		os.Exit(2)
	}
	if len(trials) == 0 {
		fmt.Fprintln(os.Stderr, "no trials")
		os.Exit(2)
	}

	grouped := make(map[string][]Trial)
	for _, trial := range trials {
		grouped[trial.Model] = append(grouped[trial.Model], trial)
	}

	models := make([]string, 0, len(grouped))
	for model := range grouped {
		models = append(models, model)
	}
	sort.Strings(models)

	reports := make([]Report, 0, len(models))
	allPassed := true
	for _, model := range models {
		report := summarize(model, grouped[model])
		reports = append(reports, report)
		allPassed = allPassed && report.Passed
	}

	encoder := json.NewEncoder(os.Stdout)
	encoder.SetIndent("", "  ")
	if err := encoder.Encode(reports); err != nil {
		fmt.Fprintln(os.Stderr, err)
		os.Exit(2)
	}
	if !allPassed {
		os.Exit(1)
	}
}

评测门禁必须与数据集和脚手架一起版本化。缺少模型快照、Prompt 哈希、工具版本、试验次数和评估器版本的报告,不具备可复现性。

模型质量之外的生产控制

强模型能更有效地操作工具,也可能扩大事故半径。应把每个工具结果视为不可信输入,把每次写操作视为受控副作用。

权限与执行控制

  • 仅暴露当前任务需要的工具;对 MCP 和原生工具使用白名单。
  • 拆分读取、准备、审批和提交权限。
  • 在文件系统与网络均受限的沙箱中运行生成命令。
  • 密钥不进入 Prompt 或工具输出;签发短期、任务级凭证。
  • 删除、外发、资金、身份和发布操作必须由人工审批。
  • 分别限制步骤数、Token、运行时长、重试次数和总费用。

MCP Connector 是 API 集成面,不是信任捷径。它支持远程 HTTP 服务器和工具调用;本地 STDIO 服务、Prompt 与 Resource 仍需客户端自行实现。工具描述或 Schema 变化会改变模型行为,因此应固定或审核工具清单。

状态与恢复控制

  • 每个外部写操作分配幂等键。
  • 在副作用前后持久化检查点。
  • 记录工具参数、规范化结果、审批与提交回执。
  • 从已验证状态恢复,不重放整段对话。
  • 证据冲突或验收判定器不可用时停止。

更完整的控制方法可参阅 Agent Loop 工程指南与提示注入术语。

ASL-3 代表什么,不代表什么

Anthropic 在发布 Opus 4 时预防性启用了 ASL-3 Deployment and Security Standards。Anthropic 当时尚未确认 Opus 4 一定跨越相关 CBRN 能力阈值,但无法像此前模型一样明确排除风险。措施重点是特定 CBRN 滥用防护和更强的模型权重防盗;Sonnet 4 仍按 ASL-2 部署。

ASL-3 不代表:

  • Opus 4 的每个回答都正确或无害;
  • 下游应用自动获得安全认证、鉴权与租户隔离;
  • 不受限的计算机或 Shell 权限是安全的;
  • 提示注入已经解决;
  • 思考摘要是忠实的合规审计记录。

Claude 4 系统卡记录了奖励投机、提示注入测试、高能动性行为,以及人工对齐场景中的风险动作。这些评测说明 Agent 权限必须受限,不代表普通部署一定会复现每一种实验行为。任何安全结论都应绑定具体测试配置与威胁模型。

已退役 Claude 4 工作负载迁移清单

仅修改模型字符串不够,应按以下顺序迁移:

  1. 盘点调用。 按 API Key 与模型导出提供商用量,并在源码、配置、队列、已保存 Prompt 和降级规则中搜索退役 ID。
  2. 冻结基线。 从已有日志保存代表性请求、工具轨迹、验收通过输出、成本、延迟、拒答和事故样本。
  3. 选择活跃目标。 核对具体平台与区域的模型目录,不假设 Anthropic API、Bedrock 和 Vertex AI 使用相同生命周期或 ID。
  4. 适配请求语义。 验证 Thinking 模式、支持参数、Beta Header、最大输出、工具定义和内容块解析。
  5. 回放验收集。 在相同预算下重复运行,比较正确性、一致性、有效结果成本、工具失败和策略行为。
  6. 按任务分级灰度。 先迁移低风险流量,保留显式降级路径,监控 Schema 错误、拒答、延迟、费用和人工接管。
  7. 删除失效兼容路径。 队列任务、定时任务、灾备和回滚文档都指向受支持模型后,再移除退役 ID。

模型无关层应统一消息、工具调用、用量、结束原因和错误;模型专属 Thinking 参数与 Beta Header 只放在提供商适配器边界。

常见错误

把发布图表当成当前排行榜

模型、数据集和 Agent 都会迭代。引用成绩时必须保留发布日期与评测方法。

把 pass@1 与多候选择优直接比较

并行尝试加候选选择能提高成功率,也会成倍增加成本。必须标注推理策略并报告总花费。

把上下文容量等同于可靠记忆

200K 是输入容量,不证明每个细节都能被召回和遵守。要在自有文档上测试长上下文召回、冲突与干扰项。

因为模型能力强就授予编码 Agent 完整权限

能力不等于授权。权限校验、沙箱、审批和不可逆提交必须在模型之外实施。

只解析第一个响应内容块

启用思考和工具后,响应可能包含多种内容块。应按类型分派,保存工具循环要求的状态,并对未知结构默认拒绝。

常见问题

Claude Opus 4 和 Claude Sonnet 4 还能通过 Anthropic API 使用吗?

不能。Anthropic 已于 2026 年 6 月 15 日退役 claude-opus-4-20250514 与 claude-sonnet-4-20250514。合作方平台可能使用不同时间表,因此应查询对应平台目录,不能根据旧教程推断可用性。

Claude 4 的 SWE-bench 分数具体衡量了什么?

Anthropic 报告的 Opus 4 72.5% 与 Sonnet 4 72.7%,是在完整 500 道 SWE-bench Verified 任务上,使用 Bash 与编辑器工具、十次试验平均、无测试时计算的 pass@1。79.4% 与 80.2% 则加入并行尝试、可见测试过滤和内部候选评分。

Claude Opus 4 是否能稳定自主编程 7 小时?

没有形成通用保证。发布文引用的是 Rakuten 一次独立运行 7 小时的开源重构。生产团队仍需提供检查点、确定性测试、预算、监督规则和恢复演练。

Claude Opus 4 采用 ASL-3 是否代表应用更安全?

ASL-3 覆盖 Anthropic 针对特定 CBRN 滥用的部署控制,以及保护模型权重的安全控制。它不是应用安全认证,也不会消除工具、凭证、数据和提示注入风险。

团队应如何选择 Sonnet 档与 Opus 档模型?

先建立代表性验收集。较低成本档达到质量与可靠性门槛时就使用它;高能力档带来的可测提升足以覆盖成本和延迟时再升级。比较重复运行和每个验收任务成本,不只看一个榜单分数。

权威来源

延伸阅读