MILO가 하네스 설계와 탐색 전략을 함께 진화시켜 에이전트 성능을 끌어올린다

MILO: Automated Harness Discovery via Orchestrated Multi-Agent Evolution

HF Daily2609.38349

Prithwish Jana, Mononito Goswami, Hao Liu2026-09-29

무엇인가

에이전트는 모델과 하네스의 결합이다. 하네스는 모델이 제안한 행동을 상태가 있는 환경에서 실행하고, 프롬프트·도구·컨텍스트·메모리 같은 스캐폴딩과 서브에이전트 생성, 도구 호출 가로채기, 출력 검증, 종료 판단 같은 제어 흐름을 담당하는 소프트웨어 계층이다. 논문은 하네스가 모델만큼 성능을 좌우한다는 근거로 Terminal-Bench에서 GPT-5가 Terminus 2로는 35.2%를 푸는데 Codex로는 49.6%를 풀면서 토큰은 35% 덜 쓴 사례를 든다. 문제는 하네스 설계가 여전히 수작업이라는 점이다. 조합 가능한 설계 공간이 넓어 전문가가 실패를 관찰하고 휴리스틱을 고치는 과정을 반복해야 하며, 하네스는 모델별로 최적점이 달라 모델이 바뀔 때마다 다시 튜닝해야 한다. 논문은 이를 자동 하네스 발견(AHD) 문제로 정식화한다. 모델은 블랙박스로 고정한 채, 주어진 과제 분포에서 정확도와 비용의 파레토 프런티어를 개선하는 새 하네스를 찾는 것이다.

어떻게 동작하나

기존 LLM 기반 진화 탐색은 네 가지 한계를 갖는다고 저자들은 지적한다. 첫째, LLM 변이기는 탐색보다 활용에 치우쳐 비슷한 편집을 반복하고 다양성이 붕괴한다. 프롬프트나 스킬만 고치는 방법은 설계 공간 대부분을 방치하고, 하네스 전체를 고치는 방법도 고정된 변이기의 편향을 물려받는다. 둘째, 하네스 하나를 평가하는 데 몇 시간이 걸리는데 대부분의 방법이 실패한 후보를 버려 실패 방향을 다시 시도한다. 셋째, 부모 선택·변이·유지 규칙 같은 탐색 전략을 사전에 고정해 지역 최적점을 벗어나지 못한다. 넷째, 대부분 정확도만 최적화해 토큰과 지연 비용이 커진다.

무엇과 다른가

MILO는 이 네 지점을 겨냥해 하네스와 탐색 전략 자체를 함께 진화시키는 메타 진화 프레임워크를 제안한다. 메모리는 섬(island) 단위로 나뉜 계보 트리의 숲이다. 각 섬은 서로 다른 초기 하네스(시드)에서 출발해 독립적으로 성장하고, 섬끼리 아이디어를 교환하되 생존 경쟁은 하지 않아 변이기의 활용 편향이 섬 안에 갇힌다. 트리의 노드는 하네스, 간선은 부모를 자식으로 바꾼 소스 패치와 그로 인한 정확도·비용 변화량이다. 메모리는 추가 전용이라 채택된 후보뿐 아니라 거부된 후보와 그 판정까지 남긴다. 변이기는 부모의 실패 증거와 섬 전체 스냅샷(들여쓰기된 트리 형태)을 함께 받아, 국소 수정이면 충분한지 제어 흐름을 다시 짜야 하는지 스스로 진단한 뒤 하네스 전체를 다시 쓴다. 변이기는 읽기·쓰기·편집·검색·bash 도구를 쓰는 코딩 에이전트이며, 섬마다 다른 변이기가 배정된다.

어떻게 쓰나

오케스트레이터 에이전트는 모든 섬을 관찰하다가 특정 섬이 정체되면 개입한다. 정체 원인을 변이기·메모리·커리큘럼 중 어디서 찾을지 진단하고, 접목(graft)으로 다른 섬의 부모를 교차 섬 간선으로 끌어오거나, 분화(speciate)로 붐비는 하위 트리를 새 섬으로 떼어내고, 변이기를 재배정하거나 평가 과제 커리큘럼을 고친다. 각 라운드에서 섬은 다섯 단계를 돈다. 부모 선택은 다른 채택 하네스에 의해 지배당하는 정도와 행동 유사도를 결합한 점수를 소프트맥스로 샘플링해, 지배자가 적고 행동이 뚜렷한 후보를 선호한다. 자식은 정확도·토큰·지연의 파레토 프런티어에서 하이퍼볼륨 기여가 양수일 때만 채택되고, 채택된 하네스는 과적합을 막기 위해 홀드아웃 검증 분할에서 다시 채점된다. 정체 카운터가 인내 한계에 닿으면 오케스트레이터로 제어가 넘어간다.

전제와 한계

실험은 Terminal-Bench 2.1, PaperBench, DeepSWE 세 장기 과제 벤치마크에서 Opus 4.8과 gpt-oss-120b를 모델로 수행했다. 비교 대상은 최소 하네스, 상용·오픈소스 최신 하네스 8종(Cline, DeepAgents, Goose, Mini-SWE-Agent, OpenCode, OpenHands, Qwen-Code, Terminus-2), 그리고 진화 탐색 6종(OpenEvolve, ShinkaEvolve, EvoX, A-Evolve, GEPA, Meta-Harness)이다. 모든 탐색은 같은 DeepAgents 시드 3종에서 출발해 72시간의 동일한 실시간 한도를 받았다. Opus 4.8에서 MILO는 Best-of-3 대비 해결률(RR@k)을 Terminal-Bench 2.1에서 +12.0%, PaperBench에서 +28.3%, DeepSWE에서 +10.3% 올렸고, 기존 탐색의 최고 개선폭은 각각 +4.5%(GEPA), +18.3%(Meta-Harness), 0%였다. Terminal-Bench 2.1에서는 86.1±2.0%로 공식 리더보드 1위(83.8±2.3%)를 넘으면서 초기 하네스보다 토큰을 26% 덜 썼다. gpt-oss-120b에서는 통과율(PR@k)을 +11.8%, +8.6%, +14.8% 올려 각각 +8.2%(ShinkaEvolve), +4.8%(Meta-Harness), +0.1%(OpenEvolve)를 앞섰고, DeepSWE에서 15.6%로 초기 하네스의 20배를 기록한 반면 기존 탐색은 1% 미만에 머물렀다. 비용 측면에서도 Opus 4.8 기준 Terminal-Bench 2.1 하네스는 Best-of-3의 0.74배 토큰으로 +12.0%를 얻었고, gpt-oss-120b에서는 EvoX가 1.46배 토큰을 쓰고 +6.1%를 얻은 것과 대비해 MILO는 0.70배 토큰으로 +10.7%를 얻었다. Terminal-Bench 2.1에서 진화한 하네스를 추가 탐색 없이 더 어려운 Frontier-Bench에 그대로 적용해도 RR@3 기준 Best-of-3를 +3.8%, Mini-SWE-Agent를 +8.6% 앞섰다. 수학 문제에서는 인스턴스 수준 변형으로 EinsteinArena의 열린 문제 세 개에서 최고 알려진 상한을 갱신했다(에르되시 최소 중첩 0.3808586→0.3808568, 첫 번째 자기상관 부등식 1.50274365→1.50274360, 세 번째 1.45081→1.44889).

개발자 관점에서 이 논문이 주는 실무적 시사점은 하네스가 모델 교체만큼 큰 레버라는 점이다. 논문은 최신 하네스 8종이 항상 최소 하네스를 이기지 못한다는 관찰도 제시한다. Opus 4.8에서 8종 중 7종이 PaperBench RR@3에서 최소 하네스보다 낮았고, Terminal-Bench 2.1에서는 8종 모두 최소 하네스를 앞섰지만 gpt-oss-120b로 바꾸면 4종이 뒤처졌다. 즉 하네스 이득은 백본 간에 자동으로 전이되지 않으므로, 사내 에이전트를 운영한다면 모델을 바꿀 때마다 하네스를 다시 평가해야 한다. MILO 방식이 흥미로운 지점은 프롬프트나 스킬 같은 국소 수정이 아니라 제어 흐름 재작성 같은 구조적 변경을 찾아낸다는 것, 그리고 정확도만이 아니라 토큰·지연까지 파레토로 관리한다는 것이다. 실무에 적용하려면 하네스가 실행 가능한 진입점과 편집 가능한 소스를 가져야 하고, 평가에 몇 시간이 걸리는 만큼 탐색 예산과 검증 분할 설계를 먼저 정해야 한다.

저자들이 밝힌 전제와 한계도 분명하다. MILO는 모델 가중치를 건드리지 않고 추론 접근만 있는 블랙박스로 취급하며, 하네스는 실행 가능성·일반성(개별 과제에 맞춘 하드코딩 금지)·사용자 제약을 만족해야 한다는 조건 아래에서만 탐색된다. 일반성 제약은 진화한 하네스를 수동 점검해 위반이 없음을 확인하는 방식으로 검증했다. 또한 하네스 하나를 채점하는 데 몇 시간이 걸려 인스턴스 수준 방법처럼 수백만 후보를 평가할 수 없고, 실험은 72시간 실시간 한도와 k=5 또는 3회 롤아웃이라는 예산 안에서 이뤄졌다. Self-Harness, DarwinX, AIDE 2는 코드가 공개되지 않아 비교에서 제외했다. 하네스가 모델별로 최적점이 다르다는 논문 자신의 관찰은 MILO로 찾은 하네스도 모델이 바뀌면 다시 탐색해야 한다는 뜻이다.