비밀은 모델이 아니다. 하네스다.
Source: Dev.to
Introduction
AI 에이전트가 코드를 작성하도록 하는 것은 이제 새로운 일이 아니다. 진짜 도전은 모델이 얼마나 똑똑한가가 아니라, 에이전트가 견고하고 장기적으로 실행될 수 있는 환경을 갖추지 못했다는 점이다.
Harness Engineering
Harness Engineering은 이러한 환경을 구축하는 데 초점을 맞춘 분야이다.
- Anthropic은 2025년 11월에 “장기 실행 에이전트를 위한 효과적인 하네스”에 대해 블로그 글을 발표했다. link
- OpenAI도 2026년 2월에 유사한 글을 공개했다. link
OpenAI는 7명으로 구성된 팀이 5개월 동안 1,500개의 풀 리퀘스트에 걸쳐 1 백만 줄의 코드를 생성했으며, 손으로 한 줄도 작성하지 않았다고 자체 보고했다.
X(트위터)에서 “2026년의 10배 스킬은 Evaluation Engineering이다”라는 게시물이 바이럴되면서, “코드 작성”에서 “에이전트가 좋은 코드를 작성하도록 환경을 구축하는” 방향으로의 전환이 강조되었다.
Agent Harness
Agent Harness는 실행을 담당한다:
- 환경 설정을 자동화한다.
- 진행 상황 파일과 Git을 사용해 세션 간 진행 상황을 전달한다.
- 한 번에 하나의 기능을 구축한다.
- 엔드‑투‑엔드(E2E) 테스트를 자동으로 실행한다.
Evaluation Harness
Evaluation Harness는 AI 출력에 대한 정량적 점수를 제공한다:
- EleutherAI는 60개 이상의 벤치마크를 유지한다.
- Inspect AI는 100개 이상의 사전 구축된 평가를 제공한다.
- LLM‑as‑a‑judge는 AI가 AI를 평가하도록 한다.
- 이러한 평가들은 CI/CD 게이트와 안전성 테스트(예: MLCommons AILuminate의 59,624개 테스트 프롬프트)와 통합된다.
Anthropic’s Two‑Step System
- Setup Agent가
init.sh와 JSON 형식의 기능 목록을 만든다. - Coding Agent가 각 기능을 반복한다:
- 코드를 작성한다.
- 테스트를 작성한다.
- 변경 사항을 커밋한다.
- 반복한다.
진행 상황은 claude-progress.txt와 Git 히스토리를 통해 지속된다.
리포지토리에는 전체 코드베이스에 대한 규칙을 정의한 AGENTS.md(≈ 100줄)가 포함되어 있다. 맞춤형 린터와 CI가 이 규칙들을 자동으로 강제하여, 프롬프트에 제약을 삽입할 필요가 없게 만든다.
OpenAI’s Approach
OpenAI의 환경은 단일 리포지토리에 맞게 고도로 맞춤화되어 있다. 주요 특징은 다음과 같다:
- 리포지토리 CI 파이프라인과의 긴밀한 통합.
- PR 및 테스트 스위트의 자동 생성.
하나의 프로젝트에 특화되어 있기 때문에, 다른 코드베이스에 그대로 적용하려면 상당한 재구성이 필요하다.
Comparison and Limitations
| Aspect | Anthropic | OpenAI |
|---|---|---|
| Target domain | 풀‑스택 웹 개발 | 단일, 고도로 맞춤화된 리포지토리 |
| Portability | 보다 일반적이지만 여전히 웹 중심 | 낮음 – 직접 재사용이 어려움 |
| Scalability | 작업을 작은 단계로 나누고 리포지토리 전반에 규칙 적용 | 프로젝트별 맞춤 도구에 의존 |
| Untested areas | 과학 연구, 금융 모델링 | 원래 리포지토리 외의 다른 도메인 |
두 회사 모두 동일한 핵심 원칙에 도달한다:
- 지식을 리포지토리에 저장한다.
- 툴링(린터, CI)으로 규칙을 강제한다.
- 작업을 작고 추적 가능한 단계로 분해한다.
Conclusion
모델은 계속해서 더 똑똑해지겠지만, 가장 진보된 모델이라 할지라도 잘 설계된 환경 없이는 장기적인 개발을 지속할 수 없다. 결정적인 요소는 모델 선택이 아니라, 그 모델을 지원하는 하네스를 어떻게 구축하느냐이다.
나는 AI 에이전트 설계, 스킬, 컨텍스트 엔지니어링을 실제 팀과 워크플로에 AI를 통합하는 관점에서 다룬다. 분석은 1차 자료에 기반한다.
Follow for more: