AI 에이전트수정 2026-08-08

"에이전트 잘 되나요"는 답할 수 없는 질문이다 — 평가 지점 3계층과 메트릭 3계층

정답이 하나가 아닌 출력을 어떻게 채점하는지, 실행 경로가 긴 시스템에서 어느 지점을 재야 하는지, 그리고 지표를 개발팀 밖으로 내보내는 3계층 구조와 7단계 도입 절차를 정리한다.

"에이전트가 잘 되나요?"라는 질문에는 답할 수 없다. 라우팅이 틀린 것인지, 도구 선택이 틀린 것인지, 근거는 맞았는데 문장이 나쁜 것인지가 구분되지 않은 상태에서 나온 질문이기 때문이다. 답을 만들려면 질문을 쪼개야 한다.

이 글은 그 쪼개기를 두 축으로 한다. 하나는 평가 지점 — 라우팅·도구 호출·최종 답변 셋으로 나누면 "어디가 틀렸나"에 답할 수 있게 된다. 다른 하나는 지표의 수신자 — 엔지니어용 지표만 있으면 품질 대화가 개발팀 안에 갇힌다. 여기에 세 가지 평가 방식(오프라인·온라인·루프)을 언제 쓰는가와, 이 모두를 실제로 세우는 7단계 절차를 붙인다.

앞 편에서 승인 데이터가 회귀 테스트 자산으로 재사용되는 구조를 봤다. 그 자산을 무엇에 쓸 것인가가 이 글의 주제이며, 첫 편의 배팅 우선순위 1위이기도 하다 — 보안·지연·비용이 시장에서 해소되는 동안 품질만 남았기 때문이다.

이 글은 2025년 5월과 7월의 자료를 정리한 것이다. 제품 화면 구성과 기능명은 그 시점의 것이다.

용어 정리

앞 편의 용어표에서 이 글이 쓰는 행만 추리고, 평가 용어를 더했다.

용어원어 / 표기
EvaluationEvaluation / EvalsLLM 애플리케이션의 품질을 정의된 기준으로 측정하는 활동
ObservabilityObservability운영 중인 시스템 내부 상태를 밖에서 관측 가능하게 만드는 것. 추적·지표·로그
TraceTrace한 번의 요청이 거쳐 간 모든 호출(LLM·도구·검색)의 실행 기록
TrajectoryTrajectory에이전트가 목표에 도달하기까지 밟은 단계의 순서 그 자체
오프라인 평가Offline Evaluation운영 전, 미리 준비한 데이터셋으로 성능을 측정하는 방식
온라인 평가Online Evaluation실제 사용자 트래픽에서 생성된 데이터로 평가하는 방식
루프 평가Loop Evaluation에이전트 실행 루프 안에서 즉시 결과를 채점하고 되먹이는 방식
LLM-as-JudgeLLM as a Judge정답이 하나로 정해지지 않는 출력을 다른 LLM이 기준에 따라 채점하게 하는 방법
Exact MatchExact Match Evaluator출력이 정답과 정확히 일치하는지 보는 평가자. 분류·라우팅처럼 정형 출력에 사용
Ground Truthground truth정답으로 삼는 기준값. 평가 데이터셋의 레퍼런스 출력
Triage Unit Test에이전트 전체가 아니라 라우팅 같은 개별 판단 하나만 떼어 검증하는 테스트
Context Recallcontext recall답에 필요한 근거 중 실제로 검색해 온 비율
Context Precisioncontext precision검색해 온 문맥 중 실제로 답에 쓸모 있었던 비율
P50 / P99percentile지연시간 분포의 50번째·99번째 백분위. 평균 대신 꼬리 지연을 보는 지표
SRESite Reliability Engineer서비스 가용성·운영·장애 대응을 맡는 직무
프롬프트 허브Prompt Hub프롬프트를 코드처럼 버전 관리·공유·실험하는 저장소

왜 어려운가 — 여섯 가지 이유

이유설명
정답이 하나가 아니다자유형식 텍스트는 Exact Match로 채점 불가
채점자마저 확률적이다LLM-as-Judge의 일관성 자체가 문제
평가 지표의 적절성을 모른다무엇을 재야 좋은 제품인지 합의가 없음
데이터셋이 없다평가용 데이터셋 구축이 별도 프로젝트
실행 경로가 길다에이전트는 라우팅·도구 호출·생성이 겹쳐 어디서 틀렸는지 특정하기 어려움
페이로드가 크고 비정형이다전통적 APM 트레이스와 형태가 다름

여섯 중 앞의 넷은 무엇을 정답으로 볼 것인가의 문제이고, 뒤의 둘은 어디를 볼 것인가의 문제다. 이 글의 전반부가 앞의 넷을, 후반부가 뒤의 둘을 다룬다.

LangSmith가 스스로를 규정한 문구가 이 구분을 정확히 말한다 — "Large, Unstructured, Multi-modal Payloads", "Built for an agent engineer not an SRE".

기존 APM·모니터링 도구와 목적이 다르다는 선언이다. SRE는 서비스가 살아 있는지를 보지만 에이전트 엔지니어는 판단의 품질을 봐야 한다. 응답이 200으로 돌아오면서도 완전히 틀린 답을 담고 있을 수 있다는 것이 이 도메인의 특징이고, 그래서 가용성 지표만으로는 아무것도 알 수 없다.

세 가지 평가 방식

오프라인 평가 — 운영 전, 준비된 데이터셋으로

구성요소내용
데이터 준비평가 목적에 맞는 다양한 샘플 데이터를 사전 구축
평가자 역할사람 또는 자동화 시스템이 결과에 점수를 부여하고 분석
성과 추적시간 경과에 따른 성능 변화를 객관적으로 측정
모델 비교다양한 모델이나 프롬프트 변화 효과를 체계적으로 비교
장점단점
통제된 환경에서 일관된 평가 가능데이터 세트 한계로 실제 환경과 괴리
모델 간 성능 직접 비교 용이예상 못한 실제 사용 패턴 반영 어려움
비용 효율적이고 신속한 평가데이터 편향성이 결과에 영향 가능

장단점이 같은 성질의 앞뒷면이다. 통제됐기 때문에 비교가 가능하고, 통제됐기 때문에 현실과 다르다.

온라인 평가 — 실제 트래픽에서

항목내용
정의운영 중인 앱에 유입되는 실제 질의와 사용자 행동을 기반으로 평가
특징실제 사용자가 생성한 동적인 데이터 활용 / 실시간 또는 사후 성능 점수화 가능
주의데이터 통제와 일관성 유지에 어려움 존재
키워드실제 사용자 데이터 · 실시간 평가 · 현실 환경 반영
원 자료 각주"온라인 평가는 에이전트가 실제 환경에서 어떻게 작동하는지 가장 정확하게 보여줍니다"

루프 평가 — 실행 중에 즉시

도식을 탭하면 확대해서 볼 수 있습니다
항목내용
정의브라우저 사용, 코드 실행 등에서 결과를 즉시 평가하고 피드백. 작업 수행 중 품질을 검증하고 필요시 수정
장점실시간 상태 모니터링 / 잘못된 결과 즉시 차단 가능 / 정확도와 신뢰성 향상
단점시간·비용 소요 증가 / 지연 허용 범위 제한적 / 구현 복잡성 높음

도식의 C → D → B 되돌림이 Agentic RAG의 관련성 검증 루프와 같은 형태라는 점이 눈에 띈다. 자기교정 루프를 "평가"의 한 방식으로 분류하면, 관련성 판정기와 근거성 채점기가 전부 루프 평가기가 된다.

세 방식 비교

평가 방식데이터 소스평가 시점장점단점
오프라인준비된 데이터 세트운영 전비교 및 분석 용이실제 환경과 괴리
온라인실제 사용자 데이터실시간/사후실제 사용 반영통제 어려움
루프실시간 생산 데이터에이전트 실행 중즉각적 피드백·수정 가능비용·지연 시간 증가

이 비교표는 위 세 개별 표의 요약이지 대체가 아니다. 비교표는 각 방식의 결정적 축(소스·시점·장단점 한 줄씩)만 남기므로, 오프라인의 구성요소 넷이나 루프의 장점 셋 같은 것은 여기 없다. 방식을 고를 때는 비교표를, 고른 뒤 실제로 세울 때는 개별 표를 본다.

셋의 관계는 배타가 아니라 순서다 — 오프라인으로 배포 게이트를 만들고, 온라인으로 실패 케이스를 수집하고, 그 케이스를 다시 오프라인 데이터셋에 넣는다. 루프는 되돌릴 수 없는 행위 앞에서만 쓴다. 비용이 가장 크기 때문이다.

무엇을 평가할 것인가 — 지점 3계층

같은 Email Assistant 구조도를 세 번 반복하면서 평가 대상 지점만 바꿔 가며 설명한 것이 이 자료의 백미다.

도식을 탭하면 확대해서 볼 수 있습니다
평가 계층평가 지점평가 방법근거
(1) 생성된 답변E-mail Output최종 산출물 품질 채점자유형식 → LLM-as-Judge
(2) Triage 판단E-mail RoutingTriage Unit Test: evaluate a triage decision정형 분류 → Exact Match
(3) 도구 호출LLM → Tool action어떤 도구를 골랐는지 / 인자가 맞는지도구 선택·결과 평가

왜 나누는지는 구조도 아래 붙은 설명 두 줄이 말한다.

구간설명 원문함의
앞단"Simple branching step to classify incoming emails, so use a router"단순 분기 → 결정론적, 유닛테스트 가능
뒷단"Based on the email, need different tools (schedule mtng, check cal, etc) so use an agent"도구 선택 필요 → 비결정론적, 궤적 평가 필요

한 시스템 안에서 앞단과 뒷단의 평가 방법이 달라야 한다는 것이 이 절의 결론이다.

이 구분이 값을 하는 이유는 앞단을 에이전트로 만들지 않을 근거가 되기 때문이다. 분류 단계를 라우터로 두면 Exact Match로 채점되는 유닛테스트가 성립하고, 같은 자리를 에이전트로 만들면 그 시점부터 궤적 평가밖에 못 한다. 평가 가능성이 아키텍처 선택의 기준이 되는 자리이며, 경로를 누가 정하는가의 판단에 축이 하나 더 붙는 셈이다.

정리하면 "에이전트가 잘 되나요"는 라우팅 정확도 / 도구 선택 정확도 / 최종 답변 품질 셋으로 쪼개야 답이 되고, 쪼개야 개선 지점이 특정된다.

정형과 비정형은 채점기가 다르다

도식을 탭하면 확대해서 볼 수 있습니다
구분StructuredUnstructured
Output 예시{"classification": "respond"}"Hi Nick, I just scheduled a meeting for us on Tuesday at 3pm! Best, Lance"
Reference{"ground_truth": "respond"}Success Criteria: "Schedule a meeting on Tuesday"
EvaluatorExact Match EvaluatorLLM-as-judge Evaluator
결과true / falsetrue / false

비정형 평가에서 레퍼런스는 "정답 문장"이 아니라 성공 기준(Success Criteria)이다.

두 번째 행이 이 표의 전부다. 문장을 맞히라고 하면 평가가 불가능해진다 — 같은 뜻의 이메일을 쓰는 방법이 수십 가지이고 그중 하나만 정답이 될 이유가 없다. 조건을 만족했는지 묻는 순간 평가가 가능해지고, 마지막 행처럼 결과가 두 방식 모두 true / false로 떨어진다. 채점기는 달라도 출력 계약은 같게 유지한다는 설계다.

누가 볼 것인가 — 메트릭 3계층

계층지표지표지표
Traditional MetricsTRACE VOLUMEERROR RATESLATENCY
Business MetricsCOSTUSER FEEDBACKTOPIC SUMMARIZATION
Qualitative MetricsTOXICITYHALLUCINATIONSCUSTOM EVALUATION
계층누구를 위한 지표인가답하는 질문
Traditional엔지니어시스템이 도는가, 얼마나 느린가, 얼마나 깨지는가
Business경영진·PM돈이 얼마나 드는가, 사용자가 만족하는가, 무엇을 묻고 있는가
Qualitative제품·리스크위험한 말을 하는가, 지어내는가, 우리 기준에 맞는가

두 표는 행 수가 같지만 세는 단위가 다르다. 위는 계층당 지표 셋을 나열하고, 아래는 계층당 수신자와 질문을 적는다. 위만 보면 아홉 개 지표 목록이고, 아래만 보면 지표 이름이 사라진다.

이 3계층은 지표 분류가 아니라 조직 확장 장치다.

Traditional만 있으면 품질 대화가 개발팀 안에 갇힌다. Business Metrics 행(Cost / User Feedback / Topic Summarization)이 생기는 순간 PM·CS·재무가 같은 대시보드를 보게 되고, 이때부터 "이 기능이 개선됐다"는 주장이 개발팀 밖에서 검증 가능해진다. 자료가 이 표에 "개발자 1인의 온전한 책임이 아닌 팀으로의 확장"이라는 부제를 붙인 이유가 여기 있다.

무엇을 추적하는가

관측 대상화면 이름보는 것
도구 사용Tool Metric Observability — RUN COUNT BY TOOL도구별 호출 횟수의 시간 변화 (예: Search_Knowledge_Base, SerpAPI, Calculator)
실행 경로Trajectory Observability — MEDIAN LATENCY BY RUN NAME실행 단위별 중앙 지연 (예: ChatOpenAI, VectorStoreRetriever, conduct_research, JSONOutputTool)
실험 비교COMPARING TESTS / HUMAN LABELINGAggregate Metrics(예: Conciseness) · Latency(P50) · Tokens(P50)를 실험 번호별로 나란히 비교

세 화면을 질문 쪽에서 다시 세우면 이렇게 된다.

질문보는 화면
이 에이전트는 어떤 도구에 의존하고 있나Tool Metric
느린 원인이 어느 단계인가Trajectory Latency
이번 프롬프트 변경이 개선인가 퇴보인가Comparing Tests

두 표는 행 수가 셋으로 같지만 열 축이 다르다. 위 표는 화면에서 출발해 무엇이 보이는지를 적고, 아래 표는 질문에서 출발해 어느 화면으로 가는지를 적는다. 하나로 합치려면 네 열(질문·관측 대상·화면 이름·보는 것)짜리 단일 표가 되어야 하는데, 그러면 질문 열이 나머지 셋에 종속된 것처럼 보인다. 실무에서는 대개 질문이 먼저 오므로 두 방향을 따로 두는 편이 쓰기 낫다.

셋 중 마지막이 성격이 다르다는 점도 짚어 둘 만하다. 앞의 둘은 운영 중인 시스템을 보는 것이고, Comparing Tests바꾸기 전과 후를 보는 것이다. 관측과 평가가 만나는 자리가 여기다.

프롬프트 버저닝

항목내용
제품LangSmith Prompt Hub / Playground
화면 구성왼쪽 PROMPTS(SYSTEM 메시지 + HUMAN 메시지, + Message / + Output schema / + Tool 버튼), 오른쪽 OUTPUT
핵심 메시지프롬프트 허브를 활용한 버저닝의 중요성

프롬프트를 코드 리포지터리 안 문자열로 두면 셋이 동시에 막힌다 — ① 변경 이력이 커밋에 섞여 추적이 어렵고 ② 비개발자가 손댈 수 없고 ③ 어떤 버전이 어떤 실험 결과를 냈는지 연결되지 않는다. 허브로 빼면 이 셋이 함께 풀린다. 특히 ③은 위 Comparing Tests가 성립하기 위한 전제라, 버저닝 없이 실험 비교를 하면 무엇을 비교한 것인지 나중에 알 수 없다.

도입 절차 7단계

원 자료는 절차를 한 장으로 정리해 두지 않았다. 아래는 위 요소들을 도입 순서로 재구성한 것이다.

도식을 탭하면 확대해서 볼 수 있습니다
단계하는 일완료 판정
1. 추적 켜기모든 실행에 trace를 남긴다장애 시 실행 경로를 재구성할 수 있다
2. 지표 정의3계층 중 우리 서비스에 필요한 항목 선별비개발자가 대시보드를 해석할 수 있다
3. 평가 지점 분해라우팅 / 도구 호출 / 최종 답변으로 쪼갠다"어디가 틀렸나"에 답할 수 있다
4. 데이터셋 구축운영 로그·사람 피드백에서 케이스 수집회귀 세트가 존재한다
5. 오프라인 회귀배포 전 자동 실행지표 하락 시 배포가 막힌다
6. 온라인 평가실사용 트래픽을 사후 채점실환경 지표가 추이로 보인다
7. 프롬프트 버저닝버전 태깅 + 실험 결과 연결"어느 버전이 좋았나"에 답할 수 있다
→ 4로 회귀온라인에서 발견한 실패 케이스를 데이터셋에 편입루프가 닫힌다

도식은 노드 일곱인데 표는 여덟 행이다. 마지막 행(7 → 4 회귀)이 도식에서는 화살표 하나라 노드로 세어지지 않기 때문인데, 그 화살표가 이 절차의 요점이다. 7단계를 한 번 완주하는 것은 프로젝트지만, 4번으로 돌아오는 화살표가 있어야 체계가 된다.

세 번째 열도 눈여겨볼 만하다. 완료 판정이 전부 "무엇에 답할 수 있게 되는가"로 쓰여 있고 산출물 이름이 아니다. 대시보드를 만든 것과 비개발자가 그것을 해석할 수 있는 것은 다른 사건이다.

현장의 고민 — 완벽주의가 착수를 늦춘다

관찰내용
보편성모든 회사가 각자의 방식으로 평가 방식을 고민(LLM-as-Judge)
과잉 투자완벽한 평가 지표를 만들려고 너무 많은 노력을 쏟고 있음
Andrew Ng의 처방"20분 만에 빠르게 평가할 수 있는 능력"
현실 인정아무리 완벽한 평가를 하려 해도 틀릴 것이다 → 온라인 평가로 점진적으로 발전하는 파이프라인 구축
방향실제 사용자 tracing이 들어오는 시점에서 대화를 평가해 나가려는 노력
새 과제Agent + MCP 시대의 ① 도구 선택에 대한 평가 ② 도구 활용 후 결과에 대한 평가 방식
5월 기록평가 지표에 대한 모호함. "고객 만족 지표를 어떤 정량지표로 표현하는 것이 적합할까?"에 대한 실험

20분짜리 거친 평가라도 먼저 돌리는 것이 완벽한 지표를 설계하는 것보다 낫다.

이유는 위 7단계의 순서에 이미 들어 있다. 데이터셋 구축(4번)이 온라인 평가(6번)보다 먼저 오지만, 처음에 만드는 데이터셋은 어차피 틀린다 — 실제 사용자가 무엇을 묻는지 모르는 상태에서 만들었기 때문이다. 그 오차를 없애려고 4번에 오래 머무는 것이 과잉 투자이고, 6번을 돌려 실패 케이스를 회수하는 편이 빠르다. 평가 체계는 설계하는 것이 아니라 수렴시키는 것이라는 뜻이다.

여섯 번째 행의 "새 과제"는 아직 열려 있다. 도구가 표준 프로토콜로 붙기 시작하면서 도구 선택 자체가 평가 대상이 됐는데, 그 표준이 만든 다른 변화들은 다음 편의 주제다.


여기까지가 품질을 재는 체계다. 지점을 셋으로 쪼개고, 방식을 셋으로 나누고, 지표를 셋으로 층지어 개발팀 밖으로 내보낸다.

그런데 위 마지막 표의 여섯 번째 행이 새 문제를 열어 둔 채 끝난다 — 도구를 표준 프로토콜로 붙이기 시작하면 도구 선택 정확도가 새 평가 대상이 되고, 동시에 접근 제어라는 전혀 다른 문제가 따라온다. 사내 지식베이스를 프로토콜로 여는 순간 검색 품질보다 권한이 먼저가 된다. 다음 편에서 MCP가 실제로 바꾼 것과, 벡터스토어를 애플리케이션 밖으로 떼어 내는 재편을 다룬다.