핵심 요약
LLM 에이전트의 실제 성능은 모델 자체만큼이나 그것을 감싸는 **하네스(harness)**가 결정한다 — 시스템 프롬프트, 주입 지식, 제어 루프, 복구 로직, 설정값. 모델 가중치를 바꿀 수 없는 배포 환경에서 하네스는 유일한 레버다. 그렇다면, 에이전트가 자신의 하네스를 스스로 진화시킬 수 있을까?
이 논문1의 대답은 “그렇다”이지만, 진짜 기여는 “진짜 좋아진 것”을 어떻게 증명하는가에 있다. 기존 하네스 자가진화 연구는 최고 pass rate를 보고 개선을 인정하지만, 이는 노이즈를 최대화하는 평가에서 얻어진 행운의 결과일 수 있다. GSME(Gated Semantic MAP-Elites)는 이 문제를 제안(proposal)과 크레딧(credit)의 분리로 해결한다.
문제: 하네스 자가진화의 두 가지 함정

하네스를 자동으로 개선하려는 시도는 두 가지 어려움에 직면한다:
1. “진짜 도움이 되었는지” 아는 것
자기 생성 피드백은 시끄럽다. 단일 평가에서 보더라운더 태스크는 몇 점씩 흔들린다. 겉보기 개선이 측정 아티팩트(플래키 샌드박스, 검증기 타임아웃)일 수도 있고, 훈련 셋에 대한 오버피팅일 수도 있다. 이것을 믿고 루프를 돌리면 드리프트가 쌓인다.
2. 무엇을 바꿀 것인가
에딧 공간이 크다. 탐욕적 루프는 두 가지 방향으로 퇴화한다: 대담한 변경이 실패하면 안전한 프롬프트 트윅으로 수렴하고, 특정 태스크에 맞춘 패치는 일반화되지 않는다.
해결책: 제안-크레딧 분리 + 병리 기반 품질-다양성 아카이브
제안과 크레딧의 분리
핵심 설계 원칙은 언어 모델은 의미론적 단계만 소유하고, 결정론적 코드가 모든 측정·유의성 검정·크레딧을 소유한다는 것이다.
- Evolver(더 강한 모델)는 실패 궤적을 읽고 (where × why) 병리를 진단하고, 패치를 작성한다
- 결정론적 코드가 표본 추출, 게이트, 집계, paired 통계를 담당한다
- 모델은 절대 정량적 판단을 하지 않는다 — “더 나아졌다”는 산술적으로 계산되지, LLM의 추정으로 결정되지 않는다
3중 게이트
모든 패치는 세 게이트를 통과해야 크레딧을 받는다:
- Validity gate: 인프라 실패(샌드박스 크래시, 검증기 누락)를 재실행하여 걸러낸다
- Activation gate: 패치가 실제로 발동했는지 확인한다 — 발동하지 않은 시도의 효과를 그 패치에 귀속시키지 않는다
- Significance gate: paired 2σ 검정(z ≥ 1.96)을 통과한 개선만 크레딧한다 — 단순 “평균이 올라갔다”가 아닌, 동일 태스크 쌍 비교에서 통계적 유의성을 요구한다
GSME: 병리 기반 품질-다양성 아카이브

패치는 (where × why) 범주형 셀에 배치된다:
- where: 프롬프트, 지식, 런타임, 설정 — 4개 레버
- why: 모델이 진단한 실패 병리 (thinking-runaway, premature finalization, method lock-in 등)
이것이 오버피팅 방지 바이어스다: 검색이 태스크 ID가 아닌 실패 유형별로 조직된다. 하나의 셀당 하나의 게이트된 엘리트만 유지하고, 셀 간 재조합을 허용하여 다양성을 보존한다.
실행 예: BrowseComp+ 진화 트리

BrowseComp+ 도메인에서 모델은 두 실패를 보인다: 추론 중 토큰 예산을 소진하여 빈 턴을 반환(thinking-runaway), 그리고 답을 검증 없이 종료(premature finalization). 루프는 각각에 대해 credited 패치를 생성한다:
- Selective recovery (runtime, thinking-runaway): +6.1pp on train
- Verify-finalize (runtime, premature-finalization): +9.8pp on train
- 재조합: 둘의 조합이 sealed test에서 +13.9pp — 단독보다 낫고, 일반화된다
결과: 7개 도메인, sealed test

