에이전트 Harness의 구조
에이전트 Harness는 모델을 둘러싼 시스템 인프라로, 파일시스템·도구·메모리·오케스트레이션을 제공한다.
Agent = Model + Harness. 모델이 아닌 모든 것이 Harness다. 원시 모델은 텍스트를 입출력할 뿐이지만, Harness가 상태·도구 실행·피드백 루프·제약 조건을 제공하면서 실제 작업을 수행하는 에이전트가 된다.
Harness는 다음을 포함한다:
- 시스템 프롬프트, 도구, 스킬, MCP 서버
- 번들 인프라 (파일시스템, 샌드박스, 브라우저)
- 오케스트레이션 로직 (서브에이전트 생성, 핸드오프, 모델 라우팅)
- Hooks/미들웨어 (컴팩션, continuation, lint 체크)
핵심 구성 요소는 원하는 에이전트 동작에서 역산된다:
파일시스템: 모델은 컨텍스트 윈도우 안의 지식만 다룰 수 있다. Harness는 파일시스템 추상화와 도구를 제공해 에이전트가 데이터를 읽고, 중간 결과를 저장하고, 세션을 넘어 작업을 유지하도록 한다. Git은 버전 관리를 추가해 롤백과 브랜치 실험을 가능하게 한다.
Bash + 코드 실행: 사전 정의된 도구만으로는 자율적 문제 해결이 불가능하다. Bash와 코드 실행은 범용 도구로, 에이전트가 필요한 도구를 즉석에서 코드로 만들 수 있게 한다. 이는 "모델에게 컴퓨터를 주는" 큰 진전이다.
샌드박스: 에이전트 생성 코드를 로컬에서 실행하는 것은 위험하다. 샌드박스는 안전하고 격리된 실행 환경을 제공하며, 필요에 따라 생성·확장·폐기할 수 있다. 언어 런타임, git, 테스트 도구, 브라우저 등 기본 도구가 사전 설치되어 에이전트가 코드를 작성·실행·검증하는 self-verification 루프를 만든다.
메모리 & 검색: 모델은 가중치와 현재 컨텍스트 외 지식이 없다. Harness는 AGENTS.md 같은 메모리 파일을 컨텍스트에 주입해 세션 간 지식을 유지한다(continual learning). Web Search와 Context7 같은 MCP 도구는 지식 컷오프 이후 최신 정보에 접근하게 한다.
Context Rot 대응: 컨텍스트 윈도우가 차면 모델 성능이 저하된다. Harness는 컨텍스트 엔지니어링의 전달 메커니즘이다. Compaction은 컨텍스트가 가득 차면 기존 내용을 요약·오프로드해 작업을 계속하게 한다. Tool call offloading은 큰 도구 출력의 헤드/테일만 남기고 전체는 파일시스템에 저장한다. Skills는 progressive disclosure로 너무 많은 도구가 시작 시 로드되는 것을 방지한다.
장기 자율 실행: 복잡한 작업을 자율적·정확하게 완료하려면 계획, 관찰, 검증이 필요하다. Ralph Loop 패턴은 모델의 종료 시도를 가로채 원래 프롬프트를 깨끗한 컨텍스트에 재주입해 작업을 강제 계속한다. 파일시스템이 세션 간 상태를 추적한다. Planning은 목표를 단계로 분해하고, self-verification은 각 단계 후 정확성을 검증해 피드백 신호를 만든다.
미래: Claude Code와 Codex 같은 제품은 모델과 Harness를 함께 post-training한다. 유용한 프리미티브가 Harness에 추가되고, 다음 세대 모델 훈련 시 사용되는 피드백 루프가 형성된다. 이는 모델을 특정 Harness에 더 능숙하게 만들지만 과적합을 유발할 수 있다. Codex-5.3의 apply_patch 도구 로직 변경 시 성능 저하가 사례다. Terminal Bench 2.0에서 Opus 4.6은 Harness마다 점수가 크게 다르다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.