홈으로 돌아가기

AI 에이전트 평가: 요약 평가

이 기사는 회의 요약에 대한 AI 에이전트 평가의 체계적인 접근 방식을 설명합니다. 오류 분석과 코드 기반 단언부터 LLM-as-Judge까지. 주요 메트릭: 충실도, 액션 정확도, 완전성. 코드 예제와 실패 모드 분류.

안정적인 AI 에이전트용 평가를 설정하는 방법
Advertisement 728x90

AI 에이전트 평가: 회의 요약 품질을 체계적으로 측정하는 방법

AI 에이전트가 회의를 처리할 때 결과가 일관되지 않습니다: 환각(hallucinations), 누락된 작업, 장황한 텍스트. 평가(evals)는 객관적인 품질 지표를 제공해 이를 해결합니다. 이는 비결정적 시스템에 대한 테스트로, 전통적인 코드의 단위 테스트와 유사합니다. 에이전트가 어디서 고장 나는지, 변경 후 개선됐는지, 기존 기능이 망가졌는지 등의 핵심 질문을 답합니다.

이 글에서는 평가 유형, 오류 분석, 코드 기반 검증, 회의 요약 지표를 다룹니다. Hamel Husain과 Eugene Yan 같은 전문가들의 접근을 기반으로 합니다.

평가 유형: 간단한 체크부터 LLM 심판까지

평가는 에이전트 출력에 점수를 매기는 함수 f(output) → score입니다. 세 가지 복잡도 수준:

Google AdInline article slot
  • 코드 기반 검증: 형식적 속성(길이, 구조, 키워드)에 대한 결정적 체크. 빠르고 무료지만 제한적.
  • 인간 평가: 세밀한 인간 판단. 정확하지만 비용이 들고 확장 불가.
  • LLM-as-Judge: 기준에 따라 LLM이 점수 매김. 확장 가능하고 저렴하지만 검증 필요.

황금률: 모든 유형을 결합. 모든 요청에 코드 기반, 샘플에 LLM-as-Judge, 교정에 인간.

회의 요약 지표는 우선순위에 따라 정의:

  • 신실도(Faithfulness): 모든 주장에 녹취록 뒷받침.
  • 작업 항목 정확도: 소유자와 마감일이 포함된 완전한 작업 목록.
  • 완전성: 주요 주제 커버.
  • 간결성: 녹취록의 30% 미만 길이, 엔티티/토큰 밀도 0.15.
  • 일관성: 논리적 구조.

오류 분석: 효과적인 평가의 기초

자동화 전에 수동 오류 분석이 필수입니다. 이를 생략하면 평가는 무의미: 팀이 실제 문제를 무시한 지표를 만듭니다.

Google AdInline article slot

오류 분석 과정

프로덕션 또는 합성 데이터에서 20~50개의 녹취록 → 요약 쌍을 수집. 읽고 분류 없이 문제 로그:

  • 환각: "Maria가 리팩토링 담당" 대신 "검토할 수 있음".
  • 긴 녹취록 끝의 누락된 작업 항목.
  • 압축 실패: 요약이 녹취록보다 길음.

실패 모드로 분류:

신실도 실패:

Google AdInline article slot
  • 허구적 약속.
  • 잘못된 귀속.

완전성 실패:

  • 잃어버린 작업 항목.
  • 누락된 결정.

간결성 실패:

  • 요약 대신 재이야기.

빈도 집계: 상위 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

Advertisement 728x90

다음 읽기