目录入口见 README。评测集定义见 multi-swe-bench,分数快照见 multi-swe-bench。

定位提醒:这是多语言能力补充证据,不是主证据。无防污染设计 + 分母漂移 + Verified 稀缺,对外引用时须与 SWE-bench-Live 区分可信度等级。

是什么

一句话:考场是 7 种企业级语言的真实 GitHub issue——读 issue、定位少数文件、交出一个能过全量测试套件的 patch。

  • 维护方:字节 Seed;论文 NeurIPS 2025 D&B;代码 Apache-2.0。
  • 榜单:https://multi-swe-bench.github.io/
  • 规模:全量 1,632 题(7 语言 / 39 仓库);mini 400 题(8 语言 × 50,含 Python);flash 300 题。
  • 指标:Resolved Rate(Pass@1、unassisted)+ Success Location + Average Cost。
  • 提交粒度:按语言——evaluation/<language>/<split>/ 下单建目录,一次可以只打一个语言。

榜单与 split 结构

evaluation/
├── java/verified/
├── c++/verified/
├── c/verified/
├── go/verified/
├── rust/verified/
├── typescript/verified/
├── javascript/verified/
├── python/verified/
├── mini/            # 400 题轻量版
└── flash/           # 300 题快速版

怎么打

第 1 步:搭建评测环境

git clone https://github.com/multi-swe-bench/multi-swe-bench.git
cd multi-swe-bench
make install          # 开发环境用 make install-dev

前置:Python 3.10+、Docker(含 docker compose)。社区实测建议 ≥300GB 可用存储 / 16GB 内存 / 8 核,因为要为每题构建或下载镜像。

# 可选:预拉镜像(不预拉则在评测时构建)
bash scripts/download_images.sh scripts/images_verified.txt
bash scripts/download_images.sh scripts/images_mini.txt

第 2 步:准备 patch 与数据集

patch 文件为 JSONL,每条至少含:

{"org":"zeromicro","repo":"go-zero","number":"2787","fix_patch":"diff --git ...."}

数据集文件用 HuggingFace 上的官方 JSONL(ByteDance-Seed/Multi-SWE-bench / _mini / _flash)。

第 3 步:接入自研 agent

没有插件接口,与 SWE-bench-Live 类似,合规要求实质是:

  1. agent 只拿 problem_statement 与任务镜像(不应读 hints / test.patch / fix.patch)
  2. 单次 rollout(榜单口径 Pass@1、unassisted,不做 best-of-n)
  3. 产出 unified diff,落到 fix_patch 字段

注意:2025-09-18 官方给所有实例加了 hints 字段(描述 test.patch/fix.patch 中新增的变量名)。该字段属于题目元数据,正式跑分时不应喂给 agent。

第 4 步:跑评测

python -m multi_swe_bench.harness.run_evaluation --config /path/to/config.json

配置示例(关键字段):

{
  "mode": "evaluation",
  "workdir": "./data/workdir",
  "patch_files": ["./data/patches/<your_patch_file>.jsonl"],
  "dataset_files": ["./data/patches/<dataset_file>.jsonl"],
  "output_dir": "./data/dataset",
  "repo_dir": "./data/repos",
  "need_clone": false,
  "specifics": [],
  "skips": [],
  "max_workers": 8,
  "max_workers_build_image": 8,
  "max_workers_run_instance": 8,
  "log_dir": "./data/logs",
  "log_level": "DEBUG"
}

输出:output_dir/final_report.json,含 resolved_instances / unresolved_instances 等汇总。

git apply 失败率高时可换用 patch --batch --fuzz=5(在 config 里加 fix_patch_run_cmd 覆盖,README 给了整条命令)。C/C++ 因编译产物会被 git apply 干扰,评测脚本已加 .gitignore 排除 .o/.bin。

第 5 步:提交 PR

提交仓库是 multi-swe-bench/experiments,不是 multi-swe-bench/multi-swe-bench。

  1. Fork experiments,git clone --depth 1(diff 历史很大)
  2. 在对应 split 下建目录:evaluation/<language>/verified/<YYYYMMDD>_<Agent>_<Model>/,例如 20250329_Agentless_Claude-3.7-Sonnet
  3. 放齐必填物(见下)
  4. 提 PR 到 main,合并后榜单自动更新

目录结构:

evaluation/<language>/verified/<YYYYMMDD>_<Agent>_<Model>/
├── all_preds.jsonl
├── results/
│   └── results.json
├── logs/
│   └── <org>/<repo>/evals/pr-<id>/
│       ├── fix.patch
│       ├── fix-patch-run.log
│       └── report.json
├── metadata.yaml
└── trajs/
    └── <instance_id>.<md|json|yaml>

metadata.yaml 字段:

name: <榜单显示名>
orgIcon: <图标 URL>     # 可选
oss: false              # 系统是否开源
site: <详细信息链接>
verified: false         # 见下方 Verified 流程

trajs 要求:每题一份推理轨迹,文件名含 instance_id,格式不限(md/json/yaml);必须包含系统实际执行的所有步骤与思考输出。

第 6 步:拿 Verified ✓(可选但强烈建议)

榜单上的 Verified 标记 ≠ 数据集 split 名,它表示「维护方拿到了你的系统并复跑确认」。流程:

  1. 开一个 issue
  2. 在 issue 里给出如何运行你的系统的完整说明
  3. 维护方在 Multi-SWE-bench 的随机子集上重跑并核对

建议必做:没有 Verified 的条目在外界眼里只是自报分。

必填材料速查

文件要求
all_preds.jsonl每题一条预测,含 org/repo/number/fix_patch
results/results.json官方 harness 输出,含 total/submitted/completed/resolved/unresolved
logs/<org>/<repo>/evals/pr-<id>/每题三件:fix.patch、fix-patch-run.log、report.json
metadata.yamlname/oss/site/verified,orgIcon 可选
trajs/每题一份轨迹,文件名含 instance_id

成本

项数据
论文口径单实例(MopenHands + Claude-3.7)$0.20–0.26;input 26k–48k / output 6k–8k token
论文口径单实例(DeepSeek V3/R1、Qwen2.5-72B)<$0.03
单语言 Java 128 题(论文口径推算)约 $30
全量 1,632 题(论文口径推算)约 $400
mini 400 题(论文口径推算)约 $100
硬件≥300GB 存储 / 16GB 内存 / 8 核 + Docker

成本勘误提醒:上表是论文 50 轮上限的老 scaffold 口径。社区当前普遍用 Claude Code CLI、最多 300 步、多轮取平均(MiniMax 口径为 8 次运行平均),实际成本会高一个量级——按 SWE-bench-Live 的实测密度(单实例数百万 token)反推更接近 **1.6k–$8k)。做预算时按后者准备。

常见坑

  1. 提交仓库搞错 → 往 multi-swe-bench/multi-swe-bench 提是错的,要提 multi-swe-bench/experiments
  2. 分母漂移 → 同一语言不同提交的 total_instances 不一致(Java 出现 117/125/127/128),引用必须写 resolved/total,不能只写百分比
  3. 不交轨迹 → trajs/ 是必填,无法提供推理轨迹的条目不合格
  4. metadata 写成 verified: true → 只有维护方复跑后才能置真,自己写 true 属造假
  5. 把 hints 字段喂给 agent → 它含测试与解法变量信息,属题目元数据
  6. 多次 rollout 挑最好 → 榜单口径是 Pass@1 / unassisted
  7. git apply 失败 → C/C++ 编译产物会干扰,改用 patch --batch --fuzz=5;仓库已加 .gitignore 排除常见产物但仍需留意
  8. 期望榜单及时更新 → experiments 最近一次合并为 2026-07-21,Python 榜停滞一年多,不要把它当活跃榜衡量
  9. 拿它证明抗污染 → 题集静态(全部 2025-04 前已 merge 的 PR),训练语料极可能已覆盖,对外不要声称防污染

相关

信源

信息来自 multi-swe-bench/experiments 仓库 README 与 PR 规范、multi-swe-bench/multi-swe-bench README 与评测配置、官方排行榜站点、arXiv:2504.02605,以及实测拉取 experiments 仓库各语言 results.json。数据截至 2026-09-22。美元成本除论文口径外均为推断。