# Senior SWE-Bench：评估AI智能体作为高级工程师的基准测试

- 来源：Hacker News 热门（buzzing.cc 中文翻译）
- 作者：matt_d
- 发布时间：2026-07-02 19:04
- AIHOT 分数：71
- AIHOT 标记：精选
- AIHOT 链接：https://aihot.virxact.com/items/cmr3epwmy008bsllx0y68akps
- 原文链接：https://senior-swe-bench.snorkel.ai/

## 精选理由

这个新基准把 AI 编程代理的评估拉到了更真实的复杂度，顶尖模型也只有不到四分之一的成功率，做 coding agent 的都该拿它测一测，它会比 SWE-bench 更挑出工程师的“手感”。

## AI 摘要

Senior SWE-Bench是一个开源基准测试，用于评估AI智能体完成高级软件工程师级别任务的能力。任务分功能开发与Bug修复两类：功能任务指令类似自然语言消息，采用验证智能体基于专家配方自动生成行为测试；Bug任务要求根据日志、profiling等运行时信息深入调查。排行榜显示，Claude Opus 4.8搭配Mini-SWE-Agent（max effort）通过率24.0%，Claude Sonnet 5为19.4%，GPT-5.5为16.0%，最强前沿模型在超75%任务中未能达到高级工程师级别的正确性与品味。每个功能任务平均涉及11个文件，最强智能体也需数百步完成；中位指令长度仅为SWE-Bench Pro的31%。任务来源于从库到多服务应用的仓库PR，由拥有数百次提交的工程师编写。

## 正文

高级 SWE-Bench

我们把 AI 智能体当作高级工程师来对待，那为什么还像评估初级工程师一样评估它们？

01

高级工程师在没有过度细化需求的情况下构建功能

高级 SWE-Bench 的功能任务包含现实指令，读起来像自然语言消息，而不是过度细化的需求。为了可靠地评估这些任务，我们引入了一个验证智能体，它使用专家设计的配方来编写行为测试，这些测试能够适应提交的解决方案。

02

高级工程师解决需要根据行为报告进行运行时调查的缺陷

高级 SWE-Bench 的缺陷任务反映了棘手的用户报告，并侧重于调查，从启动服务到调试微妙的运行时问题。这些任务源自那些需要大量运行时调查才能解决的 PR（例如日志、性能分析数据、复现步骤）。

03

高级工程师不需要别人告诉，就能交付正确的代码

高级 SWE-Bench 通过将运行时正确性测试与多个基于观察到的代码库实践的质量指标相结合，来评判优雅的解决方案。此外，验证器和验证过程还能针对指令中未明确说明但具有关键性的代码库实践进行测试。

有关我们的技术贡献的更多信息，包括验证智能体、品味评分和质量控制流程，请阅读博客文章

过度细化需求 6008 字符 · ~39 个代码符号

swe-bench-pro/instruction.md

1### 为 BookWorm 添加 Google Books 作为元数据来源，用于备用/暂存导入

2

3### 问题 / 机遇

4

5BookWorm 当前依赖 Amazon 和 ISBNdb 作为元数据的主要来源。当元数据缺失、格式错误或不完整时（尤其是只有 ISBN-13 的书籍），这就带来了问题。因此，通过承诺项目或 `/api/import` 提交的不完整记录可能无法被丰富，导致 Open Library 中出现质量低劣的条目。这一限制影响了数据质量以及用户的导入成功率，尤其是对于不太常见或国际化的图书。

6

7### 理由：我们为什么应该做这项任务，可衡量的影响是什么？

8

9整合Google Books作为备用元数据源，增强了Open Library补充和导入更丰富版本数据的能力。这提高了导入书籍的完整性，减少了因元数据稀疏导致的导入失败，并增强了用户对导入体验的信任。影响可通过提高导入成功率以及减少诸如“Book 978...”这类占位条目的频率来衡量。

10

11### 定义成功：我们如何知道问题已解决？

12

13- BookWorm能够使用ISBN-13从Google Books获取并导入元数据。

14

15- 自动化测试确认了正确解析各种Google Books响应，包括：

16

17 - 正确映射可用字段（标题、副标题、作者、出版社、页数、描述、出版日期）。

18

19 - 正确处理缺失或不完整的字段（例如，无作者、无ISBN-13）。

20

21 - 当Google Books返回零条或多条匹配时，不返回结果。

22

23### 提案

24

25在BookWorm中引入对Google Books作为备用元数据提供方的支持。当Amazon查询失败或仅有ISBN-13可用时，BookWorm应尝试从Google Books API获取元数据并将其导入。这包括更新来源逻辑、元数据解析，并确保来自`google_books`的记录被正确处理。

26

27要求：

28- 元组`STAGED_SOURCES`在`openlibrary/core/imports.py`中必须包含`"google_books"`作为有效来源，以便导入流程能够识别并处理来自Google Books的导入元数据。

29

30- 用于导入bookworm元数据的URL为：`http://{affiliate_server_url}/isbn/{identifier}?high_priority=true&stage_import=true`，其中`affiliate_server_url`来自`openlibrary/core/vendors.py`，参数`identifier`可以是ISBN-10、ISBN-13或B*ASIN。

31

32- 在`openlibrary/plugins/importapi/code.py`中使用`supplement_rec_with_import_item_metadata`补充记录时，如果存在`source_records`字段，必须添加（扩展）新标识符，而非替换现有值。

33

在 `scripts/affiliate_server.py` 中，一个名为 `stage_from_google_books` 的函数必须尝试通过 Google Books API 获取并暂存指定 ISBN 的元数据，如果成功，则通过 `Batch.add_items` 将其添加到对应的批次中，从而持久化该元数据。

35

36- 在 `scripts/affiliate_server.py` 中的联盟服务器处理程序必须回退到 Google Books 来查询那些在 Amazon 中未返回任何结果的 ISBN-13 标识符，但仅当请求中同时设置了查询参数 `high_priority=true` 和 `stage_import=true` 时才执行此回退。

37

38- 如果 Google Books 对单个 ISBN 查询返回了多个结果，则逻辑必须记录一条警告消息，并跳过暂存元数据，以避免引入不可靠的数据。

39

40- 从 Google Books 响应中解析并暂存的元数字段至少必须包括：`isbn_10`、`isbn_13`、`title`、`subtitle`、`authors`、`source_records`、`publishers`、`publish_date`、`number_of_pages` 和 `description`，并且必须匹配 Open Library 导入系统所期望的数据结构。

41

42- 在 `scripts/promise_batch_imports.py` 中，必须更新暂存逻辑，以便在扩充不完整记录时，使用 `stage_bookworm_metadata` 替代之前任何仅针对 Amazon 的直接逻辑。

43

44引入的新接口：

45以下是新的公共接口，已移除非相关文件中的条目。

46

47函数：fetch_google_book

48位置：scripts/affiliate_server.py

49输入：isbn（字符串）—— ISBN-13

50输出：如果 HTTP 状态码为 200，则返回包含 Google Books API 原始 JSON 响应的字典，否则返回 None

51描述：从 Google Books API 获取指定 ISBN 的元数据。

52

53函数：process_google_book

54位置：scripts/affiliate_server.py

55输入：google_book_data（字典）—— 从 Google Books 返回的 JSON 数据

56输出：如果成功，返回包含标准化 Open Library 版本字段的字典，否则返回 None

57描述：将 Google Books API 数据处理为标准化的 Open Library 版本记录。

58

59函数：stage_from_google_books

60位置：scripts/affiliate_server.py

61输入：isbn（字符串）—— ISBN-10 或 ISBN-13

62输出：布尔值 —— 如果元数据成功暂存则返回 True，否则返回 False

描述：根据给定的 ISBN 从 Google Books 获取并暂存元数据，如果找到则将其添加到导入批次中。

64

描述：get_current_batch

位置：scripts/affiliate_server.py

输入：name (str) — 批次名称，如 "amz" 或 "google"

输出：与提供名称对应的 Batch 实例

描述：检索或创建一个用于暂存导入项的批次对象。

70

类别：BaseLookupWorker

位置：scripts/affiliate_server.py

描述：API 查找工作线程的基类，使用提供的函数处理队列中的项。

方法：BaseLookupWorker.run(self)

位置：scripts/affiliate_server.py

描述：公共方法，循环处理队列中的项，对每个取出的项调用 process_item 可调用对象。

77

类别：AmazonLookupWorker

位置：scripts/affiliate_server.py

描述：线程化工作线程，对 Amazon API 查找进行批量处理，继承自 BaseLookupWorker。

方法：AmazonLookupWorker.run(self)

位置：scripts/affiliate_server.py

描述：公共方法重写，将队列中最多 10 个 Amazon 标识符分批，使用 Amazon 批量处理器一起处理，并根据 API 限制管理时序。

Realistic639 chars · 0 code symbols

#eng-platform

Engineer10:42 AM

Coding agentapp10:43 AM

启动沙箱……

排行榜

solve requires

验证器 通过验证 通过规则 >0.5 膨胀 <2× 实践 >2/5 相对品味 >2/5

1

Claude Opus 4.8

Mini-SWE-Agent · max

24.0%

Claude Sonnet 5

Mini-SWE-Agent · max

19.4%

2

GPT-5.5

Mini-SWE-Agent · xhigh

16.0%

3

Claude Opus 4.7

Mini-SWE-Agent · max

14.1%

4

GPT-5.4

Mini-SWE-Agent · xhigh

14.0%

5

GLM-5.2

Mini-SWE-Agent · max

12.5%

6

Kimi K2.6

Mini-SWE-Agent · default

8.2%

7

Claude Sonnet 4.6

Mini-SWE-Agent · high

8.2%

8

Gemini 3.1 Pro

Mini-SWE-Agent · high

6.1%

9

Gemini 3.5 Flash

Mini-SWE-Agent · medium

3.0%

#模型算力解决率 (pass@1)

1Claude Opus 4.8max

24.0%

Claude Sonnet 5max

19.4%

2GPT-5.5xhigh

16.0%

3Claude Opus 4.7max

14.1%

4GPT-5.4xhigh

14.0%

5GLM-5.2max

12.5%

6Kimi K2.6default

8.2%

7Claude Sonnet 4.6high

8.2%

8Gemini 3.1 Prohigh

6.1%

9Gemini 3.5 Flashmedium

3.0%

品味解决率 (pass@1)

平均值/任务

顶尖前沿模型在超过 75% 的情况下未能以资深级别的正确性和品味完成任务。

任务

高级 SWE-Bench 任务来源于各类仓库中的 PR，这些仓库涵盖从库到多服务应用程序，由各自仓库中拥有数百次提交的工程师编写。我们专注于多阶段、多栈的功能性 PR，以及需要大量运行时排查的错误/性能 PR。有关任务设计的更多信息，请阅读博客文章。

任务

50 public

50 个私有

仓库

posthog(8) electric(6) gitea(6) better-auth(4) harbor(4) + 另外 7 个

类型

功能

错误

性能

迁移

技术栈

Python 服务

Elixir

Go

SQL

TypeScript 库

Python 库

Rust

TypeScript 前端

+4 more

更自然的不明确指令

高级 SWE-Bench 任务反映了与智能体进行自然交流的方式，其中位指令长度仅为 SWE-Bench Pro 的 31%。

更多样化的任务范围

高级 SWE-Bench 功能任务可以跨越多个服务，每个功能任务平均涉及 11 个文件。

更长的任务周期

高级 SWE-Bench 任务被设计为长周期任务，即使是最强的智能体也需要数百个步骤才能完成。

高级 SWE-Bench

功能任务

高级 SWE-Bench

错误/性能任务

DeepSWE

SWE-Bench Pro

高级 SWE-Bench 对比

更自然的不明确指令

高级 SWE-Bench 任务反映了与智能体进行自然交流的方式，其中位指令长度仅为 SWE-Bench Pro 的 31%。

高级 SWE-Bench

功能任务

高级 SWE-Bench

错误/性能任务

DeepSWE

SWE-Bench Pro

更多样化的任务范围

高级 SWE-Bench 功能任务可以跨越多个服务，每个功能任务平均涉及 11 个文件。

高级 SWE-Bench

功能任务

高级 SWE-Bench

错误/性能任务

DeepSWE

SWE-Bench Pro

更长的任务周期

高级 SWE-Bench 任务被设计为长周期任务，即使是最强的智能体也需要数百个步骤才能完成。

高级 SWE-Bench 对比

参考解决方案的 SLOC 和文件数量在三个基准测试中采用相同的测量方式。指令长度不包括测试框架的样板代码。其他基准测试的 token 数量和步骤数量基于其自行报告的指标。
