Co-Harness 듀얼 루프 개요. 모델과 하네스가 교대로 최적화되는 구조를 보여준다.

에이전트 포스트트레이닝의 진짜 병목은 모델이 아니라 하네스다. 모델은 SFT로 업데이트하지만, 프롬프트·도구·미들웨어·메모리로 구성된 하네스는 손으로 만든 채 고정해둔다. 이 비대칭이 훈련 데이터의 질을 결정짓는다는 문제의식에서 출발한 논문이 바로 Co-Harness (arXiv:2607.22688)다.

핵심 주장은 단순하다: 하네스를 최적화하면 더 좋은 궤적이 나오고, 더 좋은 궤적으로 훈련하면 더 강한 모델이 되고, 더 강한 모델은 다시 더 미묘한 하네스 병목을 드러낸다. 이 양의 정관계를 하나의 루프로 묶어 “compounding self-improvement”를 실현한 것이 Co-Harness의 기여다.


문제: 고정 하네스가 만드는 훈련 데이터의 질 저하

현재 에이전트 포스트트레이닝은 모델 파라미터 만 업데이트한다. 하네스 — 프롬프트(P), 도구(T), 스킬(S), 미들웨어(Mid), 메모리(M) — 는 훈련 내내 고정된다.

이 구조적 비대칭은 세 가지 문제를 낳는다:

  1. 궤적 질의 천장: 잘못된 도구 스키마, 누락된 재시도 훅, 부족한 턴 제한은 모델이 아무리 똑똑해도 실패하는 궤적을 양산한다.
  2. 학습 신호의 손실: 하네스 결함으로 중단된 에피소드는 모델이 학습할 수 있는 유효한 궤적을 제공하지 못한다.
  3. 하네스 부채(Harness Debt): 고정된 하네스가 모델의 약점을 보완하도록 설계되면, 모델은 그 하네스 없이는 제대로 작동하지 않게 된다.

Co-Harness는 이 문제를 하네스와 모델을 교대로 최적화하는 방식으로 해결한다.


Co-Harness 프레임워크: 듀얼 루프 공진화

Co-Harness 전체 프레임워크. 실패 궤적을 HarnessCritic이 분석하고, 하네스를 수정한 뒤 개선된 궤적으로 모델을 파인튜닝한다.

Co-Harness는 두 개의 루프를 번갈아 실행한다.

Co-Harness Loop (하네스 진화)

  1. 현재 모델 와 하네스 로 롤아웃 수집
  2. 실패한 궤적을 HarnessCritic에 전달
  3. HarnessCritic이 실패 원인을 구조적으로 분류하고 하네스 diff 제안
  4. 검증 롤아웃으로 회귀가 없는 경우에만 diff 승인
  5. 승인된 하네스 로 고품질 궤적 재수집

Model Alignment Loop (모델 정렬)

  1. 진화된 하네스 하에서 새 궤적 집합 수집
  2. 로 SFT하여 획득
  3. 더 강한 모델이 다음 라운드에서 새로운 하네스 병목을 노출

이 교대 구조가 핵심이다: 더 좋은 하네스 → 더 좋은 궤적 → 더 강한 모델 → 더 미묘한 하네스 개선 → …


HarnessCritic: 실패에서 하네스를 수리하는 구조화된 진단

HarnessCritic은 Co-Harness의 엔진이다. 실패 궤적을 입력받아 구조화된 원인 분석을 출력한다.

실패 분류 체계 (Failure Attribution Taxonomy)

근본 원인하네스 차원전형적 증상
prompt_ambiguityP지시가 불분명하거나 목표가 충돌함
tool_schema_errorT도구 호출 JSON이 잘못됨, 백엔드 불일치
skill_missingS재사용 가능한 루틴이나 분해 원시가 없음
middleware_mismatchMid루프 프로토콜·훅·컨텍스트 관리 결함
memory_overflowM지속 상태 오버플로우, 오래된 메모리, 검색 실패
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 평균 정확도 향상

Co-Harness 듀얼 루프 결과. AIME24, AIME25, HMMT25에서 라운드별 정확도 변화.

AIME24, AIME25, HMMT25 세 수학 벤치마크에서 Qwen3-8B와 Qwen3-32B를 테스트했다.

핵심 결과 (pass@1, %)

벤치마크모델BaselineRound 1Round 2총 변화
AIME24Qwen3-8B63.384.084.7+21.4
AIME25Qwen3-8B56.976.378.3+21.4
HMMT25Qwen3-8B32.348.352.4+20.1
AIME24Qwen3-32B70.088.090.0+20.0
AIME25Qwen3-32B63.380.084.7+21.4
HMMT25Qwen3-32B42.962.970.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+ 시간 자율 진화 사례 연구

AIME24에서 Qwen3-8B를 사용한 22버전 자율 하네스 진화 궤적.

가장 흥미로운 부분은 부록에 실린 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 회귀로 진단, 롤백

핵심 통찰

  1. 정확성 우선 수리: 구조적 크래시를 먼저 고치고 성능을 최적화한다
  2. 파레토 인식 탐색: wall-clock 시간을 명시적 제약으로 취급한다
  3. 롤백 안전성: 오버패칭 회귀를 검증 롤아웃으로 감지하고 원복한다

하네스 부채(Harness Debt) 분석

가장 우려되는 질문: “진화된 하네스에 의존적인 궤적으로 훈련된 모델은 테스트 시(하네스 없이) 성능이 떨어지지 않는가?”

Co-Harness의 결과는 이 우려를 불식시킨다. Round 2 모델은 하네스 없이도 일관되게 더 높은 절대 정확도를 기록했다. 예를 들어 8B 모델의 AIME25 정확도는 56.9% → 78.3% (+21.4 pp)로, 이는 하네스 암기가 아니라 진짜 추론 스킬 습득을 반영한다.


공진화가 실패하는 경우

논문이 솔직하게 공유하는 세 가지 실패 모드:

  1. SFT 포화: 모델 아키텍처가 추론 능력의 상한을 정하면, SFT 이득이 포화하고 다음 라운드가 같은 실패 분포에 재진입
  2. 하네스 오버패칭: 초기 라운드에서 diff를 너무 많이 승인하면 약한 모델이 감당 못 하는 복잡성이 도입
  3. 어트리뷰션 캐스케이드: 한 결함을 수리하면서 다른 결함을 만들면 실패 분포가 더 복잡해짐 → 버전 관리 레지스트리로 롤백

의의와 한계

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월)