coredot.today
기술 탐색으로 돌아가기
평가·벤치마크실험

SlopCodeBench

테스트는 전부 통과하는데 한 달 뒤엔 아무도 못 고치는 코드 — 에이전트가 자기 코드를 이어받게 해서 '슬롭'이 쌓이는 속도를 재는 벤치마크

직접 해보기 6
종류
논문
사실 확인
2026.09.12

TRY IT

직접 해보기

OVERVIEW

개요

무엇인가

SlopCodeBench는 위스콘신-매디슨 대학 등의 연구자들(Gabriel Orlanski 외)이 2026년 3월 25일 arXiv에 낸 논문 「SlopCodeBench: Benchmarking How Coding Agents Degrade Over Long-Horizon Iterative Tasks」와 그 벤치마크입니다. 질문은 "코드가 맞는가"가 아니라 "이 코드를 다음 달에도 고칠 수 있는가"입니다. 2026년 9월 10일 Earendil의 세바스티안이 「코드의 슬롭을 측정하기」에서 이 논문의 두 지표를 "레거시 코드베이스와 LLM 슬롭을 꽤 잘 분리해 낸다"며 소개해 해커뉴스에서 넓게 읽혔습니다.

기존 벤치마크는 완성된 명세를 한 번 주고 한 번 채점합니다. SWE-bench 계열은 단발이고, CodeFlowBench는 턴마다 이전 정답 코드를 넣어 줘서 초기 결정이 후기 열화로 이어지는 인과 사슬을 끊습니다. SlopCodeBench는 명세가 체크포인트마다 진화하고 에이전트 자신의 코드가 그대로 다음 단계로 넘어가게 해서, 테스트는 통과하지만 미래에 비용을 청구하는 국소 최적을 잡습니다.

어떻게 동작하나

문제 하나는 체크포인트 목록이고, 체크포인트 CiC_i는 명세 xix_i와 숨은 테스트 viv_i의 짝입니다. 에이전트는 현재 명세와 자기 이전 작업 공간만 받아 새 작업 공간을 만듭니다.

y1=πθ(x1, y0),yi=πθ(xi, yi−1)y_1 = \pi_\theta(x_1,\, y_0), \qquad y_i = \pi_\theta(x_i,\, y_{i-1})
원칙 1
내부 인터페이스를 지정하지 않는다. CLI 인자·API 입출력 같은 외부 계약만 정해, 아키텍처 결정 자체가 측정 대상이 된다.
원칙 2
테스트를 보여 주지 않는다. 명세 산문과 예시만 본다. 테스트를 보여 주면 아키텍처 힌트가 샌다.
원칙 3
블랙박스, 언어 무관. 관측 가능한 동작만 채점하고 키 순서·대소문자는 정규화한다(실험은 비용 때문에 파이썬 트랙만).
원칙 4
자기 코드를 이어받는다. 체크포인트 사이에 넘어가는 것은 작업 디렉터리 하나뿐. 패키지·셸 기록·세션은 리셋된다.

실행은 체크포인트마다 새 Docker 컨테이너에서 Claude Code·Codex CLI를 헤드리스로 부르고, 2시간 벽시계 제한만 둡니다. 테스트는 Core·Error·Functionality·Regression(이전 체크포인트 전부) 네 종류이고, 점수는 Strict(회귀 포함 전부 통과), Iso(현재 체크포인트만), Core, Partial(체크포인트 하나 이상 Strict)입니다. 회귀가 계속 따라오므로 앞 단계 실수 하나가 뒤 체크포인트를 모두 0점으로 만듭니다.

품질은 두 지표로 잽니다.

지표계산잡는 것
구조적 침식 (Erosion)함수마다 질량 = 순환 복잡도 × √SLOC. 순환 복잡도 10 초과 함수의 질량 합 ÷ 전체 질량 합새 로직을 작은 함수로 나누지 않고 기존 함수에 덧대는 땜질. 주변에 함수를 더 만들어도 점수가 좋아지지 않는다
군더더기 (Verbosity)(AST-Grep 규칙에 걸린 줄 ∪ 클론 줄) ÷ LOC. 중복 제거라 0~1복붙, 한 번만 쓰는 변수, 사소한 래퍼, 여분의 주석 같은 응축 가능한 코드

임계값 10은 1976년 맥케이브의 권고와 Radon의 관례에서 왔고, 제곱근은 길이를 인정하되 가중치를 분기에 두려는 절충입니다. 규칙은 논문 시점 137개, 공개 저장소 scb-check에는 197개입니다.

논문과 재현 수치

코어닷투데이가 벤치마크를 직접 돌린 결과는 없습니다. 아래는 논문(v1: 20문제·93체크포인트·11모델)과 독립 재현을 다시 읽은 것입니다.

