Skip to content

→ Skill "baoyu-translate"  $ test -f .baoyu-skills/baoyu-translate/EXTEND.md && echo "project" || test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-translate/EXTEND.md" && echo "xdg" || test -f "$HOME/.baoyu-skills/baoyu-translate/EXTEND.md" && echo "user" || echo "none" none 

title: "用 Claude 3.5 Sonnet 提升 SWE-bench Verified 的基准" url: "https://www.anthropic.com/engineering/swe-bench-sonnet" source: engineering date_scraped: "2026-03-15"

用 Claude 3.5 Sonnet 提升 SWE-bench Verified 的基准

概述

SWE-bench 是一个 AI 评估基准,用于评估模型完成真实世界软件工程任务的能力。升级后的 Claude 3.5 Sonnet 在 SWE-bench Verified 上达到了 49%,超越了此前最先进模型的 45%。这代表了 AI 系统在解决来自热门开源 Python 仓库的实际 GitHub 问题方面的进步。

什么是 SWE-bench?

SWE-bench 测试 AI 模型如何在提交建议方案之前理解、修改和测试代码。每个任务涉及:

  • 一个配置好的 Python 环境
  • 从问题解决前的仓库检出
  • 根据关闭该问题的拉取请求中的真实单元测试进行评分

该基准不仅评估孤立的模型,还评估整个"智能体"系统——即 AI 模型与其支撑脚手架的组合。即使使用相同的底层模型,性能也会因脚手架的不同而有显著差异。

为什么 SWE-bench 很重要

  1. 它使用来自真实项目的实际工程任务,而非竞赛式题目
  2. 仍有巨大的改进空间——还没有模型超过 50%
  3. 它衡量整个智能体系统而非仅模型本身,允许开发者和初创公司通过更好的脚手架来优化性能

SWE-bench Verified 是一个经过人工审核的 500 道题目子集,确保任务可解,提供最清晰的性能衡量。

智能体设计理念

该方法优先给予语言模型最大的控制权,同时保持最少的脚手架。该智能体包含:

  • 一个包含建议方法步骤的提示词
  • 一个用于执行命令的 Bash 工具
  • 一个用于查看和编辑文件的编辑工具

模型持续采样,直到它决定完成或达到 200k 上下文限制。

提示词

提示词概述了建议的方法,但允许模型自主决定路径:

<uploaded_files>
{location}
</uploaded_files>

你能帮我实现仓库中必要的更改,以满足 <pr_description> 中指定的要求吗?

按以下步骤解决问题:
1. 探索仓库结构
2. 创建一个复现错误的脚本
3. 编辑源代码
4. 重新运行复现脚本
5. 考虑边界情况

Bash 工具

该工具执行 bash 命令,说明涵盖:

  • 命令参数处理
  • 无网络访问
  • 可访问包镜像
  • 调用间保持持久状态
  • 行范围检查能力
  • 避免过多输出的指导

编辑工具

这个复杂工具处理文件操作,包含以下命令:

  • View(显示文件内容或目录结构)
  • Create(仅限新文件)
  • Str_replace(精确字符串匹配替换)
  • Insert(在特定行后追加)
  • Undo_edit(撤销更改)

该工具需要绝对路径并执行精确字符串匹配——仅当存在恰好一个匹配时才会进行替换。

性能结果

更新后的 Claude 3.5 Sonnet 展示了比之前版本更高的推理和编程能力:

模型SWE-bench Verified 得分
Claude 3.5 Sonnet(新)49%
此前 SOTA45%
Claude 3.5 Sonnet(旧)33%
Claude 3 Opus22%

智能体行为示例

一个典型的工作流展示了模型解决问题的方法:

  1. 探索:模型查看仓库结构以理解上下文
  2. 复现:创建并运行一个复现问题的脚本
  3. 实现:修改源代码以解决问题
  4. 验证:重新运行测试以确认修复有效

在解决一个 RidgeClassifierCV 参数问题的示例中,模型:

  • 探索了 sklearn 仓库结构
  • 创建了一个显示 TypeError 的复现脚本
  • 识别出 store_cv_values 参数未传递给基类
  • 修改了 __init__ 方法以接受并转发该参数
  • 验证修复解决了问题

有些任务在 12 步内完成,而其他任务需要数百轮和超过 100k 个 token 才能成功解决。

主要挑战

耗时和 Token 成本:成功的运行通常需要数百轮和大量的 token 支出。虽然模型在解决问题时表现出毅力,但这可能变得昂贵。

评分复杂性:环境设置问题和补丁应用问题偶尔会掩盖正确的模型行为,需要仔细调查以区分真正的失败和基础设施问题。

隐藏测试:模型无法看到其评分测试,导致当解决方案不符合原始单元测试期望时产生虚假信心。一些失败源于在错误的抽象层面解决问题,而非根本性误解。

多模态限制:尽管具有强大的视觉能力,但该实现缺少文件查看或 URL 图片显示功能。这尤其阻碍了与 Matplotlib 相关的任务,并增加了幻觉风险。SWE-bench 已推出单独的多模态评估来解决这一差距。

自我纠正与坚持

更新后的 Claude 3.5 Sonnet 展示了比早期版本改进的自我纠正能力。它可以尝试多种解决方案,而非重复相同的错误,在给定足够上下文时表现出真正的问题解决毅力。

结论

Claude 3.5 Sonnet 使用简单的提示和两个通用工具在 SWE-bench Verified 上达到了 49%。作者表示相信开发者将发现额外的优化策略来进一步提高这些结果,这表明智能体编程系统仍有巨大的未开发潜力。