Harness Engineering vs Prompt Engineering
프롬프트를 잘 짜는 것과 실행 환경을 잘 짜는 것은 다르다
2023~2024년에는 프롬프트를 얼마나 잘 짜느냐가 AI 활용의 핵심이었다. 2025~2026년에는 이게 바뀌고 있다.
프롬프트 엔지니어링의 한계
프롬프트가 아무리 좋아도, 모델이 파일을 못 읽으면 코드 리뷰를 못 한다. 테스트를 실행할 수 없으면 코드가 맞는지 확인을 못 한다. 에러 메시지를 보고 재시도할 수 없으면 한 번에 맞춰야 한다.
프롬프트는 "지시"다. 하네스는 "능력"이다. 지시를 아무리 잘 해도 능력이 없으면 실행을 못 한다.
Harness Engineering이 결정하는 것들
도구 접근성 — 모델이 파일 시스템, 브라우저, API, 데이터베이스에 접근할 수 있는가?
피드백 루프 — 실행 결과를 보고 재시도할 수 있는가? 에러 메시지가 모델에게 전달되는가?
컨텍스트 관리 — 긴 작업 중에 어떤 정보를 유지하고 어떤 걸 버리는가?
가드레일 — 위험한 행동을 사전에 차단하는 메커니즘이 있는가?
오케스트레이션 — 여러 모델 호출을 어떤 순서로, 어떤 조건에서 실행하는가?
SWE-bench가 보여준 것
SWE-bench에서 같은 모델이 하네스에 따라 점수가 2~3배 차이 나는 건 이미 알려진 사실이다. Devin, Claude Code, Cursor, SWE-agent 전부 같은 기반 모델을 쓰지만 성능이 다르다. 차이는 하네스다.
프롬프트 엔지니어링이 불필요하다는 게 아니다. 프롬프트는 하네스의 한 구성 요소일 뿐, 전체가 아니라는 거다.
동작 흐름
Prompt Engineering — 모델에게 전달하는 지시(system prompt, few-shot, chain-of-thought)를 최적화
Harness Engineering — 모델이 실행되는 환경 전체(도구, 피드백 루프, 컨텍스트, 가드레일)를 설계
프롬프트는 하네스의 한 레이어 — 프롬프트만으로는 파일 읽기, 테스트 실행, 에러 재시도가 불가능
SWE-bench 결과가 증명 — 같은 모델, 다른 하네스, 2~3배 성능 차이