Anthropic: AI 에이전트를 위한 평가(Evals)의 비밀을 밝히다
TL;DR
Anthropic는 반복적인 디버깅 루프를 방지하고 개발 속도를 가속화하기 위해 AI 에이전트를 위한 엄격한 평가("evals")를 구축하는 세부 가이드를 공개했다. 핵심 통찰은 효과적인 에이전트 평가를 위해서는 결정론적, 모델 기반, 인간 평가자들의 조합이 필요하며, 능력 평가와 회귀 평가의 구분, 그리고 평가자가 실제 성능을 측정하고 창의성을 처벌하지 않도록 하기 위해 트랜스크립트를 꼼꼼히 읽는 데의 헌신이 필요하다는 점이다.
에이전트 평가의 아키텍처
AI 에이전트를 평가하는 것은 단일 응답 LLM을 평가하는 것보다 훨씬 복잡하다. 왜냐하면 에이전트는 여러 단계에 걸쳐 작동하고 환경 상태를 수정하며, 정적 평가 로직을 회피할 수 있는 창의적인 해결책을 찾을 수 있기 때문이다.
핵심 평가 정의
일관된 평가 시스템을 구축하기 위해 Anthropic는 다음 구성 요소를 정의한다:
- 작업 (문제/테스트 케이스): 정의된 입력과 성공 기준을 가진 단일 테스트.
- 시험 (Trial): 작업에 대한 단일 시도; 모델의 비결정론성에 대응하기 위해 여러 시도를 실행한다.
- 평가자 (Grader): 주장이나 검사를 통해 성능을 점수화하는 로직.
- 트랜스크립트 (트레이스/트랙토리): 도구 호출, 추론, API 상호작용을 포함한 시험의 완전한 기록.
- 결과 (Outcome): 환경의 최종 상태 (예: 데이터베이스 레코드가 실제로 생성되었는지 여부).
- 평가 허브 (Evaluation Harness): 작업을 병렬로 실행하고 단계를 기록하며 결과를 집계하는 인프라.
- 에이전트 허브 (스카프홀드): 모델이 에이전트로서 작동할 수 있도록 하는 시스템 (예: Claude Code).
- 평가 세트 (Evaluation Suite): 특정 능력이나 행동을 측정하는 작업의 모음.
에이전트 유형별 평가 전략
다양한 에이전트 아키텍처는 정확성과 유용성을 보장하기 위해 맞춤형 평가 기법이 필요하다.
코드 작성 에이전트
코드 에이전트는 결정론적 평가자를 사용하는 것이 가장 적합하다. 소프트웨어는 이진 결과(작동하거나 작동하지 않음)를 가지므로, 최고의 기준은 안정된 환경에서 생성된 코드를 단위 테스트에 적용하는 것이다.
- 벤치마크: SWE-bench Verified와 Terminal-Bench가 주요 예시로 언급되며, 성공은 기존 테스트를 깨지 않고 실패한 테스트를 수정하는 것으로 정의된다.
- 하이브리드 접근법: 결과는 결정론적이지만, 트랜스크립트는 LLM 룩북을 사용하여 코드 품질과 도구 사용 효율성을 평가할 수 있다.
대화형 에이전트
대화형 에이전트는 상호작용의 품질이 작업 완료와 마찬가지로 중요하므로 다차원적 접근이 필요하다.
- 시뮬레이션: 이러한 평가는 에이전트를 시험하기 위해 두 번째 LLM을 사용해 사용자 역할을 시뮬레이션한다.
- 평가: 성공은 상태 검사 (예: "티켓이 해결되었는가?"), 트랜스크립트 제약 (예: "10번 이내에 종료되었는가?"), 그리고 어조와 공감에 대한 LLM 룩북을 결합하여 측정된다.
연구 에이전트
연구 에이전트는 "정확성"이 맥락에 따라 달라지는 개방형 출력을 생성한다.
- 검증: 평가는 근거성(출처에 의해 지지되는 주장), 포괄성(핵심 사실 포함 여부), 출처 품질에 초점을 맞춘다.
- 보정: 연구 품질은 주관적이므로, LLM 기반 룩북은 전문가의 인간 판단과 자주 보정되어야 한다.
컴퓨터 사용 에이전트
이러한 에이전트는 API가 아닌 스크린샷과 클릭을 통해 GUI와 상호작용한다.
- 환경: 평가는 최종 OS 또는 브라우저 상태를 검사할 수 있는 사전 환경(예: WebArena 또는 OSWorld)이 필요하다.
- 효율성: 에이전트가 적절한 도구(예: DOM 추출 vs. 스크린샷)를 선택하는 능력을 추적하여 지연 시간과 토큰 비용을 균형 있게 유지해야 한다.
효과적인 평가자 설계
Anthropic는 속도, 비용, 미묘함 사이의 균형을 맞추기 위해 계층적 접근법을 권장한다.
| 평가자 유형 | 강점 | 약점 |
|---|---|---|
| 코드 기반 | 빠르고 객관적이며 재현 가능하고 저렴함. | 유효한 변형에 취약함; 미묘함이 부족함. |
| 모델 기반 | 유연하고 확장 가능하며, 미묘함과 개방형 작업을 처리할 수 있음. | 비결정론적; 인간 보정이 필요함. |
| 인간 | 금표; 전문가 판단과 일치함. | 비용이 높고 느림; 확장성이 부족함. |
능력 평가 vs. 회귀 평가
- 능력 (품질) 평가: 에이전트의 능력 한계를 찾기 위해 설계됨. 낮은 통과율로 시작하여 "오를 수 있는 언덕"을 제공한다.
- 회귀 평가: 기존 기능이 깨지지 않도록 보장하기 위해 설계됨. 거의 100%의 통과율을 유지해야 한다.
- 라이프사이클: 능력 평가가 높은 통과율에 도달하면, 회귀 세트로 "졸업"한다.
비결정론성 다루기
에이전트 행동은 실행마다 달라지므로, 단일 통과/실패로는 부족하다. Anthropic는 두 가지 주요 지표를 제안한다:
- pass@k: k번의 시도 중 적어도 하나의 정답 해결책을 얻을 확률. 도구의 경우 단일 성공만으로도 승리이므로 유용하다.
- pass^k: k번의 시도 모두가 성공할 확률. 고객 대상 에이전트의 경우 신뢰성과 일관성이 극히 중요하므로 필수적이다.
구현을 위한 로드맵
1단계: 데이터셋 수집
- 작게 시작하기: 실제 실패 사례에서 유도된 20~50개의 작업부터 시작한다.
- 모호함 피하기: 두 전문가가 동일한 판단에 도달하도록 보장한다. 에이전트가 많은 시도에서 100% 실패(0% pass@100)한다면, 보통 모델이 실패한 것이 아니라 작업 사양이 깨져 있다는 신호이다.
- 균형 잡힌 세트: 에이전트가 행동을 수행해서는 안 되는 "음성" 사례를 포함하여 과도한 반응을 방지한다.
2단계: 허브 및 평가자 설계
- 격리: 각 시도가 깨끗한 환경에서 시작되도록 보장하여 공유 상태가 점수를 인위적으로 높이는 것을 방지한다.
- 경로가 아닌 결과에 초점: 에이전트가 취한 도구 호출의 구체적인 시퀀스가 아니라, 에이전트가 생성한 결과를 평가하여 창의적이지만 유효한 해결책을 처벌하지 않는다.
- 부분 점수: 여러 구성 요소를 가진 작업에 대해 부분 점수를 구현하여 성공의 연속성을 반영한다.
3단계: 장기적 유지보수
- 트랜스크립트 검토: 정기적으로 트랜스크립트를 읽어 진정한 에이전트 실수와 평가 버그를 구분한다.
- 포화 모니터링: 평가가 100%에 도달하면 더 이상 개선을 신호하지 않는다. 팀은 계속 진전을 측정하기 위해 더 어려운 새로운 평가를 개발해야 한다.
- 평가 기반 개발: 기능을 구축하기 전에 계획된 능력에 대한 평가 작업을 정의한 후, 에이전트가 통과할 때까지 반복적으로 개선한다.
종합적인 성능 이해
자동화된 평가는 첫 번째 방어선이지만, 더 넓은 전략의 일부여야 한다:
- 생산 환경 모니터링: 실제 세계의 분포 변화와 예상치 못한 실패를 포착한다.
- A/B 테스트: 대규모로 실제 사용자 결과(유지율, 완료율)를 검증한다.
- 사용자 피드백: 예상치 못한 문제를 드러내고 실제 세계 예제를 제공한다.
- 수동 검토: 실패 유형에 대한 직관을 형성하고 LLM 평가자를 보정한다.
- 인간 연구: 주관적 작업에 대한 금표 기준을 제공한다.
Sources
- OriginalDemystifying evals for AI agents
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch