월~금 오전 7시, 일요일 오전 8시 — AI 뉴스와 용어를 보내드립니다메일로 받아보기

METAL LAB

AI 코딩 에이전트에게 여러 파일을 동시에 손보는 '리팩토링' 숙제를 냈더니, 최고 모델도 41.2%만 풀었다

arXiv:2608.098022026-08-09

SWE-Bench ProMax: Benchmarking Agents on Large-Scale Multilingual Code Refactoring

AI 코딩 에이전트에게 여러 파일을 동시에 손보는 '리팩토링' 숙제를 냈더니, 최고 모델도 41.2%만 풀었다

기존 코딩 벤치마크는 점수가 포화 상태에 이르렀고, SWE-bench Verified는 풀리지 않은 문제 중 60%가 테스트 자체에 결함이 있다는 지적까지 받았다. 이 논문은 7개 프로그래밍 언어의 실제 커밋 170개를 전문가가 직접 검수해 만든 대규모 리팩토링 벤치마크 SWE-Bench ProMax를 공개한다. 최고 성능 모델도 해결률 41.2%에 그쳐, 여러 파일에 걸친 일관된 변경이 현재 AI 에이전트에게 여전히 큰 난제임을 보여준다.

METAL LAB 해설 도표

SWE-Bench ProMax 구축 및 평가 흐름

증거 상태측정 결과가 보고됨

  1. 1단계: 데이터 수집별 500개 이상, 오픈소스 라이선스, 7개 언어 중 하나가 80% 이상인 저장소에서 'refactor' 키워드가 담긴 2025년 1월 이후 커밋 29,782개를 수집
  2. 2단계: 환경 검증각 후보 커밋에 대해 Docker 환경을 구성하고 골드 패치를 적용해 테스트가 통과하는지 확인, 실패한 인스턴스는 제외
  3. 3단계: 전문가 큐레이션복잡도가 낮은 문항 필터링, 이슈 설명 처음부터 재작성, 지나치게 좁거나 넓은 테스트 제거해 최종 170개 확정
  4. 모델 평가GPT-5.2, Claude Sonnet 4.6, Gemini-3-Pro, GLM-5, Kimi-K2.5, Qwen3.5를 mini-swe-agent와 OpenHands로 평가, 최고 해결률 41.2%
  5. 실패 패턴 분석에이전트가 필요한 파일 수보다 적게 수정하고, 실패한 시도가 더 많은 상호작용 라운드를 소모하는 경향 확인
METAL LAB이 원문을 바탕으로 재구성한 해설 도표이며, 논문 저자의 원문 figure가 아닙니다.

무엇을 했나

  1. 기존 벤치마크(SWE-bench Verified 등)는 문제 난이도가 낮고 테스트 품질에도 결함이 많아 실제 실력을 제대로 재지 못한다는 문제의식에서 출발했다.
  2. GitHub에서 별 500개 이상, 오픈소스 라이선스, 특정 언어 비중 80% 이상인 저장소의 'refactor' 커밋 2만9782개를 모은 뒤, 환경 검증과 전문가 재작성을 거쳐 170개만 최종 채택했다.
  3. 각 문제의 이슈 설명은 처음부터 새로 작성해 모호함을 없앴고, 테스트도 사람이 직접 검토해 지나치게 좁거나(정답을 오답 처리) 지나치게 넓은(요구되지 않은 조건까지 검사) 테스트를 제거했다.
  4. Python, Java, TypeScript, Go, C, C++, Rust 7개 언어로 구성했고, 문항당 평균 11.4개 파일, 261.6줄 코드를 수정해야 해 기존 벤치마크보다 훨씬 크다.
  5. Claude Sonnet 4.6, GPT-5.2, Gemini-3-Pro, GLM-5, Kimi-K2.5, Qwen3.5 등 6개 최신 모델을 mini-swe-agent와 OpenHands 두 에이전트 프레임워크로 평가한 결과, GPT-5.2가 41.2%로 가장 높았다.
