AutoSaddler
핵심 아이디어
AutoSaddler는 AOT(ahead-of-time) 하네스 최적화다. 에이전트 실행 추적을 수집하고, 진단하고, 프롬프트/툴/미들웨어/루프 레이어에 구조화된 패치를 적용한다. 한 번 최적화하면 여러 태스크에 재사용한다.
JIT-Agent가 태스크마다 새 하네스를 쓴다면, AutoSaddler는 하네스를 점진적으로 수리한다. 실패 케이스를 보고, 어디가 잘못되었는지 진단하고, 그 부분만 고친다. 수정된 하네스는 durable update다—같은 계열 태스크에 계속 적용된다.
메커니즘
- Trace 수집: 에이전트 실행 전체를 캡처한다. 호출된 툴, 중간 프롬프트, 루프 흐름, 최종 결과.
- Diagnosis: 어느 레이어에서 실패했는지 분석. 툴 호출이 빠졌는지, 프롬프트가 애매했는지, 루프가 일찍 끝났는지.
- Patch 생성: 해당 레이어에 구조화된 패치를 생성. 예를 들어 “search 툴 호출 전에 query refinement 스텝 추가” 같은 구체적인 수정.
- Generalization-aware selection: EvoDAG라는 선택 메커니즘으로, 너무 과적합된 패치는 걸러내고 일반화 가능성이 높은 패치만 채택한다.
V2는 durable plugin engine이다. V1은 논문 재현 코드다.
실적
README에서 보고한 Pass@1 수치:
- GAIA2: Default ReAct 53.0 → 62.0 (+9.0pp)
- SWE-Bench Pro: SWE-agent 37.3 → 46.9 (+9.6)
- Terminal-Bench 2.0: Terminus 2 40.0 → 50.0 (+10.0)
모두 AOT 최적화 이후 수치다. 같은 하네스를 다른 인스턴스에 적용해서 일관된 향상을 보인다.
AOT의 장점과 한계
장점은 비용 효율이다. 한 번 최적화하면 추가 인퍼런스 없이 재사용한다. 단점은 태스크 분포가 넓을 때 general한 패치를 찾기 어렵다는 점이다. 특정 서브태스크에서 작동하는 패치가 다른 서브태스크를 망가뜨릴 수 있다. EvoDAG가 이를 완화하지만, JIT처럼 per-instance로 정밀하게 맞추지는 못한다.
AutoSaddler는 하네스 엔지니어링의 점진적 개선 경로를 제시한다. 기존 하네스를 버리지 않고, 실패 케이스로부터 배워서 조금씩 나아진다.
참고
- 논문: Automatic Harness Optimization with Durable Updates from Agent Execution Traces
- arXiv: 2608.23041
- GitHub: microsoft/AutoSaddler (165★)