高级 SWE-Bench:评估 AI 代理作为高级软件工程师的能力
高级 SWE-Bench:评估 AI 代理作为高级软件工程师的能力
高级 SWE-Bench 评估 AI 代理在高层次工程自主性方面的表现
高级 SWE-Bench 是由 Snorkel AI 创建的开源基准,用于评估 AI 代理是否能够充当高级软件工程师。与传统基准侧重于孤立的编码任务不同,高级 SWE-Bench 测试代理在面对不完整需求时,能否在真实代码库中将其转化为完整可用的功能。
“高级工程师”挑战:处理不完整需求
高级 SWE-Bench 的核心前提是,高级工程师的区别在于他们能够在需求不明确的情况下构建功能。该基准要求代理通过自行做出合理的架构决策并独立填补技术空白,来应对这种模糊性。
案例研究:将 Google Books 集成到 BookWorm
为了说明基准任务的复杂性,考虑向 “BookWorm” 系统添加 Google Books 作为元数据来源的需求。一个高级别的代理必须在没有明确每行代码实现方式的指示下,处理以下技术需求:
- 回退逻辑: 实现一个系统,当 Amazon 查询失败或仅有 ISBN‑13 时,使用 Google Books 作为回退。
- API 集成: 创建函数从 Google Books API 获取原始 JSON(
fetch_google_book)并将该数据规范化为 Open Library 版本字段(process_google_book)。 - 数据完整性: 确保如果 Google Books 对单个 ISBN 返回多个结果,系统记录警告并跳过暂存,以避免引入不可靠的数据。
- 系统集成: 更新现有管道常量(例如
openlibrary/core/imports.py中的STAGED_SOURCES)并修改scripts/promise_batch_imports.py中的现有丰富逻辑,以使用新的元数据暂存流程。 - 并发性: 使用
BaseLookupWorker线程类高效管理 API 查询工作者。
当前表现与基准
初步数据表明,最高的解题率目前为 24%,由 Opus 4.8 达成。这显示出当前大语言模型能力与持续解决高级工程任务所需自主水平之间存在显著差距。
社区批评与技术争论
高级 SWE-Bench 的发布在工程师中引发了关于 “高级性” 定义以及静态基准对 AI 有效性的争论。
高级性的定义
一些批评者认为该基准遗漏了高级工程师最关键的方面:需求获取能力。
“高级工程师会自行获取工作所需的输入,无论是与客户沟通还是使用指标。绝不会自己凭空想出东西——那是初级的行为。”
其他贡献者则认为基准应更关注明确的结果,而不是使用类似 “你是高级工程师” 的提示,他们把后者形容为 “胡说”。
数据污染与相关性
人们担心基准的长期有效性。如果任务基于已有的开源项目,LLM 可能已经在训练数据中见过相应的实现。
“如果基准要求实现的是开源项目中的功能,而 LLM 已经在其训练数据集中包含了这些改动,那么它们可能只会直接给出逐字或略作修改的版本。”
过度优化的风险
由于基准是开源的,一些用户担心 AI 公司会专门针对这些测试进行模型优化,而不是提升通用工程能力,这是一种常见的 “基准游戏” 问题。
摘要: 高级 SWE-Bench 是一个开源基准,旨在评估 AI 代理从不完整需求实现功能的能力,模拟高级软件工程师的工作流程。
标题: 高级 SWE-Bench:评估 AI 代理作为高级软件工程师的能力