"에이전트 평가 하네스 (1/4) — AI 결과를 테스트·루브릭·회귀 평가로 검증하는 법"
AI 에이전트의 가장 흔한 착시는 "몇 번 잘 됐다"를 "이제 된다"로 착각하는 것이다. 평가 하네스는 이 착시를 깨는 구조다. 한 번 잘 나온 결과가 아니라, 같은 조건에서 다시 돌려도 무너지지 않는지를 본다.
핵심 요약
- 에이전트 평가는 답변 품질만 보는 일이 아니라, 도구 사용, 절차 준수, 실패 처리, 최종 산출물까지 검증하는 일이다.
- 좋은 평가 하네스는 정답 기반 테스트와 루브릭 기반 평가를 섞되, 계산으로 잡을 수 있는 실패를 먼저 앞단에서 제거한다.
- 루브릭은 "좋다/나쁘다" 감상이 아니라, 재현 가능한 기준표여야 한다.
- 평가 데이터셋은 보고서가 아니라 운영 자산이다. 실제 실패 사례가 쌓일수록 회귀 탐지력이 올라간다.
- 그래서 평가의 목적은 점수 자랑이 아니라, 하네스를 어떻게 바꿔야 하는지 알려 주는 센서를 만드는 데 있다.
1. 왜 에이전트에는 별도의 평가 하네스가 필요한가
일반 소프트웨어에서도 테스트는 중요하지만, 에이전트는 평가 문제가 더 까다롭다. 같은 입력에도 출력이 조금씩 달라질 수 있고, 창작·요약·분석처럼 정답이 하나로 닫히지 않는 작업이 많기 때문이다. 게다가 에이전트는 답변만 생성하는 것이 아니라 파일을 읽고, 도구를 호출하고, 중간 판단을 내리고, 장시간 작업을 이어 간다.
그래서 "모델 응답이 괜찮아 보인다"는 정도로는 충분하지 않다. 실제로는 아래가 함께 평가돼야 한다.
- 올바른 도구를 골랐는가
- 불필요한 행동을 줄였는가
- 금지 규칙을 어기지 않았는가
- 최종 산출물이 요구 형식과 기준을 만족하는가
- 이전보다 성능이 나빠지지 않았는가
즉, 평가 하네스는 챗봇 채점표가 아니라 에이전트 동작 전체에 붙는 시험 장치에 가깝다.
2. 정답 기반 평가와 루브릭 기반 평가는 다르다
두 방식을 섞어야 하지만, 같은 것으로 취급하면 금방 흐려진다.
| 평가 방식 | 잘 맞는 대상 | 장점 | 한계 |
|---|---|---|---|
| 정답 기반 평가 | 형식, 값, 실행 성공, 규칙 위반 여부 | 빠르고 싸고 일관됨 | 의미 품질 판단은 약함 |
| 루브릭 기반 평가 | 요약, 분석, 우선순위 판단, 글쓰기 품질 | 의미적 차이를 잡기 좋음 | 평가자 편향과 흔들림이 있음 |
예를 들어 JSON schema 준수, 필수 섹션 누락, 금지 파일 수정 같은 것은 굳이 LLM에게 물을 필요가 없다. 반대로 "이 분석이 실제 의사결정에 도움이 되는가" 같은 질문은 계산형 검사만으로는 잡기 어렵다.
이 구분이 중요한 이유는 간단하다.
계산으로 잡을 수 있는 실패를 먼저 빼야, 비싼 판단을 정말 필요한 곳에만 쓸 수 있다.
3. 좋은 루브릭은 감상이 아니라 기준표다
루브릭은 "좋은 글을 써라" 같은 선언이 아니다. 평가자가 바뀌어도 대체로 같은 결론에 도달할 수 있도록 기준을 분해한 표다.
예를 들어 에이전트 산출물을 평가한다면 이런 식으로 쪼갤 수 있다.
| 항목 | 질문 | 점수 예시 |
|---|---|---|
| 정확성 | 사실·경로·명령이 틀리지 않았는가 | 0~5 |
| 절차 준수 | 요구된 제약과 순서를 지켰는가 | 0~5 |
| 완결성 | 요청된 결과가 빠지지 않았는가 | 0~5 |
| 실용성 | 실제 사용자가 바로 활용 가능한가 | 0~5 |
| 위험성 | 과도한 확신, 무단 수정, 불필요한 행동이 없는가 | 0~5 |
중요한 점은 항목 이름보다 실패를 판별할 수 있는 문장이다. 예를 들면 "핵심 결과는 맞았지만 금지된 파일을 수정했으면 통과가 아니라 실패"처럼, 가중치와 탈락 조건을 분명히 적어야 한다.
4. 평가 데이터셋은 데모 모음이 아니라 실패 저장소다
평가 하네스를 만들 때 흔한 실수는 잘 풀리는 예시만 모으는 것이다. 하지만 운영에 도움 되는 데이터셋은 오히려 반대에 가깝다.
- 자주 발생한 실패 사례
- 애매해서 흔들렸던 경계 사례
- 규칙 위반 가능성이 큰 사례
- 새 모델이나 새 도구에서 무너질 수 있는 사례
sources/260518_하네스엔지니어링_15장_블로그활용노트.md의 5장·9장 활용 메모를 따라가면, 평가셋은 정적인 벤치마크보다 회귀 탐지용 운영 자산으로 보는 편이 더 유용하다.
실무에서는 아래처럼 분류하는 편이 좋다.
golden: 항상 통과해야 하는 대표 사례edge: 애매하지만 중요한 경계 사례failure_regression: 실제 장애나 리뷰 지적에서 온 사례policy: 권한, 승인, 금지 행위 관련 사례
이렇게 쌓아 두면 점수 평균보다 더 중요한 정보가 생긴다. 바로 무슨 종류의 실패가 다시 돌아왔는지다.
5. 회귀 평가는 "좋아졌는가"보다 "망가졌는가"를 먼저 본다
운영에서 더 중요한 질문은 "이번 변경이 혁신적인가"보다 "기존에 되던 것이 깨졌는가"다. 시스템 프롬프트를 고치거나 도구 설명을 바꾸거나 모델을 교체했을 때, 사람은 대개 개선점만 보고 싶어 한다. 하지만 품질 사고는 대개 옆구리에서 난다.
그래서 회귀 평가는 아래 세 가지를 먼저 잡아야 한다.
- 이전에 통과하던 대표 사례가 다시 실패하는가
- 비용·지연시간·도구 호출 수가 비정상적으로 튀는가
- 금지 정책이나 형식 규칙 위반이 늘어났는가
이 관점은 drafts/blog/260429_하네스시리즈06_평가운영_블로그.md가 말한 상시 측정과도 이어진다. 평가는 출시 전 한 번 돌리는 게 아니라, 변경이 들어올 때마다 작게라도 반복 실행되는 안전장치여야 한다.
6. LLM-as-Judge는 유용하지만 단독 심판이 되면 위험하다
루브릭 평가에서 LLM-as-Judge는 강력하다. 미묘한 품질 차이, 설명의 설득력, 우선순위 판단처럼 규칙만으로 닫히지 않는 영역을 빠르게 훑을 수 있다. 하지만 단독 심판으로 쓰기 시작하면 문제가 생긴다.
- 평가자가 생성자와 같은 편향을 공유할 수 있다
- 프롬프트에 따라 점수 흔들림이 생긴다
- 친절하고 유창한 답변에 과대 점수를 줄 수 있다
그래서 운영용 평가 하네스에서는 보통 이렇게 쓴다.
- 먼저 계산형 검사로 명백한 실패를 제거한다.
- 남은 케이스만 루브릭 평가로 보낸다.
- 중요한 샘플은 사람 검토로 기준선을 맞춘다.
- 평가 근거를 함께 남겨 나중에 판정 흔들림을 점검한다.
이 구조의 핵심은 "LLM을 쓰지 말자"가 아니라, LLM 평가를 더 싼 검사들과 묶어 써야 한다는 데 있다.
7. 우리 워크스페이스 관점에서의 평가 하네스
이 저장소처럼 콘텐츠·도구·운영 문서가 함께 있는 환경에서는 평가도 답변 자체보다 절차 준수를 많이 본다.
예를 들면 아래 항목들이 평가 대상이 된다.
| 평가 대상 | 질문 |
|---|---|
| 파일 소유권 준수 | 허용된 파일만 수정했는가 |
| 읽기 범위 준수 | 지정된 참고 문서를 먼저 읽었는가 |
| 언어 규약 준수 | 사용자-facing 출력은 한국어로 유지했는가 |
| 동시 작업 안전성 | 다른 사람 변경을 되돌리지 않았는가 |
| 최종 산출물 완결성 | frontmatter와 series-nav placeholder를 포함했는가 |
이런 항목은 "글이 좋아 보이느냐"보다 더 운영 친화적이다. 실제로 사고를 줄이는 것은 종종 문장력보다 절차를 어기지 않는 것이기 때문이다.
8. 실무 적용: 평가 하네스를 어디부터 붙일까
처음부터 거대한 리더보드를 만들 필요는 없다. 운영 초반에는 아래 순서가 현실적이다.
- 절대 실패하면 안 되는 규칙부터 계산형 체크로 뺀다.
- 대표 작업 20~50개로 작은 golden set을 만든다.
- 루브릭을 3~5개 항목으로 줄여 평가자가 같은 말을 하게 만든다.
- 실제 실패 사례가 나오면 즉시 regression 셋에 편입한다.
- 모델 교체, 지시 수정, 도구 변경 전후에 같은 셋을 반복 실행한다.
이렇게만 해도 "평가를 한다"는 말이 추상론에서 빠져나온다.
9. 흔한 실패
평균 점수만 본다
평균이 유지돼도 특정 정책 위반이 늘면 운영은 더 위험해질 수 있다.
루브릭이 모호하다
"자연스럽다", "좋다" 같은 표현만 있으면 평가자가 바뀔 때 점수가 흔들린다.
실패 사례를 저장하지 않는다
운영에서 한 번 터진 문제를 데이터셋에 넣지 않으면 같은 문제가 다시 돌아온다.
평가와 개선이 분리된다
점수만 모으고 하네스 수정으로 연결하지 않으면, 평가는 대시보드 장식이 된다.
참고 자료
docs/blog_series_하네스엔지니어링_총괄_design.mdsources/260518_하네스엔지니어링_15장_블로그활용노트.mddrafts/blog/260429_하네스시리즈06_평가운영_블로그.mddrafts/blog/260429_harness_series_06_evaluation_ops_en.md
이 글은 평가·운영·메모리 시리즈의 1/4 편입니다. 다음 편: 장시간 에이전트 운영 — 메모리보다 먼저 설계해야 하는 handoff 구조.
시리즈 전체 안내: 하네스 엔지니어링 시리즈 안내
댓글
댓글 쓰기