[0m→ [0mSkill "baoyu-translate" [0m [0m$ [0mtest -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 [0m
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 很重要
- 它使用来自真实项目的实际工程任务,而非竞赛式题目
- 仍有巨大的改进空间——还没有模型超过 50%
- 它衡量整个智能体系统而非仅模型本身,允许开发者和初创公司通过更好的脚手架来优化性能
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% |
| 此前 SOTA | 45% |
| Claude 3.5 Sonnet(旧) | 33% |
| Claude 3 Opus | 22% |
智能体行为示例
一个典型的工作流展示了模型解决问题的方法:
- 探索:模型查看仓库结构以理解上下文
- 复现:创建并运行一个复现问题的脚本
- 实现:修改源代码以解决问题
- 验证:重新运行测试以确认修复有效
在解决一个 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%。作者表示相信开发者将发现额外的优化策略来进一步提高这些结果,这表明智能体编程系统仍有巨大的未开发潜力。