目录入口见 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 仓库);
mini400 题(8 语言 × 50,含 Python);flash300 题。 - 指标: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 类似,合规要求实质是:
- agent 只拿
problem_statement与任务镜像(不应读hints/test.patch/fix.patch) - 单次 rollout(榜单口径 Pass@1、unassisted,不做 best-of-n)
- 产出 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。
- Fork
experiments,git clone --depth 1(diff 历史很大) - 在对应 split 下建目录:
evaluation/<language>/verified/<YYYYMMDD>_<Agent>_<Model>/,例如20250329_Agentless_Claude-3.7-Sonnet - 放齐必填物(见下)
- 提 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 名,它表示「维护方拿到了你的系统并复跑确认」。流程:
- 开一个 issue
- 在 issue 里给出如何运行你的系统的完整说明
- 维护方在 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.yaml | name/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)。做预算时按后者准备。
常见坑
- 提交仓库搞错 → 往
multi-swe-bench/multi-swe-bench提是错的,要提multi-swe-bench/experiments - 分母漂移 → 同一语言不同提交的
total_instances不一致(Java 出现 117/125/127/128),引用必须写 resolved/total,不能只写百分比 - 不交轨迹 →
trajs/是必填,无法提供推理轨迹的条目不合格 - metadata 写成
verified: true→ 只有维护方复跑后才能置真,自己写 true 属造假 - 把
hints字段喂给 agent → 它含测试与解法变量信息,属题目元数据 - 多次 rollout 挑最好 → 榜单口径是 Pass@1 / unassisted
git apply失败 → C/C++ 编译产物会干扰,改用patch --batch --fuzz=5;仓库已加.gitignore排除常见产物但仍需留意- 期望榜单及时更新 →
experiments最近一次合并为 2026-07-21,Python 榜停滞一年多,不要把它当活跃榜衡量 - 拿它证明抗污染 → 题集静态(全部 2025-04 前已 merge 的 PR),训练语料极可能已覆盖,对外不要声称防污染
相关
- multi-swe-bench — 评测集定义与方法论
- multi-swe-bench — 分数快照与分母漂移实测
- README — 打榜指南目录入口
- swe-bench-live — 抗污染主榜(可信度更高,作主证据)
- terminal-bench — Terminal-Bench 4.0(同为 harness 型证据)
- coding-agent-leaderboards — 榜单横向地图与可提交性对照
信源
信息来自 multi-swe-bench/experiments 仓库 README 与 PR 规范、multi-swe-bench/multi-swe-bench README 与评测配置、官方排行榜站点、arXiv:2504.02605,以及实测拉取 experiments 仓库各语言 results.json。数据截至 2026-09-22。美元成本除论文口径外均为推断。