Anthropic Engineering — 2026.03.24

Harness Design for Long-Running Application Development

Prithvi Rajasekaran Anthropic Labs Summarized 2026.03.28

GAN에서 영감받은 Multi-Agent 아키텍처로 장시간 자율 코딩 에이전트의 품질 한계를 돌파한 Anthropic의 최신 엔지니어링 접근법을 정리합니다.

SCROLL
01

왜 단순한 접근은
실패하는가?

장시간 에이전트 코딩에서 반복적으로 관찰되는 두 가지 구조적 실패 모드:

Context Coherence 상실

컨텍스트 윈도우가 차면서 모델이 일관성을 잃음. "Context Anxiety"로 작업을 조기 종료하려는 경향이 발생. Compaction(요약 후 계속)만으로는 해결 불가 — Context Reset(새 에이전트에 상태 핸드오프)이 Sonnet 4.5에서 필수적이었음.

Self-Evaluation 편향

자기 작업을 평가할 때 객관성 부족. 품질이 낮아도 "잘 됐다"고 자신 있게 판단. 디자인처럼 주관적인 태스크에서 특히 심각하고, 검증 가능한 코딩 태스크에서도 판단 오류 발생.

02

GAN에서 영감받은
Multi-Agent 구조

⚡

GENERATOR

코드/디자인 생성
개선된 출력 반복

출력 전달→→→
🔍

EVALUATOR

Playwright로 실제 테스트
구체적 피드백 생성

피드백 반환←←←
핵심 인사이트: 자기 비판을 강화하는 것보다, 별도의 평가자를 회의적(skeptical)으로 튜닝하는 것이 훨씬 더 실현 가능하다.
03

프론트엔드 디자인
4가지 평가 기준

"이 디자인이 아름다운가?"는 일관되게 답하기 어렵지만,
"우리의 디자인 원칙을 따르는가?"는 구체적으로 평가할 수 있다.

Design Quality

색상, 타이포, 레이아웃이 하나의 정체성과 분위기를 이루는가? 부품의 조합이 아닌, 하나의 완결된 전체(coherent whole)인가?

Originality

의도적인 창작 결정이 보이는가? 템플릿·라이브러리 기본값·AI 생성 패턴(보라색 그라데이션 + 흰색 카드 등)이 아닌가?

Craft

타이포그래피 계층, 간격 일관성, 색상 조화, 대비율 등 기술적 완성도. 모델이 기본적으로 잘 수행하는 영역.

Functionality

미학과 무관한 사용성. 유저가 인터페이스의 목적을 이해하고, 기본 동작을 완료할 수 있는가?

✦ "museum quality" 같은 표현만으로도 디자인 방향이 수렴 — 평가 기준의 언어 자체가 출력을 형성한다.

04

Full-Stack 코딩을 위한
3-Agent 아키텍처

📋

PLANNER

1~4문장 프롬프트를 상세 프로덕트 스펙으로 확장. 구현 세부사항은 지정하지 않음 (cascade error 방지). AI 기능 통합 기회를 자동 탐색.

→
🔨

GENERATOR

스프린트 단위로 기능 구현 (React + Vite + FastAPI + SQLite). 각 스프린트 시작 전 Evaluator와 "Sprint Contract"를 협상하여 완료 기준 합의.

→
🧪

EVALUATOR

Playwright MCP로 실제 앱을 클릭하며 테스트. 버그·기능 누락을 구체적으로 보고. 기준 미달 시 Fail 처리 + 상세 피드백 반환.

Sprint Contract: 코드 작성 전에 Generator와 Evaluator가 "완료(Done)"의 정의를 협상. 높은 수준의 스펙과 테스트 가능한 구현 사이의 간극을 구조적으로 해결.

05

Solo vs. Full Harness
실험 결과

프롬프트: "Create a 2D retro game maker with level editor, sprite editor, entity behaviors, and playable test mode."

Solo Agent
$9
20분 소요
  • ✕ 기본 에디터만 존재, 기능 범위 제한적
  • ✕ 레이아웃 공간 낭비, 고정 높이 패널
  • ✕ 워크플로우 안내 없음 (순서 파악 불가)
  • ✕ 게임 실행 자체가 안 됨 — 핵심 기능 깨짐
Full Harness
$200
6시간 소요 · 16개 기능 · 10 스프린트
  • ✓ 풀 뷰포트 캔버스, 일관된 시각적 정체성
  • ✓ 더 풍부한 스프라이트 에디터, 줌 컨트롤
  • ✓ AI 통합: Claude로 스프라이트/레벨 자동 생성
  • ✓ 실제로 플레이 가능한 게임 완성
06

V2: Opus 4.6 대응
하네스 진화

변경 사항유형근거
Sprint 구조 제거RemovedOpus 4.6가 장시간 일관된 작업 가능 → 분할 불필요
Context Reset 제거RemovedOpus 4.6의 long-context 능력 향상 + 자동 Compaction 충분
Evaluator → 빌드 후 단일 패스Simplified모델 능력 향상 → 매 스프린트 QA 불필요, 최종 QA만으로 충분
AI Agent 기능 강화 프롬프팅Added생성된 앱 내부에 Claude Agent를 Tool-use 패턴으로 통합

V2 결과: 브라우저 DAW (Digital Audio Workstation)

프롬프트: "Build a fully featured DAW in the browser using the Web Audio API."

Planner
$0.46
Build R1
2h 7m
$71.08
QA R1
$3.24
Build R2
1h 2m
$36.89
QA R2
$3.09
Build R3
$5.88
QA R3
$4.06
TOTAL
3h 50m
$124.70

Generator가 Context Reset 없이 2시간 이상 일관되게 코딩 수행. QA는 여전히 stub-only 기능, 미구현 인터랙션 등 실질적 갭을 포착.

07

핵심 교훈

01

모든 하네스 구성요소는 가정이다

하네스의 각 구성요소는 "모델이 혼자 못 하는 것"에 대한 가정을 인코딩. 새 모델이 나올 때마다 그 가정을 재검증하고, 불필요하면 제거, 새로운 가능성은 추가.

02

외부 평가가 자기 평가를 이긴다

별도의 Evaluator를 만들고 회의적(skeptical)으로 튜닝하는 것이 Generator를 자기 비판적으로 만드는 것보다 훨씬 효과적.

03

단순함부터 시작하라

"가장 단순한 솔루션부터, 필요할 때만 복잡성 추가." Anthropic의 Building Effective Agents 원칙과 일치.

04

하네스 설계 공간은 이동한다

모델이 좋아져도 공간은 줄어들지 않고 이동(shift)할 뿐. AI 엔지니어의 역할은 그 다음 유효한 조합을 찾는 것.

05

평가 기준의 언어가 곧 품질 설계

"museum quality" 같은 표현만으로도 출력 방향이 수렴. 평가 기준을 어떤 언어로 표현하느냐가 결과를 직접 형성한다.

08

기술 스택 참조

Claude Agent SDK Opus 4.5 → 4.6 React Vite FastAPI SQLite → PostgreSQL Playwright MCP Git HTML / CSS / JS Frontend Design Skill