Self-HPO, 코딩 에이전트의 Harness와 정책을 함께 진화시키다
들어가며
코딩 에이전트의 성능을 이야기할 때는 흔히 기반 언어 모델의 능력에 초점을 맞춥니다. 하지만 실제 소프트웨어 작업에서는 모델이 저장소를 탐색하고, 도구를 호출하고, 테스트를 실행하고, 오류 피드백에 대응하는 방식도 결과를 결정합니다. 모델과 소프트웨어 환경 사이를 연결하는 이 구조를 Harness라고 부릅니다. Self-HPO는 정책 모델과 Harness를 고정된 부품으로 보지 않고, 서로 영향을 주며 함께 진화하는 시스템으로 다룹니다.
작동 방식: 두 단계의 반복
Self-HPO는 Harness 최적화와 정책 최적화를 번갈아 수행합니다.
- H 단계: Harness 탐색. 현재 정책이 자신의 실패 사례를 분석하고, 어떤 실패 모드가 반복되는지 파악한 뒤 새로운 Harness 후보를 제안합니다. 모든 설정을 무작정 바꾸는 대신, 현재 정책이 특히 어려워하는 작업을 중심으로 탐색합니다.
- P 단계: 정책 최적화. 선택된 Harness 아래에서 강화학습으로 정책 모델을 업데이트합니다. 고정된 상호작용 환경에서는 얻기 어려운 행동 궤적을 학습에 활용할 수 있다는 점이 핵심입니다.
- 다음 탐색으로 연결. 학습 과정에서 가장 어려웠던 작업은 다음 Harness 탐색 집합으로 남깁니다. 정책이 바뀌면 탐색 대상도 새로운 약점에 맞춰 이동합니다.
기존 방식에는 두 가지 불일치가 있습니다. 이전 체크포인트에 맞춰 조정한 Harness가 업데이트된 정책의 실패를 제대로 겨냥하지 못할 수 있고, 고정된 Harness에서 생성된 궤적만으로는 정책 학습의 행동 범위가 제한될 수 있습니다. Self-HPO는 이 문제를 반복적인 공동 최적화로 다루려 합니다.
실험 결과
SWE-Bench Verified, SWE-Bench Multilingual, SWE-Bench Pro 등 세 코드 벤치마크에서 Self-HPO는 Harness만 최적화하거나 정책만 최적화한 기준선보다 높은 성능을 보였습니다. Qwen3.5-35B-A3B의 평균 해결률은 57.8%에서 64.8%로 상승했으며, 분포 밖 설정에서도 개선 효과가 일반화되었습니다.
구성요소 분석도 주목할 만합니다. 최적화된 Harness를 기본 정책과 결합해도 일정한 이득이 남았고, 최적화된 정책을 기본 Harness와 사용해도 이득이 유지되었습니다. 그러나 두 요소를 함께 적용했을 때의 개선 폭은 각 개선을 단순히 더한 것보다 컸습니다. 이는 정책이 학습한 행동과 그 행동을 유도하는 환경 사이에 실질적인 상호작용이 있음을 시사합니다.
Self-HPO는 한 번의 시도에서 성공할 가능성을 나타내는 Pass@1과, 여러 후보를 고려했을 때의 능력 범위를 보여주는 Pass@k도 개선했습니다. 외부 모델이 반드시 필요한 구조는 아니지만, Opus 4.8과 같은 강력한 외부 모델을 Harness 제안자로 사용하면 추가 성능 향상이 가능하다고 보고했습니다.
의미와 남은 과제
Self-HPO의 가장 큰 의미는 에이전트의 작업 흐름 자체를 학습 대상으로 삼았다는 데 있습니다. 기존에는 엔지니어가 도구 사용 과정을 설계하고, 모델을 그 고정된 구조 안에서 훈련하는 경우가 많았습니다. Self-HPO에서는 실패 정보가 환경 설계로 되돌아가고, 새로 설계된 환경이 다음 정책 학습의 데이터를 바꿉니다.
새로운 저장소와 도구, 변화하는 실패 패턴에 적응하는 코딩 에이전트를 만드는 데 유망한 접근입니다. 다만 제공된 자료만으로는 반복적인 탐색에 필요한 계산 비용, 강화학습의 구체적 설정, 여러 차례 반복했을 때의 안정성을 판단하기 어렵습니다. 따라서 Self-HPO는 코딩 에이전트의 지속적 개선을 완전히 해결한 방법이라기보다, 정책과 Harness의 협력 최적화를 보여주는 실험적 프레임워크로 평가하는 것이 타당합니다.
댓글
로그인 상태 확인 중…
댓글 불러오는 중…