一句话定位:把 SWE-bench 的「读 issue 改代码」任务从 Python 扩到 7 种语言(Java / TypeScript / JavaScript / Go / Rust / C / C++),1,632 道人工双标注的真实 GitHub issue 修复题,来自 39 个仓库、由 68 名专家从 2,456 条候选中筛出(字节 Seed 出品,NeurIPS 2025 D&B 收录,Apache-2.0)。

分数快照见 multi-swe-bench,打榜实操见 multi-swe-bench,横向定位见 coding-agent-leaderboards。

为什么值得关注

  • 补上 Python 之外的生态:SWE-bench 家族基本是 Python 单语(Multilingual 子集也只有 300 题),Multi-SWE-bench 是唯一成规模的企业级语言修复基准——Java/Go/TS 是公司内部项目的主力语言,对 harness 与模型的真实迁移能力更有说服力
  • 多 harness 天然可见:官方不只锁定一个 scaffold,论文同时跑 Agentless / SWE-agent / OpenHands 三个移植版,榜单也允许提交自研 agent,harness 差异不会被抹平(与 deepswe 的统一 mini-swe-agent 路线相反)
  • 难度分级有人类基准:按标注者预估的解决耗时划分 easy(≤15min)/ medium(15min–1h)/ hard(≥1h),比用 token 数或改动行数划分更贴近真实工作量
  • 附带 RL 数据社区:Multi-SWE-RL 开放 4,723 条带 Docker 环境的实例,可直接用于 agent 训练/自进化,是 harness 型团队的附加价值
  • 公司可自助提交:与 SWE-bench 官方榜「仅收学术机构」形成鲜明对比,华为 CodeArts、InfCode、RepoRepair 等工业团队都已提交

评测集构成

项说明
题量1,632 道(不含 Python);另有 mini 400 题(8 语言 × 50)、flash 300 题(快速评测)
语言Java 128 · TypeScript 224 · JavaScript 356 · Go 428 · Rust 239 · C 128 · C++ 129
仓库39 个,规模从 6.7k 到 698.6k 行
难度easy 374 / medium 650 / hard 608(medium+hard 占 77.1%)
指标Resolved Rate(Pass@1,unassisted);另报 Success Location(定位准确率)、Average Cost
交互上限论文实验为 50 轮
环境每题独立 Docker 镜像,全量测试套件判定(不是只跑相关测试)

代表仓库:Java alibaba/fastjson2、apache/dubbo、mockito/mockito;TS/JS vuejs/core、mui/material-ui、sveltejs/svelte、axios/axios;Go cli/cli、grpc/grpc-go、zeromicro/go-zero;Rust ripgrep、tokio、serde、clap、nushell;C zstd、jq、ponyc;C++ Catch2、fmt、nlohmann/json、simdjson。

构建方法(五阶段)

  1. 选仓:>500 star、活跃维护 ≥6 个月、有 CI/CD 配置、clean env 下可构建可测试
  2. 爬 PR:必须关联至少一个 issue、必须改测试文件、必须已 merge 进主分支
  3. 建环境:从 CI 配置与文档提取依赖,为每个 PR 生成 Dockerfile 并验证可启动
  4. PR 过滤:在 base / +test.patch / +fix.patch 三种状态下跑全量测试套件,只保留「至少一个 ANY→FAILED→PASSED」且无任何 PASSED→FAILED 回归的实例(比 SWE-bench 只跑相关测试更严)
  5. 人工验证:68 名标注者(目标语言 ≥2 年经验 + 本科以上)双标注 + 交叉复核,14 人内部质量组抽检,各语言准确率门槛 80%,最终 2,456 → 1,632

论文基线分数(2025-04)

三 scaffold:MagentLess(Agentless 移植)、MSWE-agent(SWE-agent 移植)、MopenHands(OpenHands CodeAct v2.1 移植)。最优组合为 MopenHands + Claude-3.7-Sonnet(macro 16.01 / instance-weighted 19.33)。

语言最佳 resolved rate组合
Python(对照)52.20MopenHands + Claude-3.7-Sonnet
Java23.44MSWE-agent + Claude-3.7-Sonnet
TypeScript11.61MopenHands + Claude-3.5-Sonnet
JavaScript5.06MopenHands + Claude-3.7-Sonnet
Go7.48MopenHands + Claude-3.7-Sonnet
Rust15.90MopenHands + Claude-3.7-Sonnet
C8.59MSWE-agent / MopenHands + Claude-3.7-Sonnet
C++14.73MopenHands + Claude-3.7-Sonnet

论文时代(2025-04)非 Python 语言普遍在 5–23%,跨语言泛化严重不足;当前社区提交已把 C/C++/Java 推到 47–54%(见榜单页)。

成本(论文口径)

MopenHands + Claude-3.7-Sonnet 平均每实例约 **0.03/题。注意这是 50 轮上限的老 harness 口径,社区现在多用 Claude Code CLI + 最多 300 步,实际成本高一个量级。

关键研究结论

  • 模型在 issue 描述更长时表现更好(依赖丰富上下文),说明定位环节吃信息量
  • fix patch 超过 600 token 或跨多文件时解决率骤降,暴露长上下文保持与多文件推理的短板
  • C++/Rust 的 patch 显著更重(C++ hard 平均 763 行 / 47 hunk / 11 文件),系统语言的编译链与内存管理是主要障碍
  • 三种 scaffold 之间的差距在部分语言上超过模型之间的差距——harness 与语言的匹配度同样关键

局限性

  • 无防污染设计:静态题集,全部来自 2025-04 前已 merge 的 PR,训练语料很可能已覆盖;论文也未讨论 contamination。这一点明显弱于 SWE-bench-Live 的滚动新题设计
  • 分母漂移:同一 language split 在不同提交里的 total_instances 不一致(Java 出现 117/125/127/128,JS 出现 334 与全量 356),跨条目比百分比不是严格同分母
  • scaffold 不锁定:榜上混着官方移植 scaffold 与各家自研 agent,跨条目不可直接横比
  • Verified 标记罕见:绝大多数条目 verified: false,即未经维护方复跑
  • 维护偏慢:experiments 仓库最近一次合并为 2026-07-21;Python 榜自 2025-04 首发后基本停滞
  • 样本量不均:JS 356 题 vs Java 128 题,小语言单题波动影响更大

资源

相关页面