Harness-of-Harness: 며칠짜리 자율 소프트웨어 개발을 위한 계획-코딩-테스트 반복 루프
Harness-of-Harness: Multi-Day Autonomous Software Development with Continual Improvement
TL;DR Highlight
코딩 에이전트를 계획·개발·QA 루프로 3번 돌렸더니 GameCraft 점수 최대 22점↑
Who Should Read
Codex나 Claude Code 같은 코딩 에이전트에 큰 작업을 맡겼다가 중간에 흐지부지되어 고민인 개발자
Core Mechanics
- 코딩 에이전트를 세 역할로 나눠 반복시킨다
- 기존 하네스(에이전트가 도구와 실행을 관리하는 껍데기)를 그대로 쓰고 Planner, Developer, QA Tester를 각각 따로 호출한다.
- 한 번 돌 때마다 작게 쪼갠 기능 하나를 만들고 검증한다.
- 만든 사람과 검수하는 사람을 분리한다
- QA는 읽기 전용으로 고정된 결과물만 보고 빌드·실행·스크린샷 같은 증거로 판단한다.
- 개발자의 '다 했다'는 말은 합격 근거가 되지 않는다.
- 다음 루프에는 코드와 테스트 증거를 함께 넘긴다
- 코드만 넘기면 왜 그렇게 만들었는지, 뭐가 아직 깨져 있는지 다시 추론해야 한다.
- 통과한 동작은 '지킬 것'으로, 실패는 '고칠 것'으로 다음 계획에 들어간다.
- 단순히 여러 번 돌리는 것보다 낫다
- 같은 횟수로 그냥 '계속 개발해'를 반복한 방식보다 점수가 높았다.
- 토큰도 더 적게 쓰고 더 높은 점수가 나온 구간이 있었다.
- 구조를 어디서 빼느냐에 따라 점수가 떨어진다
- 계획 갱신, 증거 피드백, 이전 결과물 이어받기 중 하나만 빼도 점수가 6~8점 내려갔다.
Evidence
- GameCraft-Bench에서 3회 반복 시 전부 상승
- Codex+GPT-5.5(high) 49.58→71.52, OpenCode+DeepSeek-V4-Pro 26.90→48.98, Pi+MiniMax-M3 42.16→58.78이다.
- 각각 같은 하네스·모델의 1회 실행(Vanilla) 대비 수치다.
- FrontierSWE와 ProgramBench도 모두 상승
- FrontierSWE 평균 보상은 Codex 0.31→0.54, OpenCode 0.23→0.31, Pi 0.26→0.55였다.
- ProgramBench 평균 테스트 통과율은 Codex 60.41→66.50, OpenCode 45.27→57.56, Pi 35.83→52.68이었다.
- 같은 횟수의 단순 반복보다 높았다
- GameCraft 3회 기준 HoH 71.52(8.41M 토큰) 대 Vanilla Continuation 58.24(6.33M 토큰)다.
- HoH 2회는 64.84(5.67M 토큰)로 3회 단순 반복 58.24보다 높았다.
- FrontierSWE 10회 반복에서 계속 상승
- Codex+GPT-5.5 기준 Dominance(다른 설정과 겨뤄 이긴 비율)가 HoH@3 39.33%에서 HoH@10 72.67%로 올랐다.
- Vanilla는 27.33%였다.
- ablation에서 모두 점수 하락
- Full HoH@3 71.52 대비 계획 갱신 제거 63.39, 증거 피드백 제거 65.23, 이어받기 제거 63.67이다.
How to Apply
- QA 전용 프롬프트를 오늘 하나 만들기
- 코드를 수정하지 않고 실행·스크린샷·로그만 보고 '검증됨'과 '갭'을 나누는 지시를 만들어라.
- 코딩 에이전트가 끝났다고 한 직후 다른 세션에서 돌려라.
- 루프마다 증거 파일을 남기고 다음 계획에 넣기
- verified, gaps, 지킬 것, 고칠 것을 JSON이나 Markdown으로 저장하라.
- 다음 Planner 입력에는 요구사항과 이 파일만 넣어라.
- 한 루프의 범위를 우선순위 3개 이하로 제한하기
- Planner에게 회귀·빌드 막힘을 먼저, 기능 확장은 그다음으로 정렬하게 하라.
- 각 항목에 관측 가능한 검증 조건을 붙이게 하라.
- 산출 형식을 스키마로 강제하고 어기면 재시도하기
- 역할별 출력 형식만 정하고 풀이 과정은 에이전트에 맡겨라.
- 형식이 틀리면 자동으로 다시 호출하라.
Try It
# Claude Code 또는 ChatGPT에 붙여넣기 (논문 방법의 간이 버전: QA 역할만 분리)
당신은 QA Tester입니다. 코드를 수정하지 마세요. 아래 요구사항과 이번 개발 문서를 기준으로, 실행 결과와 로그와 스크린샷 같은 관측 가능한 증거만 보고 판단하세요.
[요구사항]
{{요구사항}}
[이번 개발 문서]
{{개발 문서}}
[개발자가 남긴 결과물/실행 로그]
{{결과물 또는 로그}}
각 요구사항을 확인 가능한 claim으로 나누고, 증거가 충분한 것만 verified로 표시하세요. 실패·회귀·증거 부족은 gap으로 기록하세요. 아래 JSON으로만 답하세요.
{"verified":[{"claim":"","evidence":""}],"gaps":[{"claim":"","evidence":"","player_impact":"","recommended_update":""}],"preserve":[""],"next_targets":[""]}
이어서 해 볼 것: 이 JSON을 새 세션의 Planner에게 주고 '우선순위 3개 이하, 각각 관측 가능한 검증 조건 포함'으로 다음 계획을 만들게 하세요.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓
Related Resources
Original Abstract (Expand)
This paper studies autonomous software development, in which LLM-based coding agents transform high-level requirements into complete, functional, and usable software systems without human intervention. We introduce Harness-of-Harness (HoH), a framework that enables coding agents to continually improve software during autonomous development. HoH operates on existing coding-agent harnesses, and organizes their executions into iterative planning-coding-testing loops. To sustain improvement across loops, HoH balances repair with capability growth, scopes development into small and verifiable increments, separates implementation-time testing from independent evaluation, and constrains verifiable outputs rather than prescribing agent workflows. It progressively exposes deliverables, role-specific tools, and skills, encourages reuse rather than recreation, and maintains versioned project histories. On GameCraft-Bench, FrontierSWE, and ProgramBench, three harness-model pairs (Codex with GPT-5.5, OpenCode with DeepSeek-V4-Pro, and Pi with MiniMax-M3), HoH consistently outperforms the corresponding standalone harnesses, achieving an average relative gain of 52.25 percent and a maximum gain of 82.86 percent after three iterations. In a multi-day deployment with more than 70 iterations, HoH autonomously develops a first-person-shooter game, featuring a coherent storyline, fully implemented core mechanics, human-playable experience, polished visuals and integrated audio. Github: https://github.com/Flesymeb/HarnessOfHarness Project Page: https://flesymeb.github.io/HarnessOfHarness/