EvoCode-Bench는 코딩 에이전트를 단일 프롬프트가 아니라 지속되는 코드베이스 위에서 평가하는 멀티턴 벤치마크다. 26개 작업을 227개 순차 라운드로 나누고, 각 작업은 5~15라운드 동안 같은 컨테이너와 파일시스템을 유지한다.
왜 필요한가
대부분의 코딩 벤치마크는 한 번의 요구사항을 주고 결과만 채점한다. 실제 개발은 다르다. 사용자는 기능을 추가하고, 이전 요구를 뒤집고, 리팩터링을 요청한다. 에이전트는 자신이 만든 구조 위에서 계속 수정해야 한다.
EvoCode-Bench는 이 장기 누적성을 세 가지로 강제한다.
| 설계 | 의미 |
|---|---|
| Persistent workspace | 라운드 1의 코드와 의존성이 라운드 15까지 남는다 |
| Evolving specifications | 새 요구가 확장, 수정, 충돌을 일으킨다 |
| Cumulative testing | 매 라운드에서 과거 요구사항까지 모두 다시 테스트한다 |
주요 결과
Philipp Schmid의 요약에 따르면 단일 라운드 점수는 실제 신뢰성을 크게 과대평가한다. 낮은 티어 모델은 human-completed clean codebase에서 시작하는 single-round 조건과 multi-turn 조건 사이에 약 4배 차이가 났고, frontier 모델도 1.4~1.8배 차이가 났다.
모델 순위도 바뀐다. Claude Opus 4.6은 single-round에서 78.9%로 가장 높았지만 multi-turn에서는 44.0%로 떨어졌고, Opus 4.7과 GPT-5.5가 앞섰다. 전체 모델의 pass rate는 라운드 1에서 46.7%, 라운드 5에서 21.3%, 라운드 10에서 7.7%로 줄었다.
가장 중요한 실패 원인은 “기능을 못 만듦”보다 회귀(regression)였다. 최고 티어 에이전트도 새 요구사항을 반영하면서 과거에 동작하던 코드를 깨뜨리는 경우가 많았다. 반대로 요구사항을 지속 문서로 추적한 에이전트는 성공률이 두 배 이상 높아졌다.
사용 대상
- 코딩 에이전트 모델을 장기 작업 기준으로 비교하려는 연구자
- agent-harness에 계획 문서, 누적 테스트, 회귀 방지 루프를 넣고 싶은 팀
- SWE-bench 계열 단발성 점수와 실제 제품 개발 성능 사이의 차이를 보려는 플랫폼 팀
- 멀티턴 사양 변경을 견디는 에이전트 평가 세트를 설계하는 조직
한계
데이터셋은 26개 작업, 227라운드로 아직 작다. 또한 all-or-nothing scoring은 일부 테스트만 실패해도 라운드 전체를 0점으로 만든다. fail-stop 설정에서는 한 라운드 실패 후 복구 능력도 보지 않는다. 실제 사람과의 clarification loop가 빠져 있다는 점도 해석에 반영해야 한다.
관련 문서
- agent-harness — 에이전트 성능을 결정하는 하네스 설계
- senior-swe-bench — 시니어 엔지니어 수준의 기능·버그 해결 능력 벤치마크
- tua-bench — 범용 터미널 사용 에이전트를 평가하는 벤치마크
- agentgym2 — 현실적 노이즈와 불확실성을 반영한 에이전트 벤치마크
참고 자료
- Evaluating Agents Beyond the First Prompt — Philipp Schmid (2026-07-27)
- EvoCode-Bench: Evaluating Coding Agents in Multi-Turn Iterative Interactions — arXiv (2026)
- UniPat-AI/EvoCodeBench — GitHub 공식 저장소