
에이전트 포스트트레이닝의 진짜 병목은 모델이 아니라 하네스다. 모델은 SFT로 업데이트하지만, 프롬프트·도구·미들웨어·메모리로 구성된 하네스는 손으로 만든 채 고정해둔다. 이 비대칭이 훈련 데이터의 질을 결정짓는다는 문제의식에서 출발한 논문이 바로 Co-Harness (arXiv:2607.22688)다.
핵심 주장은 단순하다: 하네스를 최적화하면 더 좋은 궤적이 나오고, 더 좋은 궤적으로 훈련하면 더 강한 모델이 되고, 더 강한 모델은 다시 더 미묘한 하네스 병목을 드러낸다. 이 양의 정관계를 하나의 루프로 묶어 “compounding self-improvement”를 실현한 것이 Co-Harness의 기여다.
문제: 고정 하네스가 만드는 훈련 데이터의 질 저하
현재 에이전트 포스트트레이닝은 모델 파라미터 만 업데이트한다. 하네스 — 프롬프트(P), 도구(T), 스킬(S), 미들웨어(Mid), 메모리(M) — 는 훈련 내내 고정된다.
이 구조적 비대칭은 세 가지 문제를 낳는다:
- 궤적 질의 천장: 잘못된 도구 스키마, 누락된 재시도 훅, 부족한 턴 제한은 모델이 아무리 똑똑해도 실패하는 궤적을 양산한다.
- 학습 신호의 손실: 하네스 결함으로 중단된 에피소드는 모델이 학습할 수 있는 유효한 궤적을 제공하지 못한다.
- 하네스 부채(Harness Debt): 고정된 하네스가 모델의 약점을 보완하도록 설계되면, 모델은 그 하네스 없이는 제대로 작동하지 않게 된다.
Co-Harness는 이 문제를 하네스와 모델을 교대로 최적화하는 방식으로 해결한다.
Co-Harness 프레임워크: 듀얼 루프 공진화

Co-Harness는 두 개의 루프를 번갈아 실행한다.
Co-Harness Loop (하네스 진화)
- 현재 모델 와 하네스 로 롤아웃 수집
- 실패한 궤적을 HarnessCritic에 전달
- HarnessCritic이 실패 원인을 구조적으로 분류하고 하네스 diff 제안
- 검증 롤아웃으로 회귀가 없는 경우에만 diff 승인
- 승인된 하네스 로 고품질 궤적 재수집
Model Alignment Loop (모델 정렬)
- 진화된 하네스 하에서 새 궤적 집합 수집
- 를 로 SFT하여 획득
- 더 강한 모델이 다음 라운드에서 새로운 하네스 병목을 노출
이 교대 구조가 핵심이다: 더 좋은 하네스 → 더 좋은 궤적 → 더 강한 모델 → 더 미묘한 하네스 개선 → …
HarnessCritic: 실패에서 하네스를 수리하는 구조화된 진단
HarnessCritic은 Co-Harness의 엔진이다. 실패 궤적을 입력받아 구조화된 원인 분석을 출력한다.
실패 분류 체계 (Failure Attribution Taxonomy)
| 근본 원인 | 하네스 차원 | 전형적 증상 |
|---|---|---|
prompt_ambiguity | P | 지시가 불분명하거나 목표가 충돌함 |
tool_schema_error | T | 도구 호출 JSON이 잘못됨, 백엔드 불일치 |
skill_missing | S | 재사용 가능한 루틴이나 분해 원시가 없음 |
middleware_mismatch | Mid | 루프 프로토콜·훅·컨텍스트 관리 결함 |
memory_overflow | M | 지속 상태 오버플로우, 오래된 메모리, 검색 실패 |
agent_error | – | 모델 자체의 한계 (하네스 수정 대상 아님) |
각 실패에 대해 HarnessCritic은 {root_cause, harness_dim, severity, evidence, diff_suggestion} 구조의 레코드를 생성한다. diff_suggestion은 구체적인 패치 위치(예: middleware.hooks.post_tool_call[0].type)를 지정한다.
이 구조화된 출력이 중요한 이유는 감사 가능성(auditability) 때문이다. 자유 형식 코드 생성이 아니라, 명시된 필드 경로에 대한 로컬 패치만 허용하므로 롤백과 재현이 쉽다.
패치 검증 프로토콜
제안된 패치는 두 개의 검증 분할에서 테스트된다:
- : 대상 실패 모드를 보이는 사례
- : 이전에 성공했던 직교 행동
승인 조건: 이고 . 즉 타겟 실패를 개선하면서 기존 능력을 회귀시키지 않아야 한다.
왜 TIR(Tool-Integrated Reasoning)에서 특히 중요한가?
순수 텍스트 추론 에이전트에서 프롬프트가 서브최적이면 응답 품질이 점진적으로 저하된다. 모델이 불완전한 지시에서도 어느 정도 작동할 수 있기 때문이다.
TIR은 다르다. 코드 인터프리터 루프에서 하네스 결함은 이진적(binary) 실패를 낳는다:
- 도구 스키마가 잘못되면 → 인터프리터가 호출 거부 → 계산 결과 없음 → 에피소드 종료
- 재시도 훅이 없으면 → 일시적 서브프로세스 OOM → 조용한 종료 → 학습 신호 없음
- 컨텍스트 압축이 서브최적이면 → 중간 결과 손실 → 모델이 계산 반복
이런 이진적 실패 패턴은 HarnessCritic이 작업할 매우 선명한 그래디언트를 제공한다. 하네스 수정 하나가 전체 클래스의 다중 턴 전략을 잠금해제할 수 있다.
실험 결과: +20.4 pp 평균 정확도 향상

AIME24, AIME25, HMMT25 세 수학 벤치마크에서 Qwen3-8B와 Qwen3-32B를 테스트했다.
핵심 결과 (pass@1, %)
| 벤치마크 | 모델 | Baseline | Round 1 | Round 2 | 총 변화 |
|---|---|---|---|---|---|
| AIME24 | Qwen3-8B | 63.3 | 84.0 | 84.7 | +21.4 |
| AIME25 | Qwen3-8B | 56.9 | 76.3 | 78.3 | +21.4 |
| HMMT25 | Qwen3-8B | 32.3 | 48.3 | 52.4 | +20.1 |
| AIME24 | Qwen3-32B | 70.0 | 88.0 | 90.0 | +20.0 |
| AIME25 | Qwen3-32B | 63.3 | 80.0 | 84.7 | +21.4 |
| HMMT25 | Qwen3-32B | 42.9 | 62.9 | 70.1 | +27.2 |
2라운드만에 평균 +20.4 pp 향상. 가장 어려운 HMMT25에서 32B 모델이 +27.2 pp를 기록한 것이 특히 눈에 띄는다.

관찰된 패턴
- 가장 큰 도약은 Baseline → Round 1 (평균 +15.0 pp). 가장 쉬운 하네스 결함이 먼저 수리된다.
- Round 1 → Round 2은 작지만 유의미 (+5.4 pp). 점점 미묘한 실패 모드를 다룬다.
- 8B 모델은 AIME24에서 포화 (R1→R2: +0.7 pp). 모델 용량의 천장에 도달한 것으로 해석.
- 32B 모델은 계속 개선 (R1→R2: +2.0 pp on AIME24). 더 강한 모델이 진화된 하네스를 더 잘 활용한다.
200+ 시간 자율 진화 사례 연구