Figure 1: Distribution of modified files (left) and lines of code (right) per instance across benchmarks. SWE-Bench ProMax instances are substantially larger: 30% modify more than 10 files and 32% change over 200 lines of code, while 86% of SWE-bench Verified instances modify only a single file.
Figure 1: Distribution of modified files (left) and lines of code (right) per instance across benchmarks. SWE-Bench ProMax instances are substantially larger: 30% modify more than 10 files and 32% change over 200 lines of code, while 86% of SWE-bench Verified instances modify only a single file.
Table 1: Comparison of SWE-Bench ProMax with existing benchmarks. Avg. >5 Files: the average gold patch modifies more than 5 files. Expert Curated: problem descriptions and/or test suites undergo manual expert review or authoring beyond automated collection.
BenchmarkExecution BasedRepo LevelMulti LingualRefac- toringAvg. >5 FilesExpert Curated
HumanEval [5]
MBPP [2]
LiveCodeBench [19]
SWE-bench [21]
Multi-SWE-bench [49]
SWE-PolyBench [33]
SWE-bench Pro [8]
SWE-EVO [23]
Terminal-Bench [26]
RefactorBench [13]
SWE-Refactor [47]
SWE-Bench ProMax (Ours)
Figure 3: Data collection and curation pipeline for SWE-Bench ProMax.
Figure 3: Data collection and curation pipeline for SWE-Bench ProMax.
Table 3: Resolve rates (%) of all evaluated models across scaffolds on SWE-Bench ProMax.
OverallAvg. StepsAvg. CostPer-Language Resolve Rate
PyJavaTSGoCC++Rust
Mini-SWE-Agent
Proprietary
Gemini-3-Pro26.558.0$0.6017.215.414.326.150.045.527.3
Claude Sonnet 4.630.699.5$2.3213.819.232.113.065.040.940.9
GPT-5.221.825.2$0.1917.215.421.413.045.031.813.6
Open-weight
GLM-522.9108.9$0.1013.87.725.021.750.022.727.3
Kimi-K2.526.585.3$0.3717.223.121.417.460.031.822.7
Qwen3.520.6155.4$0.9317.27.710.713.045.027.331.8
OpenHands
Proprietary
Gemini-3-Pro19.451.2$1.4913.819.20.08.745.036.422.7
Claude Sonnet 4.638.8117.9$4.7717.230.853.626.150.036.463.6
GPT-5.241.2115.1$3.6048.319.235.726.175.036.454.5
Open-weight
GLM-536.5114.2$0.2420.734.628.634.865.045.536.4
Kimi-K2.532.999.6$0.7224.130.810.743.570.045.518.2
Qwen3.536.5141.2$0.7837.926.917.939.165.054.522.7
Figure 4: Language distribution in SWE-Bench ProMax.
Figure 4: Language distribution in SWE-Bench ProMax.
Table 4: Repositories and licenses used in SWE-Bench ProMax, grouped by language. 70 repositories across 7 languages.
LanguageRepositoryLicense
Cbetaflight/betaflightGPL-3.0
aviggiano/redis-roaringMIT
davidesantangelo/krepBSD-2-Clause
radareorg/radare2LGPL-3.0
CESNET/libyangBSD-3-Clause
arkq/bluez-alsaMIT
aws/s2n-tlsApache-2.0
bitcoin-core/secp256k1MIT
openssl/opensslApache-2.0
C++deskflow/deskflowGPL-2.0
ETLCPP/etlMIT
nasa/fprimeApache-2.0
Icinga/icinga2GPL-3.0
LMMS/lmmsGPL-2.0
OpenOrienteering/mapperGPL-3.0
WasmEdge/WasmEdgeApache-2.0
bloomberg/blazingmqApache-2.0
biojppm/rapidyamlMIT
Gocli/cliMIT
go-gitea/giteaMIT
TecharoHQ/anubisMIT
restic/resticBSD-2-Clause
OpenListTeam/OpenListAGPL-3.0
caddyserver/caddyApache-2.0
derailed/k9sApache-2.0
gitleaks/gitleaksMIT
gohugoio/hugoApache-2.0
grpc/grpc-goApache-2.0
istio/istioApache-2.0
jesseduffield/lazygitMIT
Figure 5: Left: Cumulative distribution of files modified by agents (Claude Sonnet 4.6, Kimi-K2.5) versus the gold patch. Agents modify fewer files than required overall, with the gap widening for larger patches. Right: Cumulative distribution of interaction rounds on resolved (solid) versus unresolved (dashed) instances. Failed attempts consume substantially more rounds than successful ones.
Figure 5: Left: Cumulative distribution of files modified by agents (Claude Sonnet 4.6, Kimi-K2.5) versus the gold patch. Agents modify fewer files than required overall, with the gap widening for larger patches. Right: Cumulative distribution of interaction rounds on resolved (solid) versus unresolved (dashed) instances. Failed attempts consume substantially more rounds than successful ones.
Table 5: Per-language statistics for SWE-Bench ProMax, including number of repositories, instances, and average patch complexity.
Language#Repos#Inst.Avg. #FilesAvg. LOCAvg. #Non-test
C92017.9424.115.2
C++92221.4196.316.0
Go162316.0227.49.4
Java112620.8309.816.8
Python182910.6299.87.0
Rust52214.5284.811.0
TypeScript22811.9122.67.5
Overall7017015.9261.611.4
Figure 6: Distribution of task categories across SWE-Bench ProMax instances (multi-label; percentages sum to more than 100%). The dominant categories—Refactoring Cleanup (66.5%) and API Interface Change (65.3%)—confirm the refactoring focus of the benchmark, while the substantial presence of New Feature (43.5%) and Bug Fix (41.2%) reflects the multi-faceted nature of real-world code restructuring.
Figure 6: Distribution of task categories across SWE-Bench ProMax instances (multi-label; percentages sum to more than 100%). The dominant categories—Refactoring Cleanup (66.5%) and API Interface Change (65.3%)—confirm the refactoring focus of the benchmark, while the substantial presence of New Feature (43.5%) and Bug Fix (41.2%) reflects the multi-faceted nature of real-world code restructuring.
Table 6: Summary of representative instances in SWE-Bench ProMax, one per language, sorted by number of modified files.
Lang.RepositoryFilesLOCRefactoring summary
C++nasa/fprime244559Unify header includes across framework
Javaplantuml/plantuml941,629Add hour-level time resolution to Gantt engine
Cbetaflight/betaflight62846Rename motor protocol configuration fields
Rusttracel-ai/burn491,084Unify scalar arguments across tensor operations
GoOpenListTeam/OpenList47608Refactor upload stream buffering across drivers
Pythongoogle/langextract301,960Centralize provider output-format handling
TSant-design/ant-design2797Unify destroyOnHidden across components
Figure 7: Number of categories per instance. Every instance involves at least two categories, and nearly half (46.5%) involve three or more simultaneously, indicating that SWE-Bench ProMax tasks require holistic software engineering skills rather than isolated refactoring ability.
Figure 7: Number of categories per instance. Every instance involves at least two categories, and nearly half (46.5%) involve three or more simultaneously, indicating that SWE-Bench ProMax tasks require holistic software engineering skills rather than isolated refactoring ability.

