코딩 에이전트 성능을 좌우하는 Harness 설계
들어가며
코딩 에이전트가 장기적인 소프트웨어 엔지니어링 작업을 수행하는 능력은 기본 모델의 코드 작성 실력만으로 결정되지 않는다. 에이전트가 어떻게 계획하고, 어떤 도구를 호출하며, 이전 작업 결과를 어떻게 유지하는지를 정하는 Harness도 중요한 역할을 한다. 하지만 기존 평가는 완성된 에이전트 시스템을 통째로 비교하는 경우가 많아, 특정 구성 요소가 실제로 얼마나 기여했는지 분리하기 어려웠다.
연구 방식
논문 「An Empirical Study of Harness Design for Coding Agents」는 실행 루프를 고정한 경량 Harness를 만들고 세 가지 요소를 바꿔가며 비교했다. 대상은 계획 방식, 행동 공간, 컨텍스트 관리다. 네 개 모델을 SWE-Bench Verified와 Terminal-Bench 2.1에서 평가했으며, 총 176개의 대응 설정을 분석했다. 컨텍스트 관리 실험에는 다섯 가지 전략과 네 가지 컨텍스트 윈도우 예산이 포함됐다. 성공률뿐 아니라 비용과 에이전트의 실행 궤적도 함께 살펴 구성 요소의 효과가 나타나는 이유를 분석했다.
핵심 결과
- 컨텍스트 예산이 작을수록 관리 기능의 가치가 커진다. 윈도우가 제한되면 에이전트는 코드 수정이나 검증에 도달하기 전에 컨텍스트 오버플로로 종료될 가능성이 높아진다. 컨텍스트 관리의 주요 효과는 에이전트의 행동 자체를 바꾸는 것이 아니라 실행을 계속 이어가도록 하는 데 있다. 윈도우가 충분히 커지면 정확도 향상 폭은 줄어든다.
- 규칙 기반 생략을 먼저 적용하는 방식이 효율적이다. 가치가 낮은 내용을 규칙으로 먼저 제거하거나 생략한 뒤 필요한 부분만 LLM으로 요약하는 전략이 전반적으로 가장 효율적이었다. 생략된 내용을 다시 복구할 수 있게 만드는 장치는 복잡성을 높였지만, 모델이 거의 사용하지 않았고 정확도 개선도 가져오지 못했다.
- 계획의 역할은 모델 능력에 따라 달라진다. 약한 모델에서는 계획이 실행 궤적을 유지하고 코드 편집 단계까지 도달하게 만드는 정확도 보조 장치로 작동했다. 다만 추가 비용이 발생한다. 강한 모델에서는 정확도 변화가 크지 않았고, 편집 이후의 불필요한 반복 검증을 줄여 비용을 낮추는 효과가 중심이었다.
- 도구 인터페이스는 모델에 맞춰야 한다. Bash 사용 능력이 약한 모델은 사전 정의된 도구를 사용할 때 복잡한 셸 명령에 덜 의존하며 성능이 좋아졌다. 반대로 Bash에 능숙한 모델은 Bash만 제공되는 인터페이스에서도 효과적으로 작업했고, 특히 명령줄 중심 과제에서 상당히 낮은 비용을 보였다. 도구를 많이 제공하는 것이 항상 더 나은 선택은 아니다.
의미와 영향
이 연구가 주는 실무적 메시지는 Harness를 모든 모델에 동일하게 적용하는 템플릿이 아니라, 모델과 예산에 맞춰 조정되는 계층으로 봐야 한다는 것이다. 시스템을 설계할 때는 모델의 Bash 숙련도, 작업이 명령줄 중심인지 여부, 컨텍스트 예산의 제약 정도를 먼저 확인할 필요가 있다. 그 결과에 따라 계획 모듈, 사전 정의 도구, 요약 기능의 사용 여부를 결정할 수 있다.
또한 Harness 평가는 성공률만으로 충분하지 않다. 비용, 컨텍스트 오버플로에 따른 중단, 실행 궤적의 길이와 중단 지점을 함께 기록해야 어떤 기능이 실제 문제 해결을 개선했는지 판단할 수 있다. 이 연구는 모든 상황에 적용되는 단일 최적 구성을 제시하지 않는다. 대신 모델 능력과 작업 구조, 실시간 컨텍스트 압력에 따라 Harness가 전략을 전환하는 방향이 앞으로 중요해질 수 있음을 보여준다.
댓글
로그인 상태 확인 중…
댓글 불러오는 중…