가장 흥미로운 부분은 부록에 실린 200시간 이상의 무인 자율 진화 기록이다. Qwen3-8B가 AIME24에서 22개의 하네스 버전을 자율적으로 생성했다.
Phase 1: 정확성 수리 (init–v7)
init: GPU 파라미터 불일치로 32초 만에 크래시 → HarnessCritic이tool_schema_error로 진단, 런치 설정 패치v1: 좀비 스레드 버그로 55번째 문제에서 OOM (7.5시간 후, 22.5% 부분 점수)v3: ProcessPool + SIGKILL 정리 + chain-of-thought 활성화 → 90문제 완료, 59.6%, 3.78시간 — 첫 유효 평가v5: 샘플링 수 증가, 온도 스케줄 → 63.3% 도달하지만 3.33시간 예산 초과
Phase 2: 효율 최적화 (v12–v15)
- HarnessCritic이 순차 실행을 주 병목으로 식별
- 글로벌 배치 추론으로 전환 (v12–v14): 3.78h → 1.1h 이하 (8.7배 가속)
- 정확도 일시적 하락 (v12: 50.5%) → chain-of-thought 복원으로 회복 (v15: 61.5%, 1.11h)
Phase 3: 앙상블 발견 (v18–v22)
- 독립 시드 (v19: 50.1%) + v15 조합 → 6궤적 다수결 투표로 63.3% @ 2.29h — 예산 내 최고 성적
- 도메인 특화 시스템 프롬프트 (v20–v22)는 정확도를 16.5 pp 하락시킴 → HarnessCritic이
prompt_ambiguity회귀로 진단, 롤백
핵심 통찰
- 정확성 우선 수리: 구조적 크래시를 먼저 고치고 성능을 최적화한다
- 파레토 인식 탐색: wall-clock 시간을 명시적 제약으로 취급한다
- 롤백 안전성: 오버패칭 회귀를 검증 롤아웃으로 감지하고 원복한다
하네스 부채(Harness Debt) 분석
가장 우려되는 질문: “진화된 하네스에 의존적인 궤적으로 훈련된 모델은 테스트 시(하네스 없이) 성능이 떨어지지 않는가?”
Co-Harness의 결과는 이 우려를 불식시킨다. Round 2 모델은 하네스 없이도 일관되게 더 높은 절대 정확도를 기록했다. 예를 들어 8B 모델의 AIME25 정확도는 56.9% → 78.3% (+21.4 pp)로, 이는 하네스 암기가 아니라 진짜 추론 스킬 습득을 반영한다.
공진화가 실패하는 경우
논문이 솔직하게 공유하는 세 가지 실패 모드:
- SFT 포화: 모델 아키텍처가 추론 능력의 상한을 정하면, SFT 이득이 포화하고 다음 라운드가 같은 실패 분포에 재진입
- 하네스 오버패칭: 초기 라운드에서 diff를 너무 많이 승인하면 약한 모델이 감당 못 하는 복잡성이 도입
- 어트리뷰션 캐스케이드: 한 결함을 수리하면서 다른 결함을 만들면 실패 분포가 더 복잡해짐 → 버전 관리 레지스트리로 롤백
의의와 한계
Co-Harness의 핵심 통찰은 하네스와 모델이 독립이 아니라 상호 의존적인 최적화 축이라는 것이다. 기존 패러다임은 둘 중 하나만 움직였다:
- SWE-smith, AgentTuning: 하네스 고정, 모델만 훈련
- ADAS, OPRO: 모델 고정, 하네스만 최적화
Co-Harness는 처음으로 둘을 하나의 루프로 묶어, 어느 한쪽만으로는 달성할 수 없는 compounding gain을 실현했다.
한계
- 유능한 크리틱 LLM 필요 (실패 진단 품질이 크리틱에 의존)
- 콜드스타트를 위한 최소 실패 궤적 볼륨 필요
- 다중 라운드 SFT로 인한 상당한 컴퓨팅 비용
- 반사실적 제어 흐름 추론이 필요한 실패 모드에서는 어트리뷰션 정확도 저하
- 구조적 하네스 재설계는 여전히 인간의 책임
향후 방향
- 온라인 Co-Harness: 롤아웃 중 실시간 하네스 적응
- RL 기반 하네스 진화: LLM 크리틱 대신 보상 신호로 하네스 공간 탐색
- 다중 에이전트 Co-Harness: 에이전트 간 미들웨어(Mid) 레이어가 핵심 최적화 타겟
더 실습해보고 싶은 분들께
에이전트 하네스 설계와 루프 엔지니어링은 이제 단순한 인프라 작업이 아니다. 모델의 학습 신호를 결정짓는 일차 최적화 변수다. Co-Harness가 보여주듯, 하네스를 모델과 함께 진화시키면 단일 축 최적화에서는 불가능한 compounding gain이 생긴다.
이런 방향의 실전 활용과 루프 설계 패턴을 더 깊이 다룬 자료로 두 가지를 추천한다:
📄 논문: Co-Harness: Co-Evolving Harnesses and Model Weights for LLM Agents (arXiv:2607.22688, 2026년 7월)