실제로 확인된 결과

  • 6개 최신 모델을 두 가지 에이전트 프레임워크로 평가한 결과 최고 성능 모델인 GPT-5.2가 41.2% 해결률을 기록했고, 이는 SWE-bench Verified에서 프론티어 에이전트가 75% 이상을 기록하는 것과 비교해 훨씬 낮은 수치다.
  • 오픈소스 모델인 GLM-5와 Qwen3.5는 OpenHands 환경에서 각각 36.5%를 기록해 GPT-5.2(41.2%), Claude Sonnet 4.6(38.8%)에 근접했으며, 비용은 각각 0.24달러로 Claude Sonnet 4.6의 4.77달러 대비 약 20분의 1 수준이었다.
  • 에이전트가 수정한 파일 수를 골드 패치와 비교했을 때, 큰 규모의 패치일수록 에이전트가 필요한 파일 수보다 적게 수정하는 경향이 뚜렷했다(골드 패치는 90% 지점까지 약 20개 파일이 필요한 반면 에이전트는 약 10개 파일에서 90%에 도달).
  • 실패한 시도는 성공한 시도보다 훨씬 많은 상호작용 라운드를 소모했으며, 이는 반복적인 편집-되돌리기 순환에 빠지는 경향과 관련 있었다.
  • 언어별 성능 편차가 커서 Claude Sonnet 4.6은 TypeScript(53.6%)와 Rust(63.6%)에서, GPT-5.2는 Python(48.3%)과 C(75.0%)에서, GLM-5는 Java(34.6%)에서 가장 우수했고 특정 언어를 압도적으로 잘하는 단일 모델은 없었다.