관측값
끝까지 완전히 풀린 문제 (11모델 × 20문제)0개
최고 체크포인트 Strict 통과율17.2% (Opus 4.6)
마지막 체크포인트 Strict0.5%
체크포인트당 평균 비용1.46달러 → 4.17달러 (2.9배), 정확도는 개선 없음
침식 / 군더더기가 오른 궤적80% / 89.8%
CC 10 초과 함수 수 평균4.1개 → 37.0개
사람 저장소 48곳 대 에이전트 체크포인트 990개군더더기 0.15 대 0.33, 침식 0.31 대 0.68
circuit_eval의 main() (8체크포인트)순환 복잡도 29 → 285, 84줄 → 1,099줄, 매번 테스트 통과
  • 사람 코드도 나빠지지만 모양이 다릅니다. 20개 저장소의 커밋 568개 시점에서 군더더기 증가 비율은 사람 67% 대 에이전트 89.8%, 사람 궤적은 평평해지고 에이전트는 단조 증가했습니다. ChatGPT 이전(n=414)과 이후(n=154) 군더더기 중앙값은 0.134와 0.148로 오염 증거가 없었습니다.
  • 프롬프트는 절편만 바꿉니다. anti_slop 프롬프트는 GPT 5.4의 초기 군더더기를 34.5%, GPT 5.3 Codex는 33.2% 줄였고 GPT 5.4는 20문제 전부에서 침식이 낮아졌습니다. 그러나 체크포인트당 기울기는 유의하게 다르지 않았고, 통과율도 어느 항목에서 유의하게 개선되지 않았으며, 비용은 47.9%(304달러→450달러) 늘었습니다.
  • 침식은 통과가 아니라 비용을 예측합니다. 다음 체크포인트 통과율과의 상관은 −0.003, 비용과는 +0.127이었습니다. 비용 예측은 순수 LOC가 +0.534로 가장 강했습니다. 임계값(8·10·12)과 크기 항 9가지 변형에서도 결론은 같았습니다.
  • 독립 재현(HumanLayer). 3문제 17체크포인트에서 Opus 5가 Strict 4/17(24%), 6문제 30체크포인트에서 Fable 5와 GPT-5.6 Sol이 33.3%로 동률이었습니다. 슬롭 규칙을 타입스크립트로 옮겨 돌리니 사람이 꼼꼼히 리뷰한 모노레포는 kLOC당 15.06건, 사람 손을 안 탄 Opus 5 산출물은 174.88건이었습니다. 공개 리더보드는 36문제·196체크포인트·19모델(2026-04-24 갱신)로 커졌습니다.

언제 쓰고, 언제 피하나

상황판단
코딩 에이전트·하네스를 장기 유지보수 관점에서 비교통과율 벤치마크가 못 보는 열화를 본다. 잘 푸는 모델과 깨끗하게 쓰는 모델은 같지 않다
자기 저장소의 품질 추세 보기침식·군더더기를 CI에 계기판으로 넣고 절대값보다 체크포인트별 방향을 본다
AGENTS.md에 품질 규칙 몇 줄 추가출발점은 좋아지지만 열화 속도는 그대로, 비용은 오른다는 데이터를 감안한다
빌드를 막는 품질 게이트피한다. 임계값을 목표로 삼으면 굿하트를 부른다
지표가 무거울 때의 대안핸드오프 테스트: 코드베이스를 훨씬 작은 모델이나 처음 보는 동료에게 넘기고 다음 기능을 붙이게 한다

LLM에게 1~10점으로 코드를 채점시키는 방식은 대안이 되지 못합니다. 「Bias in the Loop」(arXiv 2604.16790)는 해답 이름만 바꿔도 판정이 뒤집히고, 그 효과가 모델 순위를 바꿀 만큼 클 때가 있음을 보였습니다.

한계와 주의

  • "최첨단 모델도 strict 0%"는 문제 단위 엔드투엔드 수치입니다. 체크포인트 단위로는 Opus 4.6이 17.2%였습니다. 두 숫자를 섞지 않습니다.
  • 체크포인트 수가 문맥마다 다릅니다. v1 규모는 20문제·93체크포인트인데, 사람 저장소와 비교한 에이전트 쪽 표본은 체크포인트 990개로 적혀 있습니다. 990이 무엇을 센 수인지는 밝혀져 있지 않으므로 93체크포인트와 직접 비교하지 않습니다. 침식이 오른 궤적도 6장에서는 80%, 사람 저장소 비교표에서는 79%로 적혀 있습니다.
  • 규칙 집합이 과할 수 있습니다. HumanLayer 재현에서 모든 모델의 코드 줄 79~98%가 규칙 하나 이상에 걸렸고, 재현자도 "코드가 나쁘다는 증거라기보다 규칙을 점검할 이유"라고 단서를 달았습니다. 규칙 수도 논문 137개와 저장소 197개가 다릅니다.
  • 사람의 취향이 지표 안에 박혀 있습니다. 임계값 10, 제곱근, 197개 AST 규칙 모두 사람이 고른 것입니다. 재현 가능하게 만든 것이지 객관적으로 만든 것은 아닙니다.
  • 측정 가능해지면 학습 타깃이 됩니다. 합성 명세와 페이지마다 심은 카나리 문자열로 오염을 막지만, 누군가 테스트에 학습시키지 않는다는 전제 위에 있습니다.
  • 실험은 파이썬 트랙만, 하네스는 각 제공사의 CLI만 썼습니다. 다른 언어나 범용 에이전트 루프에서의 수치는 아직 없습니다.

DEEP DIVE

더 깊이 읽기