| 도메인 | Sealed test Δ | z-값 | Retention |
|---|---|---|---|
| AppWorld | +15.5pp | 6.44 | 93% |
| BrowseComp+ | +13.9pp | 2.69 | 111% |
| LiveCode | +12.8pp | 3.42 | 88% |
| Omni-MATH | +11.2pp | 2.96 | 147% |
| TB2 | +9.0pp | 2.14 | 143% |
| GDPval | +9.2pp | 2.15 | 86% |
- 6개 도메인 모두 paired 2σ 크레딧 바 통과
- 훈련 게인의 86–147%를 sealed test에서 유지 — 오버피팅 붕괴 없음
- pass@3도 모든 credited 도메인에서 상승 (+5.6 ~ +15.4pp) — 단순한 분산 감소가 아닌, 풀 수 있는 태스크 집합 자체가 확장됨
회복-방어 불화(ablation)

LiveCode에서 선택적 회복(selective recovery)이 16배 큰 토큰 예산(+6.5pp)이나 전역 thinking-off 토글(+8.6pp)보다 훨씬 낫다(+14.8pp). 브루트 포스가 아닌 정확히 타겟된 개입이 효과적이다.
핵심 발견: 병리-패치 매칭 법칙
가장 흥미로운 발견은 진화된 하네스는 모델 특정적이라는 것이다. 하네스 자체는 이전하지만, 진짜 전이되는 것은 진단-크레딧 루프다.
AppWorld에서 3개 모델을 교차 테스트한 결과:
- qwen3.6-27B의 주요 병리는 “engagement” 빈 턴 → verify-finalize 패치가 매칭 (+15.5pp)
- qwen3.5-397B와 Gemini 3 Flash의 주요 병리는 “careless” 오답 → submit-verify 체크리스트가 매칭 (+13.5pp)
- 비대각선(매칭되지 않은 패치)은 거의 효과가 없다 (+0.2 ~ +1.2pp)
이것은 하네스 자가진화를 유니버설한 스캐폴딩의 발견이 아니라 특정 모델의 실패 분포에 대한 교정 패치 피팅으로 재정의한다. Gemini(Qwen이 아닌 모델)에서도 같은 careless→checklist 매칭이 재현되는 것은, 이것이 모델 패밀리를 넘어서는 패턴임을 보여준다.
의미: “자기 개선하는 에이전트” 결과를 어떻게 읽을 것인가
이 논문의 가장 중요한 시사점은 다음과 같다:
하네스 진화에서의 겉보기 능력 향상은 모델 특정 교정일 수 있으며, sealed paired test만이 진짜 일반화 가능한 개선과 평가에 맞춰진 것을 구분할 수 있다.
즉, “에이전트가 스스로를 개선했다”는 보고를 볼 때, 우리는 다음을 물어야 한다:
- 통계적 유의성 검정을 통과했는가?
- 훈련에 사용되지 않은 sealed test에서 유지되는가?
- 특정 태스크가 아닌 병리(pathology) 단위로 조직되었는가?
- 모델을 바꾸면 같은 패치가 여전히 효과적인가?
이 논문의 대답은: 1) 네, 2) 네(86-147% retention), 3) 네(GSME), 4) 아니오(모델 특정적) — 따라서 전이되는 것은 루프 자체지 특정 하네스가 아니다.
더 실습해보고 싶은 분들께
에이전트 하네스 진화, 루프 엔지니어링, 컨텍스트 엔지니어링을 직접 실험하고 싶다면 다음 두 자료를 추천한다:
- 『이게 되네? 오픈클로 미친 활용법 50제』 — 에이전트 루프와 자동화를 실사용 레벨에서 다루는 실습 가이드
- 「모두를 위한 루프 엔지니어링」 — 루프 설계와 하네스 최적화의 원리부터 실전까지
Footnotes
-
Luo, X. et al. “Self-Evolving Agent Harnesses via Gated Semantic Quality-Diversity.” arXiv:2607.13683, 2026. ↩