Figure 8: Co-occurrence matrix of task categories. API Interface Change and Refactoring Cleanup co-occur in 79 instances, while Bug Fix frequently accompanies both (33 and 48 instances respectively), reflecting how refactoring often surfaces latent defects that must be addressed concurrently.
Figure 8: Co-occurrence matrix of task categories. API Interface Change and Refactoring Cleanup co-occur in 79 instances, while Bug Fix frequently accompanies both (33 and 48 instances respectively), reflecting how refactoring often surfaces latent defects that must be addressed concurrently.

어디에 쓸 수 있나

  • AI 코딩 에이전트가 대규모 다중 파일 변경 작업(리팩토링)을 얼마나 잘 처리하는지 평가하는 표준 벤치마크로 활용할 수 있다.
  • 에이전트 스캐폴드(도구 구성)나 프롬프트 전략이 다중 파일 조율 능력에 미치는 영향을 비교하는 연구에 쓸 수 있다.
  • 모델 선택 시 해결률 대비 비용 효율(오픈소스 모델 vs 독점 모델)을 검토하는 참고 자료로 활용할 수 있다.
  • 7개 언어별 특성(타입 시스템, 메모리 모델 등)이 에이전트 성능에 미치는 영향을 분석하는 데 활용할 수 있다.
Figure 9: Distribution of required reasoning skills across SWE-Bench ProMax instances (multi-label). Nearly all instances require cross-file reasoning (99.4%) and API semantics understanding (98.8%), confirming that the benchmark systematically tests sustained multi-file comprehension. Pattern matching (91.8%) and interface contract reasoning (97.1%) are also near-universal, while data flow (88.8%), domain knowledge (79.4%) and type system reasoning (50.6%) appear in the majority of instances.
Figure 9: Distribution of required reasoning skills across SWE-Bench ProMax instances (multi-label). Nearly all instances require cross-file reasoning (99.4%) and API semantics understanding (98.8%), confirming that the benchmark systematically tests sustained multi-file comprehension. Pattern matching (91.8%) and interface contract reasoning (97.1%) are also near-universal, while data flow (88.8%), domain knowledge (79.4%) and type system reasoning (50.6%) appear in the majority of instances.

한계와 남은 검증

  • 벤치마크는 170개 인스턴스, 70개 저장소로 규모가 크지 않아 특정 언어(예: TypeScript는 저장소 2개에서 28개 인스턴스가 나옴)의 결과가 소수 프로젝트에 편중될 수 있다.
  • 평가에 사용된 프레임워크는 mini-swe-agent와 OpenHands 두 가지로 한정돼, 다른 에이전트 아키텍처에서의 결과는 검증되지 않았다.
  • 태스크 분류와 추론 스킬 라벨링(Appendix B)은 Claude Sonnet 4.6이 수행한 것으로, 분석 목적으로만 쓰였고 벤치마크 정답이나 평가 결과 자체에는 영향을 주지 않는다.
  • 2025년 1월 이후 커밋만 대상으로 했기 때문에 최신 모델의 학습 데이터 오염 여부에 대한 완전한 보증은 되지 않는다.

왜 중요한가

리팩토링은 실제 개발 현장에서 가장 흔한 작업 중 하나이면서도 여러 파일을 동시에, 동작을 바꾸지 않으면서 고쳐야 하는 까다로운 작업이라 에이전트의 진짜 실력을 가늠하는 잣대가 될 수 있다. 이 벤치마크는 기존 벤치마크가 포화되고 신뢰도가 흔들리는 상황에서, 아직 풀리지 않은 도전 과제를 제공해 에이전트 개발 방향을 가늠하게 해준다.

이 논문의 용어

  • SWE-bench · GitHub 이슈와 실제 코드 저장소를 기반으로 AI 코딩 에이전트를 평가하는 대표적인 벤치마크 시리즈
  • 리팩토링 · 겉으로 드러나는 동작은 바꾸지 않으면서 코드 구조를 정리하는 작업
  • resolve rate(해결률) · 에이전트가 수정한 코드가 준비된 테스트를 모두 통과한 문항의 비율
  • 골드 패치 · 원래 개발자가 실제로 적용한 정답 코드 변경 내역
  • 에이전트 스캐폴드 · 모델이 파일 탐색, 편집, 명령 실행 등을 반복하며 작업하도록 도와주는 실행 틀(mini-swe-agent, OpenHands 등)

저자 · Yuling Shi

arXiv에서 원문 보기

최신 논문

논문 전체 보기 →

METAL LAB 최신 기사

그림 출처: Yuling Shi et al., arXiv:2608.09802, CC BY 4.0