안녕하세요, 자바파커입니다.
Claude가 마음에 들지 않는 답을 계속 낸다면 어떻게 할까요. 보통은 다시 물어봅니다. arena는 다른 길을 택한 Claude Code 스킬입니다. 같은 과제를 서브에이전트 수십 개에게 각자 다른 전략으로 풀게 하고, 서로의 답을 공격하고 방어하게 한 뒤, 심판 점수로 토너먼트를 치러 답 하나만 남깁니다. 기본값은 100명입니다.
비용이 큰 스킬이라 8명 대회로 줄여서 직접 돌려 봤습니다. 결과부터 말씀드리면 이렇습니다.
- 명세가 분명한 코딩 과제에서는 단발 답변 3번이 모두 숨긴 테스트 49개를 통과했습니다. 8명 대회의 우승 답안도 통과했지만, 결과는 같았습니다.
- 대회에는 26.6분과 18.81달러가 들었습니다. 단발 답변 평균(약 25초, 약 0.11달러)의 약 63배, 약 170배입니다.
- 대회 안에서 나온 공격 21건은 모두 경미(MINOR) 등급이었고, 승부는 명세가 정하지 않은 해석 문제에서 0.5~6점 차이로 갈렸습니다.
arena 스킬은 무엇인가
arena는 Jake Schincariol이 MIT 라이선스로 공개한 스킬입니다. 같은 제작자의 aura-farming이 SKILL.md 한 장이었던 것과 달리, 대진표를 관리하는 파이썬 도구(bracket.py, 표준 라이브러리만 사용), 전략 카드 목록, 채점 기준, 테스트까지 갖췄습니다. 2026년 11월 11일 기준 GitHub 별 1,432개, skills.sh 설치 수 483이고, 보안 감사는 Gen Agent Trust Hub와 Socket이 Pass, Snyk가 Low였습니다.
.arena/ 폴더에 쓰고 한 줄로만 답하기 때문에, 수백 개의 답안이 오가도 메인 컨텍스트가 넘치지 않습니다.사용법은 /arena 뒤에 과제를 적는 것입니다. --quick은 16명, --agents N은 N명, --seed는 카드와 대진을 고정합니다. 마음에 들지 않은 답이 있으면 그것을 "이겨야 할 답"으로 두고, 마지막에 우승 답안과 눈을 가린 채 비교합니다.
# 설치
git clone https://github.com/jakeschincariol/arena-skill.git
cp -r arena-skill/skills/arena ~/.claude/skills/
# 사용 (Claude Code 안에서)
/arena --quick 가격 페이지 헤드라인을 써 줘
/arena --agents 8 tests/test_api.py의 불안정한 테스트를 고쳐 줘인원에 따른 호출 수
README에 실린 표입니다. 출전 인원이 두 배가 되면 호출 수도 약 두 배가 되고, 출전자 한 명당 5~6번꼴로 호출됩니다.
Claude Code는 기본으로 도구 호출을 한 번에 10개까지만 돌립니다. 그래서 단계마다 10개씩 끊어 돌리고, README 표 기준으로 100명 대회는 모두 70번에 나눠 진행됩니다. 스킬은 시작 전에 이 숫자를 알려 주고, 사용자가 직접 부르지 않았는데 스스로 켜진 경우에는 비용을 쓰기 전에 먼저 묻도록 되어 있습니다.
실험: 숨긴 테스트로 채점하기
정답이 분명해야 비교할 수 있어서 코딩 과제를 골랐습니다. 금액을 한글로 읽는 파이썬 함수 won_to_korean(n)입니다. 12345를 넣으면 "일만이천삼백사십오원"을 돌려줍니다. 과제 파일에는 규칙 일곱 가지를 적었습니다. 십·백·천 앞의 '일'은 생략하고 만·억·조 앞의 '일'은 남긴다, 네 자리 묶음이 모두 0이면 단위를 생략한다, 10의 16제곱 이상은 ValueError, bool·실수·문자열은 TypeError 같은 것들입니다.
채점용 테스트 49개는 따로 숨겨 두었습니다. 0, 10, 110, 10000, 100000010(일억십원), 10의 16제곱 빼기 1 같은 경계값과 잘못된 입력 8가지입니다.
- 2026년 11월 11일, Claude Code 2.1.322, 모델
claude-opus-5-5, 헤드리스 모드 - 단발 답변: 같은 과제 파일을 주고
won.py를 쓰게 한 것을 3번 - arena:
/arena --agents 8 --seed 7, 파일 쓰기는 자동 승인(accept-edits), 파이썬 실행만 허용
결과: 같은 정답, 다른 비용
걸린 시간 22~30초
비용 0.10~0.12달러
걸린 시간 26.6분 · 서브에이전트 43회
비용 18.81달러
이 과제는 처음부터 한 번에 풀리는 과제였습니다. 그래서 토너먼트가 정답률을 올릴 여지가 없었고, 비용만 늘었습니다. arena README가 말하는 쓰임새는 "Claude가 계속 나쁜 답을 낼 때"인데, 이번 과제는 그 조건에 해당하지 않았습니다. 단발 답변이 틀리는 과제에서 arena가 얼마나 도움이 되는지는 이번 실험으로 확인하지 못했습니다.
비용은 실행 전 제 예상(호출당 0.1~0.2달러)보다 두 배 이상 컸습니다. 실제로는 호출당 약 0.44달러였습니다. 심판들이 답안을 직접 실행해 확인했기 때문으로 보입니다. 이 단가로 단순히 비례해 계산하면 100명 대회(595회)는 약 260달러가 됩니다. 과제와 답안 길이에 따라 크게 달라지는 값이라 참고로만 보세요.
대회 안에서 일어난 일
방어: 인정 14건, 반박 7건
심판들이 무작위 입력 20만~50만 개로 두 답안을 직접 실행해 비교
3라운드, 8명 중 1명
처음 낸 답안 8개가 모두 맞았기 때문에, 공격은 정답 여부가 아니라 주변부를 겨냥했습니다. 결승에서 나온 공격은 "IntEnum 같은 int 하위 클래스를 정수로 받아도 되는가"였습니다. 과제는 bool만 정수가 아니라고 명시했고 다른 하위 클래스는 정하지 않았는데, 공격자는 "bool을 거부한 이유와 같은 논리로 IntEnum도 거부해야 한다"고 주장했습니다. 다른 경기는 오류 메시지 문구, __int__를 덮어쓴 하위 클래스, 아주 큰 정수를 오류 메시지에 출력할 때의 문제처럼 숨긴 테스트가 보지 않는 지점에서 갈렸습니다.
우승자의 첫 답안은 21줄이었습니다. 공격을 반영한 최종 답안은 같은 로직에 입력 검사를 보강하고 자체 테스트를 붙여 67줄이 됐습니다. 카드의 전략이 "움직이는 부품 최소화"였는데도 길어진 점이 눈에 띕니다. 명세의 빈틈을 찾아 메우는 데는 쓸모가 있었지만, 그 빈틈은 사람이 결정해야 할 문제이기도 합니다. IntEnum을 받을지 말지는 토너먼트보다 과제를 낸 사람이 정하는 편이 맞습니다.
README의 약속은 지켜졌습니다. 서브에이전트들은 .arena/ 폴더 밖에 파일을 하나도 만들지 않았고, 우승 답안은 프로젝트에 적용되지 않은 채 결과로만 돌아왔습니다.
언제 쓸 만한가
이번 결과와 스킬의 설계를 함께 보면 이렇게 정리할 수 있습니다. 아래 "쓸 만한 경우"는 이번에 직접 시험하지 않은 추론입니다.
테스트로 바로 확인할 수 있는 과제
사람이 정해야 할 해석이 남은 과제
헤드라인·계획·설계처럼 접근 방식에 따라 답이 크게 달라지는 과제
한 번의 결정이 비싸서 비용을 들여도 되는 경우
쓴다면 몇 가지를 지키는 편이 좋습니다.
- 기본값 100명 대신
--agents 8이나--quick으로 시작합니다. 시작 전에 나오는 호출 수를 확인하세요. - 과제 파일이 결과를 결정합니다. 서브에이전트는 대화를 보지 못하고 과제 파일만 봅니다. 요구 사항이 빠지면 출전자 전원이 그것을 놓칩니다.
- 파일 쓰기 승인 모드(Shift+Tab)로 돌립니다. 그렇지 않으면 파일마다 승인 요청이 뜹니다.
- 정답을 확인할 테스트가 있다면, 대회보다 테스트를 먼저 돌려 보세요. 이번처럼 단발 답변으로 충분할 수 있습니다.
자주 묻는 질문 (FAQ)
arena 스킬은 무료인가요?
스킬 자체는 MIT 라이선스로 무료입니다. 다만 서브에이전트 호출만큼 토큰을 씁니다. 이번 8명 대회(호출 43회)에 18.81달러가 들었고, 구독으로 쓰면 그만큼 사용 한도가 줄어듭니다.
100개의 서로 다른 모델이 경쟁하나요?
아닙니다. 지금 쓰는 모델 하나로 서브에이전트를 여러 번 띄우는 것이고, 서로 다르게 만드는 것은 전략 카드입니다. 심판도 같은 모델입니다.
우승 답안은 항상 정답인가요?
보장되지 않습니다. 우승은 같은 모델의 심판에게 점수로 이겼다는 뜻입니다. 이번 실험에서는 우승 답안이 숨긴 테스트를 모두 통과했지만, 처음 낸 답안 8개와 단발 답변 3개도 모두 통과했습니다.
내 프로젝트 파일을 고치나요?
고치지 않습니다. 모든 결과는 .arena/ 폴더에 쓰이고, 코드 변경은 우승 답안 안에 diff나 파일로 돌아옵니다. 이번 실험에서도 .arena/ 밖에 생긴 파일은 0개였습니다.
처음 써 볼 때
skills/arena폴더를~/.claude/skills/에 복사합니다. 파이썬 3.8 이상이 필요합니다.- 같은 과제를 한두 번 그냥 물어보고, 그래도 만족스럽지 않을 때만 씁니다.
/arena --agents 8 <과제>로 작게 시작하고, 과제 파일(.arena/<run>/task.md)에 요구 사항이 다 들어갔는지 확인합니다.- 결과와 함께 나오는 "살아남은 공격 목록"을 읽고, 명세의 빈틈이 드러났다면 그 결정은 직접 내립니다.
같은 제작자의 디자인 스킬은 aura-farming 실측에, 스킬을 찾는 방법은 skills.sh 스킬 검색에 정리했습니다.
참고: arena-skill 저장소