AI 에이전트 평가: 회의 요약 품질을 체계적으로 측정하는 방법
AI 에이전트가 회의를 처리할 때 결과가 일관되지 않습니다: 환각(hallucinations), 누락된 작업, 장황한 텍스트. 평가(evals)는 객관적인 품질 지표를 제공해 이를 해결합니다. 이는 비결정적 시스템에 대한 테스트로, 전통적인 코드의 단위 테스트와 유사합니다. 에이전트가 어디서 고장 나는지, 변경 후 개선됐는지, 기존 기능이 망가졌는지 등의 핵심 질문을 답합니다.
이 글에서는 평가 유형, 오류 분석, 코드 기반 검증, 회의 요약 지표를 다룹니다. Hamel Husain과 Eugene Yan 같은 전문가들의 접근을 기반으로 합니다.
평가 유형: 간단한 체크부터 LLM 심판까지
평가는 에이전트 출력에 점수를 매기는 함수 f(output) → score입니다. 세 가지 복잡도 수준:
- 코드 기반 검증: 형식적 속성(길이, 구조, 키워드)에 대한 결정적 체크. 빠르고 무료지만 제한적.
- 인간 평가: 세밀한 인간 판단. 정확하지만 비용이 들고 확장 불가.
- LLM-as-Judge: 기준에 따라 LLM이 점수 매김. 확장 가능하고 저렴하지만 검증 필요.
황금률: 모든 유형을 결합. 모든 요청에 코드 기반, 샘플에 LLM-as-Judge, 교정에 인간.
회의 요약 지표는 우선순위에 따라 정의:
- 신실도(Faithfulness): 모든 주장에 녹취록 뒷받침.
- 작업 항목 정확도: 소유자와 마감일이 포함된 완전한 작업 목록.
- 완전성: 주요 주제 커버.
- 간결성: 녹취록의 30% 미만 길이, 엔티티/토큰 밀도 0.15.
- 일관성: 논리적 구조.
오류 분석: 효과적인 평가의 기초
자동화 전에 수동 오류 분석이 필수입니다. 이를 생략하면 평가는 무의미: 팀이 실제 문제를 무시한 지표를 만듭니다.
오류 분석 과정
프로덕션 또는 합성 데이터에서 20~50개의 녹취록 → 요약 쌍을 수집. 읽고 분류 없이 문제 로그:
- 환각: "Maria가 리팩토링 담당" 대신 "검토할 수 있음".
- 긴 녹취록 끝의 누락된 작업 항목.
- 압축 실패: 요약이 녹취록보다 길음.
실패 모드로 분류:
신실도 실패:
- 허구적 약속.
- 잘못된 귀속.
완전성 실패:
- 잃어버린 작업 항목.
- 누락된 결정.
간결성 실패:
- 요약 대신 재이야기.
빈도 집계: 상위 2~3 오류가 평가 우선순위. 시간: 반나절~1주, 최고 ROI.
코드 기반 검증: 빠른 합격/불합격 체크
원칙: 1~5점 스케일 대신 이진 합격/불합격. 명확한 수용 기준 강제.
회의 요약 예시:
interface Transcript {
text: string;
duration_minutes: number;
participants: string[];
}
interface Summary {
text: string;
action_items: ActionItem[];
decisions: string[];
}
interface ActionItem {
description: string;
owner?: string;
deadline?: string;
}
interface AssertionResult {
name: string;
pass: boolean;
reason: string;
}
function runAssertions(transcript: Transcript, summary: Summary): AssertionResult[] {
const results: AssertionResult[] = [];
// 압축 비율: 요약 < 녹취록 30%
const transcriptTokens = transcript.text.split(' ').length;
const summaryTokens = summary.text.split(' ').length;
const ratio = summaryTokens / transcriptTokens;
results.push({
name: '압축 비율',
pass: ratio < 0.3,
reason: `비율: ${ratio.toFixed(2)}`
});
// 작업 항목의 소유자/마감일 완전성
const aiComplete = summary.action_items.every(ai => ai.owner && ai.deadline);
results.push({
name: '작업 항목 완전성',
pass: aiComplete,
reason: aiComplete ? 'OK' : '소유자/마감일 누락'
});
return results;
}
추가 검증:
- action_items 섹션 존재.
- 요약에 잡담 없음.
- 구조화 출력의 유효 JSON.
LLM-as-Judge와 고급 스코어러
세밀한 지표에는 신실도, 완전성 프롬프트로 LLM-as-Judge 사용. Mastra는 16개 스코어러: 신실도, 완전성, 간결성.
신실도 프롬프트 예시:
요약의 녹취록에 대한 신실도를 평가하세요. 모든 주장이 뒷받침되어야 합니다. 0~1점으로 점수 매기기.
녹취록: [text]
요약: [text]
점수:```
CI에 통합: 배포 전 50개 테스트 케이스 실행. 개선 지표: 신실도 0.64 → 0.78.
**핵심 요약:**
- 오류 분석부터: 상위 2~3 실패 모드가 60% 문제 커버.
- 코드 기반(빠름), LLM-as-Judge(확장), 인간(검증) 결합.
- 우선순위: 신실도 > 작업 정확도 > 완전성.
- 명확한 결정 위한 이진 합격/불합격.
- 체계적 개선 위한 CI 자동화.
— Editorial Team
아직 댓글이 없습니다.