Claude Code Harness 아키텍처 해부 — AI 코딩 에이전트 제어를 위한 3-8-3 설계
3개 에이전트, 8개 스킬, 3개 훅으로 구성된 AI 코딩 에이전트 통제 구조
핵심 요약
- Main Orchestrator(판단) + Executor(실행) + Quality Agent(검증)의 3인 체제로 역할 분리
- 8개 스킬이 각각 "하지 마라" 제약 조건으로 AI의 확증 편향을 방지
- 3개 훅(Session-start, Pre-compact, Post-edit-check)이 Non-blocking으로 자동 검증 수행
배경
"제약이 없으면 AI는 확증 편향에 빠진다"는 관찰에서 출발했다. AI 코딩 에이전트가 자유롭게 동작하면 같은 실패를 반복하고, 검증 없이 완료를 선언한다. "하지 마라"가 "해라"보다 중요하다는 원칙으로, 검증을 매 단계마다 분산 배치하고 불필요한 컨텍스트를 제거해 환각을 줄이는 구조를 설계했다.
본문
3개 에이전트 체제
Main Orchestrator (Opus) — 요청의 모호성을 판단하고 라우팅한다. 단순 작업(1-2단계)과 복잡 작업(3단계 이상)을 분류한다.
Executor Agent (Sonnet) — 압축된 핸드오프 문서만 제공받아 실행한다. "동일 전략 3회 실패 시 강제 정지" 규칙이 적용된다.
Quality Agent (Sonnet) — 읽기 전용 권한으로 객관적 검증을 수행한다. 에러 4개 이상 발생 시 자동 호출된다.
8개 스킬 — 제약 조건으로서의 스킬
각 스킬은 "무엇을 해라"보다 "무엇을 하지 마라"에 초점을 맞춘다.
- Brainstorming — 단일 옵션 금지, 2-3개 대안 필수 제시
- Deep-Interview — 모호성 점수를 20% 이하로 떨어뜨릴 때까지 질문
- Writing-Plans — 2-5분 단위로 세분화된 실행 계획
- Verification — Build → Type Check → Lint → Test → Security → Diff 6단계 순차 검증
- Code-Review — CRITICAL/WARNING/INFO로 엄격히 분류
- Testing —
should_return_X_when_Y형식 강제, 4대 엣지 케이스 필수 - Git-Commit — 결정 맥락을 트레일러로 영구 기록
- Project-Doctor — 21개 항목 진단, 하드코딩된 API 키 검사
3개 훅 (Non-blocking)
- Session-start — 계획(plan.md)과 누적 교훈(lessons.md) 자동 주입
- Pre-compact — 컴팩션 전 핸드오프 스켈레톤 자동 생성
- Post-edit-check — 디버그 잔재와 API 키 검사
시행착오 / 주의사항
핵심은 검증을 한 곳에 몰아넣지 않는 것이다. 스킬 단위, 훅 단위, 에이전트 단위로 검증을 분산 배치해야 각 단계에서 문제를 조기에 잡을 수 있다. Executor에게 세션 히스토리 전체를 넘기지 않고 압축된 핸드오프 문서만 전달하는 것도, 불필요한 컨텍스트가 환각을 유발하는 문제를 해결하기 위한 판단이었다.
마무리
3-8-3 구조의 핵심은 "AI에게 자유를 주되, 어디에서 멈춰야 하는지를 명확히 정의하는 것"이다. 제약 조건이 곧 품질 보장 장치가 된다.
댓글
댓글 쓰기