하네스 엔지니어링 Vol.3 — 측정할 수 있어야, 개선할 수 있다
평가 지표를 수치화하고, 3명의 독립 심사위원이 채점하면 — 어디가 부족한지, 얼마나 나아졌는지가 숫자로 보인다.
01 — Vol.1-2 리캡: 행동을 제한하고, 역할을 나눴다
1편에서는 Hook으로 "뭘 할 수 있는지"를, 2편에서는 서브에이전트로 "누가 하는지"를 제어했어요.
| 편 | 하네스 메커니즘 | 핵심 |
|---|---|---|
| Vol.1 | Hook exit code | 행동 제한 — outline.md 없이 draft.md 작성하면 exit 2로 차단 |
| Vol.2 | Sub-agent tools/model | 역할 분리 — researcher는 WebSearch만, creator는 Write만 |
그런데 Vol.2의 editor는 뭘 기준으로 고쳤을까요?
감이에요. "이 문장이 좀 어색한 것 같으니까 고치자" — 이건 하네스가 아니라 그냥 판단이에요. 3편에서는 이 "감"을 **객관적 채점 기준(rubric)**으로 바꿉니다.
02 — 왜 평가자를 분리하는가
Anthropic 엔지니어링 팀의 실험 결과, AI 에이전트가 자기 작업물을 평가하면 품질이 뻔히 부족해도 "잘했다"고 칭찬하는 경향이 확인됐어요.
자기 채점 (Generator = Evaluator)
글을 쓴 에이전트가 자기 글을 평가하면, "합니다 10번 반복? 문체 일관성 좋습니다!" 이렇게 나와요. 자기 작업에 대한 편향이 작용하거든요.
분리 채점 (Generator ≠ Evaluator)
별도의 평가 에이전트가 채점하면, "합니다 10번 반복 → 문어체 위반 10회 → 3/5점 fail" 이렇게 객관적으로 나와요. 회의적인 평가자를 만드는 게 자기비판적인 생성자를 만드는 것보다 훨씬 쉽거든요.
여기에 한 가지를 더 합니다 — 평가자를 3명으로 분리해서 교차 검증까지 거치면, 단일 평가자의 편향까지 상쇄돼요.
03 — 채점 기준을 설계하다
평가자가 있어도 "그냥 좋은 것 같아요"라고 답하면 소용없어요. 구체적인 rubric — 무엇을, 어떻게 측정하고, 몇 점 이하면 fail인지 — 이 있어야 해요.
집계 방식 3가지
| 방식 | 설명 |
|---|---|
| A. 점수 합산 | 각 평가자 5점 만점, 총 15점 중 threshold 이상이면 통과 |
| B. 전원 통과제 | 3명 모두 4/5점 이상이어야 통과. 하나라도 미달이면 재작성. (이번 편 적용) |
| C. 다수결 | 3명 중 2명 이상 pass면 통과 |
3명의 평가자와 Rubric
| 평가자 | 전문 영역 | 도구 | 검증 방식 |
|---|---|---|---|
| fact-checker | 팩트 정확성 | Read, Grep | 원본 자료와 Grep 대조 (기계적) |
| style-auditor | 문체 품질 | Read, Grep | 패턴 카운트 (기계적) |
| structure-reviewer | 구조/가독성 | Read | 구조적 판단 (판단 기반) |
도구가 다르면 검증 방식 자체가 달라져요. fact-checker와 style-auditor는 Grep으로 패턴을 세는 기계적 검증이라 감이 낄 여지가 없어요. structure-reviewer만 판단 기반이지만, 3명 중 2명이 기계적이니까 전체 신뢰도가 확보돼요.
04 — 3명의 Evaluator 설정하기
Vol.2에서 배운 .claude/agents/ 파일에 평가자 3명을 추가합니다. 기존 researcher, creator, editor는 그대로 재활용해요.
.claude/agents/
├── researcher.md ← Vol.2 재활용
├── creator.md ← Vol.2 재활용
├── editor.md ← Vol.2 재활용
├── fact-checker.md ← NEW
├── style-auditor.md ← NEW
└── structure-reviewer.md ← NEW
fact-checker.md
---
name: fact-checker
description: 원본 조사자료와 본문을 대조하여 팩트 정확성을 검증
tools: Read, Grep
model: haiku
---
채점 기준: 팩트 오류 0개 = 5점, 1개 = 4점, 2개 이상 = fail
style-auditor.md
---
name: style-auditor
description: 문체 품질을 기계적 패턴 카운트로 검증
tools: Read, Grep
model: haiku
---
검증 패턴: 문어체 반복(합니다/됩니다), 콜론+목록, AI 투 표현(다양한/혁신적인), 동일 종결어미 연속 3문장 반복
structure-reviewer.md
---
name: structure-reviewer
description: 글의 구조와 가독성을 판단 기반으로 검증
tools: Read
model: sonnet
---
필수 검증: 순위 산정 기준 명시 (없으면 즉시 fail), 제품별 장단점 균형 (단점 누락 2개 이상이면 fail)
fact-checker와 style-auditor는 model: haiku로 가볍고 빠르게, structure-reviewer는 판단이 필요해서 model: sonnet으로 설정해요.
05 — 1차 평가 워크스루
researcher → creator를 거쳐 초고가 완성되면, 3명의 evaluator가 동시에(병렬로) 채점합니다. 서로의 점수는 볼 수 없어요 — 독립 채점이 핵심이니까요.
1차 점수 요약
| 평가자 | 점수 | 판정 | 감점 사유 |
|---|---|---|---|
| fact-checker | 4/5 | pass | 저장장치 옵션 1건 누락 |
| style-auditor | 5/5 | pass | — |
| structure-reviewer | 4/5 | pass | 순위 기준 미명시 |
전원 4점 이상이라 기술적으로는 통과(pass)예요. 하지만 만점이 아니라는 건 개선 여지가 있다는 뜻이에요. 오케스트레이터는 감점 사항을 수집해서 evaluation-report.md에 기록하고, editor에게 수정을 요청합니다.
06 — 수정하고, 다시 채점하다
evaluation-report.md의 감점 사항을 editor에게 전달하고, 수정 후 다시 3명이 동시에 채점합니다.
editor 수정 내용:
- 수정 1: Beelink 저장장치 "256GB
1TB" → "256GB512GB/1TB"로 중간 옵션 추가 - 수정 2: 비교표 위에 순위 산정 기준 문장 추가
1차 vs 2차 점수 비교
| 평가자 | 1차 | 2차 | 변화 |
|---|---|---|---|
| fact-checker | 4/5 | 5/5 | +1 (저장장치 옵션 수정) |
| style-auditor | 5/5 | 5/5 | 유지 |
| structure-reviewer | 4/5 | 5/5 | +1 (순위 기준 추가) |
| 평균 | 4.3/5 | 5.0/5 | +0.7 |
1차에서 잡힌 2건의 감점이 정확히 수정되고, 수정 과정에서 기존 문체와 구조의 장점은 훼손되지 않았어요. 이게 "평가 → 피드백 → 수정 → 재평가" 루프의 힘이에요.
07 — 전체 오케스트레이션 흐름
[사용자] "미니PC 추천 글 써줘"
↓
[researcher] 웹 조사 → research-notes.md
↓
[creator] 초고 작성 → mini-pc-top5.md
↓
[evaluator 3명 병렬] 1차 채점
├─ fact-checker: 4/5
├─ style-auditor: 5/5
└─ structure-reviewer: 4/5
↓
[editor] 피드백 기반 수정
↓
[evaluator 3명 병렬] 2차 채점
├─ fact-checker: 5/5
├─ style-auditor: 5/5
└─ structure-reviewer: 5/5
↓
전원 만점 통과
하네스는 층층이 쌓인다
Vol.1에서 Hook으로 행동을 제한하고, Vol.2에서 서브에이전트로 역할을 분리하고, Vol.3에서 평가자 분리로 품질을 객관화했어요.
이 세 가지를 조합하면 — 누가, 무엇을, 얼마나 잘 했는지를 모두 인프라 수준에서 강제하는 프로덕션 하네스가 됩니다.
행동 차단(Hook) × 역할 분리(Sub-agent) × 평가 객관화(Evaluator) = 프로덕션 하네스
인터랙티브 가이드
시리즈 링크
- Vol.1 — Hook으로 행동 제한하기
- Vol.2 — 서브에이전트로 역할 분리하기
- Vol.3 — 평가자 분리와 객관적 채점 (현재)
