행동 하네스가 저비용 코딩 모델의 성공률을 3할에서 10할로 끌어올린다

martinfowler18일 전조회 3

마틴 파울러 사이트의 'Exploring Gen AI' 연재에 실린 Naresh Jain의 실험은 코딩 에이전트에 '행동 하네스(behavioral harness)'를 씌웠을 때와 그렇지 않았을 때를 같은 과제로 비교한다. 결론은 모델 등급에 따라 하네스의 값어치가 정반대로 갈린다는 것이다. 프런티어 모델에게는 순수한 오버헤드였지만, 비용을 낮춘 모델에게는 성공률 자체를 바꾸는 장치였다.

실험 과제는 상품 탐색용 백엔드-포-프런트엔드(BFF) 서비스 하나였다. 소비자용 HTTP API를 노출하고, 들어오는 요청과 다운스트림 응답을 검증하고, Order API를 호출한다. 가용성 검색이 성공하면 반환된 상품 중 첫 번째 것만 Kafka로 발행해야 한다. 여기에 타임아웃된 상품 생성은 202와 폴링용 링크 헤더를 가진 지연 요청으로 바뀌고, 일시적 검색 실패는 복구 가능 시점을 담은 429로, 의존 서비스 불가나 이벤트 발행 실패는 503으로, 필터를 어긴 성공 응답은 502로 처리해야 한다. 단순 CRUD가 아니라 HTTP 시맨틱과 비동기 이벤트, 스키마 경계, 장애 허용 정책을 동시에 다루는 작업이다.

각 모델은 하네스 유무 두 조건에서 각각 10회씩 서비스를 만들었고, 완성된 결과물은 178개의 자동 인수 테스트로 평가됐다. 개발 루프와 평가 루프는 분리되어 있었고, 하네스는 평가 스위트의 정답에 접근할 수 없었다.

프런티어 모델인 GPT-6 Sol은 양쪽 조건 모두 10회 전부 통과했다. 차이는 효율뿐이었다. 하네스를 쓴 쪽은 평균 11,331,970 토큰과 19분 53초, 약 2.679달러가 들었고, 쓰지 않은 쪽은 1,076,371 토큰과 6분 51초, 약 0.406달러였다. 토큰은 약 10.5배, 시간은 약 3배, 비용은 약 7배로 늘었지만 최종 결과는 같았다. Claude Sonnet 4.6, Claude Opus 4.6, Gemini 3.8 Flash도 낮은 추론 노력 설정에서 하네스 없이 첫 시도에 과제를 완수했다.

반전은 비용 최적화 모델인 GPT-6 Luna에서 나왔다. 하네스 없이 10회 중 3회만 성공했지만, 하네스를 붙이자 10회 전부 성공했다. 하네스를 쓴 Luna는 실행당 0.273달러로, 같은 10할 신뢰도를 보인 GPT-6 Sol의 0.406달러보다 33% 저렴했다. 저자 본인도 하네스가 토큰을 아끼고 헛수고를 막아줄 것이라 기대했다가 이 결과에 놀랐다고 적었다.

하네스의 개념 틀은 Birgitta Böckeler의 구분을 빌린다. 하네스는 '가이드'와 '센서'의 결합이다. 가이드는 에이전트가 어긋날 지점을 미리 짚어 첫 시도에 맞을 확률을 높이고, 센서는 행동 이후의 결과를 관찰해 스스로 고칠 수 있는 피드백을 준다. 결정적 도구가 실행하는 계산적 통제와 모델의 해석에 기대는 추론적 통제가 함께 들어갔고, 이번 구성에서는 정답 판정을 LLM에 맡기지 않고 계약 준수 검사와 API 테스트가 그 역할을 했다.

구체적으로 가이드에는 BFF와 Order API를 기술한 OpenAPI 명세, Kafka를 다룬 AsyncAPI 명세, 그리고 다운스트림 타임아웃·잘못된 페이로드·필터 위반·재시도 시퀀스·Kafka 이벤트 확인을 담은 요청-응답 예시가 포함됐다. API 개발 스킬이 의존성 시뮬레이션과 행동 검증, 실패 진단 방법을 안내했고, 에이전트 플러그인이 스킬과 MCP 도구를 공급했다. 센서 쪽은 계약 적합성 검사, HTTP 응답값 검증, 다운스트림 목 호출과 Kafka 발행 같은 관찰 가능한 부수 효과 확인을 수행하고 그 결과를 CTRF 리포트와 API 커버리지 리포트로 되돌려줬다. 헬퍼 스크립트는 컴포넌트 매핑 문서와 검증 증거 기록, 빌드·실행·테스트 명령을 스캐폴딩했다.

실무적으로 이 실험은 모델 선택과 하네스 투자를 같은 예산 항목으로 놓고 보게 만든다. 프런티어 모델을 이미 쓰고 있다면 하네스는 결과를 바꾸지 않으면서 토큰과 시간만 몇 배로 늘리는 비용일 수 있다. 반대로 값싼 모델로 비용을 줄이려는 팀에게는, 명세와 예시, 결정적 검증 피드백을 묶은 하네스가 신뢰도를 사는 값이 될 수 있다. 특히 계약을 기계가 읽을 수 있는 형태로 유지하는 작업이 그대로 에이전트의 실행 가능한 주의력으로 전환된다는 점이 핵심이다.

다만 저자는 이번 과제가 하네스 없는 에이전트에게도 유리한 출발점이었다고 못 박는다. 브리프가 기능 요구사항은 물론 아키텍처와 기술 제약, 외부 인터페이스 설명, 응답 형태, 실패 동작까지 유난히 상세하게 적혀 있었다. 브리프가 덜 완전할 때 결과가 어떻게 달라지는지는 아직 확인되지 않았다.