HarnessPro가 에이전트 하네스를 성능과 비용의 파레토 최적으로 진화시킨다
HarnessPro: Recursive Harness Self-Improvement with Pareto Optimization for Performance-Cost Trade-offs
무엇인가
이 논문은 AI 에이전트의 하네스, 즉 LLM과 환경 사이의 상호작용을 관리하는 소프트웨어 런타임을 다룬다. 하네스에는 프롬프트, 도구와 스킬, 컨텍스트와 메모리, 훅, 검증 정책이 포함된다. 최근 재귀적 자기개선(RSI)은 과거 실행 궤적으로 하네스를 고쳐 성능을 올리지만, 더 많은 탐색과 검증을 요구해 토큰 소비와 지연을 키우는 경우가 많다. 실제 배포에서는 성능뿐 아니라 실행 비용과 지연이 중요하므로, 저자들은 더 나은 성능을 더 낮은 실행 비용으로 얻을 수 있는지 묻는다. HarnessPro는 레이블 없이 하네스를 진화시키는 방법으로, 통과율과 비용을 동시에 최적화하는 파레토 프론티어를 찾고 lite, medium, heavy 세 운영점을 제공하는 것을 목표로 한다. 최적화 목표는 초기 하네스의 통과율 이상을 유지하면서 -PR과 C를 최소화하는 것이다.
어떻게 동작하나
방법은 여러 전문 에이전트를 조합한다. 먼저 DPP 기반 코어셋으로 10개 학습 과제를 고르고, 각 후보 하네스를 학습 과제마다 G=3회 롤아웃해 궤적과 통과 여부, 비용, 지연을 수집한다. 궤적 분석기는 한 번의 시도가 아니라 G개 롤아웃을 함께 보고 문제, 성능·비용 영향, 근거를 정리한다. 진화 계획기는 비용 우선, 균형, 성능 우선의 세 지시에 따라 수정 계획을 세우며, 진단과 지표뿐 아니라 다른 후보와의 코드 차이도 비교한다. 하네스 편집기는 각 계획을 별도 작업공간에서 실행 가능한 후보로 구현하고 Git에 커밋해 추적과 되돌리기를 가능하게 한다. 테스트 합성기는 정답이나 공식 테스트 없이 과제 설명과 초기 하네스 궤적으로 고정 테스트를 만들어 학습·검증 후보 평가에 쓴다. 후보는 초기 통과율보다 낮거나 파레토 지배되면 버리고, 정규화된 가중 제곱거리로 lite, medium, heavy를 각각 선택한다. 선택 기준은 d_perf와 d_cost를 정규화한 뒤 J_m = α_m d_perf^2 + β_m d_cost^2를 최소화하는 것이며, 선택된 하네스가 다음 에폭으로 들어간다.
무엇과 다른가
실험은 Terminal-Bench 2, SWE-Bench Pro, ProgramBench에서 진행됐다. 테스트로 각각 59, 100, 100개 과제를 남기고, 나머지에서 DPP로 10개 학습 과제를 골라 나머지를 검증에 썼다. GPT-5.5와 Codex 0.147.0, GLM-5.2와 Claude Code 2.1.231을 조합했고, 학습 과제당 G=3 롤아웃, Terminal-Bench 2와 SWE-Bench Pro는 3에폭, ProgramBench는 4에폭, 에폭마다 최대 3개 하네스를 유지했다. 비교 대상은 Vanilla, Dynamic Cheatsheet, ReasoningBank, Sleep-time Compute, RHO, 비용을 고려하도록 지시만 바꾼 Balance, 같은 반복 예산의 RHO+Iteration이다. 비용은 캐시되지 않은 입력, 캐시된 입력, 출력 토큰을 각각의 가격으로 계산한 평균 과제 비용이고, 지연은 채점 시간을 제외한 벽시계 시간이며 서버 부하와 네트워크 변동 때문에 보조 지표로 다룬다.
어떻게 쓰나
GPT-5.5와 Codex 조합에서 HarnessPro heavy는 세 벤치마크 평균으로 RHO 대비 통과율 2.0%포인트 향상과 과제당 평균 비용 26.1% 절감을 보고했다. Terminal-Bench 2에서 heavy는 평균 통과율 80.8%로 RHO보다 4.5%포인트 높고 평균 비용은 33.9% 낮았다. ProgramBench에서는 69.6%로 RHO의 68.8%를 넘으면서 평균 비용이 17.8% 낮았고, 과제당 비용은 2.95달러 대 3.59달러였다. SWE-Bench Pro의 medium은 통과율 79.0%로 RHO의 80.0%에 근접하면서 평균 비용을 53.0% 줄여 2.68달러에서 1.26달러로 낮췄다. lite는 세 벤치마크 모두에서 Vanilla보다 높은 성능을 내면서 비용을 17.7%에서 57.4% 덜 썼다. 같은 반복 예산의 RHO+Iteration과 비교해도 medium은 Terminal-Bench 2에서 동일 성능을 31.7% 낮은 비용으로 냈고, ProgramBench heavy는 통과율 1.3%포인트 향상과 평균 비용 5.8% 절감을 보였다. GLM-5.2와 Claude Code에서도 heavy가 세 벤치마크에서 RHO를 낮은 비용으로 앞서는 같은 패턴이라고 보고했지만, 제공된 본문에는 세부 수치가 제시되지 않았다. 지연은 목표가 아니었지만 SWE-Bench Pro heavy에서 RHO의 평균 520초를 412초로 줄였다.
전제와 한계
에폭별 변화는 재귀적 개선이 단일 라운드보다 나은 이유를 보여준다. Terminal-Bench 2에서 heavy의 통과율은 1에폭 74.6%에서 3에폭 평균 80.8%로 올랐고, 평균 비용은 0.91달러에서 0.72달러로 내렸다. lite 비용은 0.61달러에서 0.43달러, medium 비용은 0.68달러에서 0.56달러로 줄면서 통과율은 2에폭에서 3에폭 사이 유지됐다. SWE-Bench Pro medium은 1에폭 70.0%와 1.57달러, 2에폭 77.0%와 1.66달러, 3에폭 79.0%와 1.26달러로, 3에폭에서야 두 지표가 함께 개선됐다. ProgramBench는 4에폭에서 세 모드 모두 비슷한 통과율을 유지하면서 비용을 낮췄다. 진화된 하네스는 과제 설명으로 추론 노력 수준과 도구 호출 예산을 정하는 실행 프로필을 고르고, 런타임 훅으로 예산을 강제한다. Terminal-Bench 2 medium의 표준 프로필에서는 14회 도구 호출 후 병렬 호출과 중복 점검 회피를 알리고, 26회 후 완료와 검증에 집중하게 하며, 44회 후 추가 호출을 막는다. 알림은 도구 결과에 덧붙여 프롬프트 접두사를 보존해 캐시 재사용을 돕는다. 또한 RTK 같은 도구 출력 압축으로 반복 로그를 접고 긴 출력을 요약하며, 개발자 지시를 간소화해 중복 입력을 줄인다. 저자들은 이것이 단순한 컨텍스트 압축이나 추론 노력 증가가 아니라 필요한 추론과 검증을 유지하면서 회피 가능한 오버헤드를 줄이는 방식이라고 설명한다.
절제 실험은 구성 요소의 기여를 뒷받침한다. 계획기를 제거하면 SWE-Bench Pro medium의 통과율이 79.0%에서 73.0%로 떨어지고 평균 비용은 1.26달러에서 1.42달러로 올랐다. 테스트 합성기를 제거하면 두 벤치마크와 세 모드 전반에서 통과율이 3.4%포인트에서 10.0%포인트 하락했다. 테스트 합성기는 직접 LLM 판단과 비교해 실패 재현율을 41.7%에서 83.3%로 높였다. RHO에 진화된 하네스의 개별 전략인 동적 라우팅이나 예산 훅을 추가하면 비용은 줄지만 성능이 떨어질 수 있었고, 낮은 추론 노력을 일괄 적용하면 비용은 더 크게 줄지만 성능이 크게 나빠졌다. 저자들은 이런 RHO 변형들이 HarnessPro가 진화시킨 하네스에 모두 파레토 지배된다고 보고한다.
개발자 관점에서 이 논문은 터미널·코딩 에이전트를 실제 예산 안에서 운영할 때 하네스를 하나로 고정하지 않고 lite, medium, heavy로 고르는 접근을 참고할 만하다. 공식 테스트나 정답이 없는 초기 개발 단계에서는 고정된 LLM 생성 테스트로 후보를 비교하되, 최종 배포 전에는 반드시 공식 테스트로 다시 검증해야 한다. 원문이 명시한 전제와 범위는 레이블 없는 진화 동안 정답·공식 테스트·채점기에 접근하지 않고, 검증·테스트 세트를 계획기에서 숨기며, 최종 테스트는 진화가 끝난 뒤에만 쓴다는 점이다. 또한 학습 코어셋이 10개 과제로 작고 에폭 수와 후보 수가 제한되며, 비용은 부록의 토큰 가격표에 의존하고 지연은 서버·네트워크 변동 때문에 보조 지표라는 한계가 있다. 결과는 특정 벤치마크와 모델·에이전트 조합에서 얻은 것이므로, 다른 도메인에서는 생성 테스트 품질과 비용 가정을 먼저 확인해야 한다.