Harness Engineering: AI 에이전트를 감싸는 스캐폴딩 설계라는 학문
목차
개요
Harness engineering은 AI 에이전트를 둘러싸고 실제 작업에서 성공 또는 실패를 결정짓는 스캐폴딩(scaffolding)을 설계하는 학문이다. 여기서 스캐폴딩은 컨텍스트 전달, 도구 인터페이스, 계획 산출물, 검증 루프, 메모리 시스템, 샌드박스를 포함한다. 이 글은 특정 저장소나 논문을 나열하기보다, harness engineering의 정의와 핵심 원리, 그리고 하네스를 구성하는 주요 구성 요소를 카테고리별로 정리한다. 같은 모델을 그대로 두고 하네스만 바꾸어도 에이전트의 실측 성능이 크게 달라진다는 점이 이 분야의 출발점이다.
배경: 모델이 아니라 하네스
이 분야의 초점은 모델 그 자체가 아니라 모델을 감싸는 하네스에 있다. 모든 하네스 구성 요소는 “모델이 특정 작업을 혼자서는 할 수 없다”는 가정을 전제로 존재한다. 따라서 최고의 하네스는 모델이 개선되면 그 구성 요소가 결국 필요 없어질 것임을 알고 설계된다. Anthropic의 Harness Design 글과 LangChain의 The Anatomy of an Agent Harness 등에서는 반복되는 통찰이 하나 등장한다. 특정 하네스로 훈련된 모델은 그 설계에 과적합될 수 있다는 공진화 위험이다. 즉 하네스는 임시 발판이면서 동시에 모델의 학습 궤적을 왜곡할 수도 있는 양면적 장치다.
핵심 내용
하네스 구성 요소 카테고리
하네스는 단일 기법이 아니라 여러 구성 요소의 집합이다. 아래 표는 주요 카테고리와 각 카테고리가 다루는 핵심 문제를 정리한 것이다.
| 카테고리 | 다루는 문제 |
|---|---|
| 기초(Foundations) | harness engineering의 정의와 중요성. Anthropic의 Building Effective Agents, Martin Fowler의 세 시스템(컨텍스트 엔지니어링, 아키텍처 제약, 엔트로피 관리)과 humans on the loop 프레임, LangChain의 다섯 기본 요소(파일시스템, 코드 실행, 샌드박스, 메모리, 컨텍스트 관리) |
| 에이전트 루프 | ReAct의 Thought/Action/Observation 루프가 거의 모든 하네스의 기반. LangGraph는 루프를 타입 지정 상태, 조건부 엣지, 체크포인팅을 갖춘 방향성 그래프로 모델링 |
| 계획 및 작업 분해 | Plan-and-Execute로 플래너 LLM과 실행자 에이전트를 분리. 장기 작업을 위한 Plan.md, Implement.md 아티팩트와 다중 에이전트 토폴로지 선택 |
| 컨텍스트 전달 및 압축 | 컨텍스트 윈도우를 유한하고 선별된 리소스로 관리. Compaction, 프롬프트 캐싱, 심볼 인덱싱으로 활성 토큰 절감 |
| 도구 설계 | 명명, 스키마, 오류 표면이 곧 에이전트 UX. 도구 어노테이션(readOnlyHint, destructiveHint)을 권한 결정 입력으로 사용 |
| 스킬 및 MCP | Model Context Protocol이 도구와 데이터 소스 연결 표준. 스킬을 버전 관리되는 배포 아티팩트로 취급 |
| 권한 및 인가 | 프롬프트 수준 신뢰 대신 구조화된 권한. 최소 권한과 실행 전 결정론적 인가 |
| 메모리 및 상태 | 인컨텍스트, 외부, 절차적 메모리. MemGPT의 3계층(코어, 아카이브, 리콜)과 메모리 신선도, 무효화 문제 |
| 태스크 러너 및 오케스트레이션 | 큐잉, 병렬 실행, 진행 보고. 요약만 컨텍스트에 반환하는 병렬 실행 패턴 |
| 검증 및 CI 통합 | 하네스 루프 자체에 검증 내장. 능력 평가와 회귀 평가를 분리 |
| 관측 가능성 및 추적 | OpenTelemetry 기반 계측과 자체 호스팅 추적(Langfuse, Phoenix) |
| 디버깅 및 개발자 경험 | 인과 그래프 추적과 증거 기반 수리(패치-앤-프레이 지양) |
| 인간 참여 루프(HITL) | 승인 게이트, 변경하여 승인 패턴, 에스컬레이션 시점 판단 |
| 샌드박스 및 보안 | E2B의 Firecracker microVM, 간접 프롬프트 인젝션 방어, 커널 수준 격리(Landlock, seccomp) |
| 평가 및 벤치마크 | SWE-bench, tau-bench. 인프라 노이즈가 벤치마크 결과를 흔드는 문제 |
| 메타 하네스 | 하네스 자체를 최적화 대상으로. 자가 진화 스캐폴드와 하네스 교체를 통한 순위 개선 |
몇 가지 카테고리에서 등장하는 정량적 통찰은 하네스 설계의 효과를 구체적으로 보여준다. Anthropic의 Compaction은 100회 검색 평가에서 토큰을 84% 절감했다. 심볼 인덱싱은 전체 파일 대신 포인터를 탐색하게 하여 활성 토큰을 대폭 줄인다. MCP로 도구를 코드 실행 형태로 호출하면 도구 호출 토큰 오버헤드를 최대 98.7%까지 절감할 수 있다. 도구 설계에서는 private data access, untrusted content, external communication이 결합되는 “치명적 삼중주”를 위험 지점으로 지목한다. 태스크 오케스트레이션 사례로는 16개의 병렬 Claude로 C 컴파일러를 구축하고, git으로 충돌을 해결하며 요약만 컨텍스트에 반환한 방식이 있다.
대표 통찰과 실증 사례
하네스 변경만으로 에이전트 성능이 얼마나 달라지는지를 보여주는 대표 사례를 소수만 정리한다.
| 사례 | 변경 요소 | 결과 |
|---|---|---|
| LangChain | 모델 교체 없이 하네스만 변경 | Terminal Bench 2.0에서 30위에서 5위로 상승 |
| deepset | 모델 교체 없이 하네스만 변경 | 에이전트 순위 20단계 이상 상승 |
| LangChain 스킬 평가 | 큐레이션된 스킬 적용 및 12개 이하로 통합 | 작업 완료율 82% 달성(스킬 미사용 시 9%) |
| statewright | 도구 공간 축소 | SWE-bench 하위 집합 통과율 2/10에서 10/10 |
| Live-SWE-agent | 자가 진화 스캐폴드 | SWE-bench Verified 77.4% 달성 |
이 사례들은 공통적으로 모델을 고정한 채 하네스만 조정했다는 점에서 의미가 있다. 평가의 안정성 자체도 하네스의 관심사다. 인프라 노이즈만으로 벤치마크가 6%p 이상 변동할 수 있고, 이 폭은 모델 간 차이를 넘어설 수도 있다. Anthropic의 2026 Agentic Coding Trends 역시 하네스 설정만으로 벤치마크가 5%p 이상 변동함을 보고한다. 따라서 능력 평가(낮은 통과율을 개선하는 목표)와 회귀 평가(거의 100%를 보호하는 목표)를 분리하는 설계가 강조된다.
의미와 시사점
harness engineering은 에이전트 성능을 모델의 문제가 아니라 시스템 설계의 문제로 재정의한다. 같은 모델이라도 컨텍스트 압축, 도구 공간 축소, 스킬 큐레이션, 검증 루프를 어떻게 배치하느냐에 따라 결과가 달라진다. OpenAI가 이를 하나의 학문 분야로 정립하려는 흐름 역시 이 관점을 뒷받침한다. 동시에 하네스는 영속적 해법이 아니라 임시 발판이라는 점을 잊지 말아야 한다. 모델이 개선되면 일부 구성 요소는 필요 없어지고, 특정 하네스에 과적합된 모델은 공진화 위험에 노출된다. 결국 좋은 하네스는 지금 모델의 한계를 메우면서도, 사라질 것을 전제로 최소한으로 설계된 스캐폴딩이다.
결론
harness engineering은 AI 에이전트를 감싸는 스캐폴딩을 하나의 설계 학문으로 다룬다. 컨텍스트, 도구, 계획, 검증, 메모리, 샌드박스 같은 구성 요소는 각각 독립된 문제 영역을 가지며, 이들을 조합하는 방식이 에이전트의 성패를 좌우한다. 여러 실증 사례가 모델을 바꾸지 않고도 순위와 통과율을 크게 끌어올릴 수 있음을 보여준다. 그러나 하네스의 목표는 스스로를 불필요하게 만드는 것이며, 이 역설을 이해하는 것이 harness engineering의 핵심이다.