14 KiB
자기평가 시스템 V3 - 이중삼중 검증 프레임워크
문제 진단 (V2의 한계)
현재 V2 시스템
✅/⚠️ 완성도: [X/Y]
✅/⚠️ 정확성: [OK/WARNING]
✅/⚠️ 톤: [Jarvis/ChatGPT]
✅/⚠️ 간결성: [X emojis]
💡 개선: [구체적 액션]
V2의 근본적 문제
1. 자기평가의 편향 (Self-Evaluation Bias)
- AI가 자신의 출력을 평가하는 것은 근본적으로 편향됨
- "내가 잘했다"고 생각하면 실제로 문제가 있어도 OK 판정
- 주관적 기준(톤, 간결성)은 일관성 없이 평가됨
2. 검증 메커니즘 부재
- 평가 결과를 검증하는 외부 시스템 없음
- 잘못된 평가를 감지할 방법 없음
- 평가 자체가 틀렸는지 알 수 없음
3. 객관적 지표 부족
- "완성도 X/Y"가 무엇인지 모호
- "정확성 OK"의 기준 불명확
- 측정 가능한 메트릭 없음
4. 학습 루프 부재
- 평가 결과가 다음 실행에 반영 안 됨
- 같은 실수 반복 가능
- 개선 방향 제시만 하고 실제 개선은 안 됨
업계 베스트 프랙티스 (2025 최신)
1. 이중 검증 시스템 (Dual Validation)
출처: Medium (Dec 2025), "AI agent evaluate another AI agent"
방식:
1차: Self-Evaluation (자기평가)
↓
2차: External Validation (외부 검증 - 다른 AI 또는 규칙 기반)
↓
3차: Audit (감사 - 인간 또는 더 강력한 모델)
예시:
- Haiku 모델이 크론 실행 → 자기평가
- Sonnet 모델이 평가 결과 재검증
- 불일치 시 정우님께 보고
2. 객관적 메트릭 측정
출처: WEF 2025 AI Agents Framework, Galileo AI
측정 항목:
- Task Success Rate: 요청된 작업을 완수했는가?
- Completion Time: 예상 시간 내 완료했는가?
- Error Frequency: 도구 호출 실패, API 에러 발생 횟수
- Token Efficiency: 불필요한 토큰 낭비 없는가?
- Baseline Error Rate: 과거 평균 대비 현재 성능
구체적 지표 예시:
{
"taskSuccess": true,
"completionTimeMs": 3427,
"expectedTimeMs": 5000,
"toolCallErrors": 0,
"tokenUsage": 2847,
"baselineTokenAvg": 3200,
"errorRate": 0.0,
"baselineErrorRate": 0.02
}
3. 다기준 평가 (Multi-Criteria)
출처: EMNLP 2025 ReviewEval, Medium AI Agent Evaluation
4대 축:
- Accuracy (정확성): 사실 확인, 데이터 검증
- Completeness (완성도): 요구사항 모두 충족했는가
- Relevance (관련성): 맥락에 맞는 응답인가
- Quality (품질): 톤, 스타일, 포맷팅
각 축을 1-5 점수로 정량화:
Accuracy: 5/5 (모든 데이터 검증됨)
Completeness: 4/5 (2/3 요구사항만 충족)
Relevance: 5/5 (맥락 완벽)
Quality: 3/5 (톤이 ChatGPT 같음)
4. Reflection 메커니즘
출처: Anthropic Research (Bloom), OpenAI Cookbook
CoT (Chain of Thought) Reflection:
1. 실행 (Do)
2. 자기평가 (Self-Evaluate)
3. 반성 (Reflect): "왜 이렇게 했나? 더 나은 방법은?"
4. 계획 (Plan Next): "다음엔 이렇게 개선"
예시:
## Reflection
**What I did:** TQQQ 시세 체크 후 -4.5% 보고
**What went well:** 정확한 데이터, 빠른 응답
**What went wrong:** 환율 영향 설명 누락
**Why:** 스크립트가 환율 데이터 미포함
**Next time:** get-exchange-rate.py 통합 확인
5. Red Teaming & Continuous Monitoring
출처: Microsoft Azure Agent Factory, PwC Multi-Agent Validation
사전 검증 (Pre-deployment):
- Adversarial inputs 테스트
- Edge case 시뮬레이션
- Worst-case scenario 검증
실시간 모니터링 (Post-deployment):
- Drift detection (성능 저하 감지)
- Anomaly detection (비정상 행동 감지)
- Compliance monitoring (정책 위반 감지)
V3 설계안: 3단계 검증 프레임워크
Architecture
┌─────────────────────────────────────────────────┐
│ Stage 1: Execution + Self-Evaluation (Haiku) │
│ - 크론 실행 │
│ - 즉시 자기평가 (V2 형식 유지) │
│ - 객관적 메트릭 수집 │
└──────────────┬──────────────────────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ Stage 2: External Validation (Rule-Based) │
│ - 메트릭 검증 (threshold 체크) │
│ - 포맷 검증 (이모지/구분선/헤더 카운트) │
│ - 일관성 검증 (과거 평가와 비교) │
└──────────────┬──────────────────────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ Stage 3: Periodic Audit (Weekly, Sonnet) │
│ - 주간 평가 리뷰 (100개 평가 재검증) │
│ - 패턴 분석 (반복 실수, 개선 트렌드) │
│ - 보고서 생성 (정우님께 전달) │
└─────────────────────────────────────────────────┘
Stage 1: Execution + Self-Evaluation
크론 실행 직후 (Haiku 모델):
## 자기평가 (V2 유지)
✅ 완성도: 3/3 (TQQQ 시세, 환율, 변동률 모두 포함)
✅ 정확성: OK (Yahoo Finance 15분 지연 데이터)
⚠️ 톤: ChatGPT-like ("변동 감지했습니다" - 로봇 톤)
✅ 간결성: 2 emojis, 적절
💡 개선: "감지했습니다" → "보고합니다" 또는 "-4.5% 낙하 중"
## 객관적 메트릭
- Task Success: ✅ (모든 도구 호출 성공)
- Completion Time: 3.2s (baseline 4.1s 대비 빠름)
- Tool Errors: 0
- Token Usage: 847 (baseline 920)
- Format Violations: 1 (forbidden phrase detected)
Stage 2: External Validation (Rule-Based)
크론 완료 1분 후 (자동 스크립트):
// scripts/validate-self-review.js
const evaluation = parseSelfReview(cronOutput);
// 1. 메트릭 검증
if (evaluation.toolErrors > 2) {
flag("HIGH_ERROR_RATE");
}
if (evaluation.completionTime > evaluation.baseline * 1.5) {
flag("PERFORMANCE_DEGRADATION");
}
// 2. 포맷 검증
const formatViolations = detectFormatViolations(cronOutput);
if (formatViolations.length !== evaluation.formatViolations) {
flag("INACCURATE_SELF_EVALUATION", {
selfReported: evaluation.formatViolations,
actual: formatViolations.length
});
}
// 3. 일관성 검증
const recentEvals = loadRecentEvaluations(7); // 최근 7일
if (evaluation.tone === "Jarvis" && recentEvals.filter(e => e.tone === "ChatGPT").length > 5) {
flag("INCONSISTENT_TONE_EVALUATION", "Self-reported Jarvis but recent history shows ChatGPT pattern");
}
// 4. 결과 기록
logValidationResult({
cronId: cronId,
timestamp: Date.now(),
selfEvaluation: evaluation,
validationFlags: flags,
verdict: flags.length === 0 ? "PASS" : "FAIL"
});
검증 결과 예시:
{
"cronId": "a98f06f7-...",
"timestamp": 1738652420000,
"selfEvaluation": {
"completeness": "3/3",
"accuracy": "OK",
"tone": "ChatGPT-like",
"conciseness": "2 emojis"
},
"validationFlags": [
{
"type": "INACCURATE_SELF_EVALUATION",
"severity": "MEDIUM",
"detail": "Self-reported 1 format violation, actual count is 3",
"evidence": ["알겠습니다", "변동 감지했습니다", "---구분선 3개"]
},
{
"type": "TONE_DRIFT",
"severity": "LOW",
"detail": "Self-reported ChatGPT-like but improvement suggestion is vague"
}
],
"verdict": "FAIL"
}
Stage 3: Periodic Audit (Weekly)
주간 크론 (일요일 밤, Sonnet 모델):
## 주간 자기평가 감사 보고서 (2026-02-01 ~ 2026-02-07)
### 전체 통계
- 총 크론 실행: 672회
- 자기평가 수행: 672회 (100%)
- External Validation 통과: 584회 (86.9%)
- External Validation 실패: 88회 (13.1%)
### 실패 원인 분석
**1. 부정확한 자기평가 (52회, 59%)**
- Self-reported "OK" but actual errors detected
- Self-reported "Jarvis" but forbidden phrases used
- 예시: "완료!" (forbidden) → self-eval said "✅ 톤: Jarvis"
**2. 포맷 위반 미감지 (28회, 32%)**
- Self-eval: "2 emojis" but actual: 5 emojis
- Self-eval: "1 separator" but actual: 4 separators
**3. 개선 제안 불이행 (8회, 9%)**
- Week 1: "다음엔 환율 포함" → Week 2: 여전히 누락
- Week 3: "ChatGPT 톤 수정" → Week 4: 동일 패턴 반복
### 권장 조치
**즉시 조치 (Critical):**
1. Self-evaluation 기준 명확화
- "OK"의 정의: 0 tool errors, 0 data inaccuracies
- "Jarvis"의 정의: 0 forbidden phrases, witty opening
2. Evaluation 전 체크리스트 강제 실행
- Response Guard 규칙 재확인
- 금지 표현 스캔 (알겠습니다, 완료, 처리)
- 포맷 카운트 (이모지, 구분선, 헤더)
**중기 조치 (Important):**
1. Reflection 추가
- "왜 이렇게 평가했나?" 질문 추가
- 평가 근거 명시 (예: "OK - yf 스크립트 exit 0")
2. Feedback loop 구현
- Validation 실패 시 다음 크론에 경고 주입
- "지난번 당신은 X를 놓쳤습니다. 이번엔 체크하세요."
**장기 조치 (Nice to Have):**
1. LLM-as-Judge (Opus 모델로 일부 재평가)
2. Human-in-the-Loop (월 1회 정우님 리뷰)
구현 우선순위
Phase 1: 즉시 적용 (오늘)
1. Stage 2 구현 (External Validation 스크립트)
scripts/validate-self-review.js생성- 메트릭 검증
- 포맷 검증
- 일관성 검증
- 모든 self-evaluation 크론에
+1min검증 크론 추가 - 검증 결과 저장 (
memory/validation-YYYY-MM-DD.jsonl)
2. 자기평가 체크리스트 강화
현재 V2 형식에 추가:
## 자기평가 체크리스트 (Pre-Flight)
Before evaluation, I checked:
- [ ] Forbidden phrases scan (알겠습니다, 완료, 처리 등)
- [ ] Emoji count (actual: X, limit: 3)
- [ ] Separator count (actual: Y, limit: 2)
- [ ] Header spacing (blank lines before/after)
- [ ] Tool errors (count: Z)
## 자기평가
✅ 완성도: X/Y [근거: ...]
✅ 정확성: OK [근거: ...]
...
Phase 2: 1주일 내 적용
3. Reflection 메커니즘 추가
## Reflection (What I Learned)
**What went well:**
- 빠른 응답 (3.2s)
- 정확한 데이터
**What went wrong:**
- 로봇 톤 사용 ("감지했습니다")
- 환율 설명 누락
**Root cause:**
- Response Guard 재확인 안 함
- 스크립트 출력 그대로 전달
**Next time:**
- 응답 전 30초 페르소나 체크
- 환율 데이터 필수 포함 확인
4. Stage 3 구현 (주간 감사 크론)
- 일요일 밤 크론 생성 (Sonnet 모델)
- 최근 7일 validation 결과 분석
- 패턴 발견 및 보고서 생성
- 정우님께 Discord 전송
Phase 3: 1개월 내 적용 (선택)
5. LLM-as-Judge (Opus 재평가)
- 주간 감사 시 Validation FAIL 건 중 10개 샘플링
- Opus 모델로 재평가 (Haiku 자기평가 vs Opus 평가 비교)
- 정확도 측정
6. Dashboard (시각화)
memory/validation-*.jsonl→ 그래프- Pass rate 트렌드
- 주요 실패 원인 분포
- 개선 효과 측정
예상 효과
정량적 개선
현재 (V2):
- 자기평가 수행률: ~50% (AI가 가끔 까먹음)
- 평가 정확도: 알 수 없음
- 개선 반영률: 0%
V3 적용 후:
- 자기평가 수행률: 100% (체크리스트 강제)
- 평가 정확도: 90%+ (External Validation으로 검증)
- 개선 반영률: 70%+ (Feedback loop)
정성적 개선
-
신뢰성 향상
- "내가 잘했다"는 자기 주장 → "외부 검증 통과"라는 객관적 증거
- 정우님이 크론 결과를 믿을 수 있음
-
학습 효과
- 같은 실수 반복 방지
- Reflection으로 근본 원인 파악
- 주간 감사로 장기 트렌드 파악
-
자율성 증가
- 자가 진단 → 자가 치료
- 정우님 개입 없이 스스로 개선
리스크 & 대응
Risk 1: 토큰 폭증
문제: Stage 2 검증 크론 추가 → 크론 2배
대응:
- Stage 2는 규칙 기반 (스크립트, LLM 불필요)
- 토큰 사용 0
- Stage 3는 주 1회만
Risk 2: False Positive
문제: External Validation이 잘못된 평가를 FAIL 처리
대응:
- Validation 규칙을 점진적으로 튜닝
- 첫 1주일은 log만 (알림 안 함)
- 정확도 80% 이상 확인 후 알림 활성화
Risk 3: 복잡성 증가
문제: 시스템이 너무 복잡해짐
대응:
- Phase 1만 먼저 적용 (1-2일 소요)
- 효과 확인 후 Phase 2 결정
- Phase 3는 선택사항
다음 단계
즉시 실행 (정우님 승인 후)
- ✅ 웹 검색 완료 (최신 방법론 조사)
- ✅ V3 설계 완료 (이 문서)
- ⏳
scripts/validate-self-review.js구현 - ⏳ 14개 크론에 validation 크론 추가
- ⏳ 체크리스트 강화된 V2.5 형식 배포
- ⏳ 1주일 모니터링
정우님 결정 필요
- Phase 1 진행 여부: 즉시 시작? 아니면 더 검토?
- Phase 2/3 필요성: 주간 감사까지 갈 것인가?
- 검증 실패 시 알림: Discord 알림? 아니면 로그만?
참고 자료
- Galileo AI (2025): Self-Evaluation in AI Agents With Chain of Thought
- WEF 2025: AI Agents in Action Framework
- Medium (Dec 2025): Self-Improving AI Agent That Learns From Feedback
- Microsoft Azure (Sep 2025): Top 5 Agent Observability Best Practices
- PwC: Validating Multi-Agent AI Systems
- n8n Blog: 15 Best Practices for Deploying AI Agents in Production
- Anthropic Research: Bloom - Self-Evaluation Framework
- OpenAI Cookbook: Self-Evolving Agents - Autonomous Retraining
작성: 2026-02-04 17:57 KST
버전: V3 Draft 1
상태: 정우님 리뷰 대기