인도 퀵커머스 플랫폼 Zepto는 Databricks와 MLflow를 기반으로 AI 고객 지원 에이전트를 평가·운영하는 체계를 구축했다. 회사에 따르면 이 시스템은 하루 10만 건이 넘는 문의를 처리하며, 평가를 개발과 배포의 관문으로 삼아 비용·품질·속도를 관리한다.
Zepto는 수천 가지가 넘는 상품을 취급하고 60개가 넘는 도시에서 몇 분 단위 배송을 제공한다. 이런 사업에서 고객 지원도 배송만큼 빠르게 대응해야 한다. Zepto는 초기에 에이전트를 빠르게 만들고 출시할 수 있었지만, 문의량과 지원 범주가 늘고 고객 행동이 바뀌면서 에이전트의 신뢰성을 유지하는 일이 더 어려워졌다. Databricks와 협력해 에이전트를 더 많이 내놓기보다 평가를 개발·시험·운영의 중심에 두는 방식으로 문제에 대응했다.
평가를 개발과 운영의 기준으로 삼다
하루 10만 건이 넘는 AI 에이전트 문의에서는 오류율이 1%여도 매일 수천 건의 잘못된 결과와 매출 손실이 생길 수 있다. 날씨, 디왈리, 여름 시작 시기에 문의량이 급증했고, 식료품에서 의류·전자제품·뷰티 제품으로 사업을 확장하면서 환불·교환·반품 절차도 늘었다. 더 다양하고 여러 언어를 쓰는 고객층에서 새로운 지원 요청이 나오면서 몇 주마다 새로운 실패 유형이 드러났다.
에이전트는 의도 분류, 지식 검색, 입력 분석, 판단, 거래 도구 호출, 응답 생성처럼 여러 단계로 움직인다. 따라서 마지막 답변만 확인해서는 실패를 찾기 어렵다. 고객이 불만을 제기하기 전까지 오류가 보이지 않고, 수정이 늦어지며, 최종 답변이 내부 단계의 오류를 가릴 수 있었다. 에이전트별 비용·성능·품질의 균형을 정할 원칙도 부족했고, 설계에 이해관계자의 관점이 모두 반영되지 않았으며, 에이전트가 빠르게 바뀌는 상황에서 신뢰성을 보장하기도 어려웠다.
Zepto는 Databricks와 MLflow를 중심으로 에이전트를 만들고 운영하는 핵심 인프라로 평가 체계를 구축했다. 회사가 제시한 성과는 다음과 같다.
- 사람의 감독 아래 문의의 80% 이상을 AI 에이전트가 처리했다.
- 고객 지원 비용 또는 지원 티켓이 65% 줄었다.
- 투자 회수 기간은 한 달 미만이었다.
- 고객 만족도(CSAT)는 20%, 정확도는 8% 개선됐다.
- 개발 주기는 3배 빨라졌고, 해결 시간은 4배 단축됐다.
Zepto는 개발 루프와 운영 루프를 품질 관문으로 연결하는 이중 루프 구조를 사용한다. 개발 루프에서는 배포 전에 에이전트 버전을 설계하고 시험하며, 운영 루프에서는 실제 동작을 감시하고 실패를 찾는다. 운영 중 발견한 실패는 다음 개발 단계로 되돌아간다. 품질 관문은 어떤 버전을 운영 환경에 넣을지, 어떤 버전을 개선을 위해 개발 단계로 돌려보낼지 결정한다. 실패를 자동으로 기록하고 되돌려 개선에 활용하는 방식이다.
추적과 평가 데이터 구축
각 에이전트 호출은 프롬프트, 생성 결과, 검색한 문서, 도구 호출, 지연 시간, 판단 경로를 담은 실행 추적을 남긴다. 입력과 최종 출력만 보는 대신 작업 흐름을 세부적으로 살핀다. Zepto는 MLflow의 자동 추적 기능과 사용자 지정 구간을 함께 활용한다. 다음 한 줄로 자동 추적을 켤 수 있으며, @mlflow.trace 데코레이터로 더 자세한 기록이 필요한 곳에 사용자 지정 구간을 추가한다.
mlflow.<library>.autolog()
추적은 고유 ID가 있는 OpenTelemetry 구간으로 실시간 전송되며, MLflow와 Unity Catalog의 연동을 통해 Delta 테이블에 기록된다.
다음 단계는 이해관계자별로 에이전트의 성공 기준을 정하는 일이다. Zepto는 이를 평가 기준과 각 기준에 연결된 통과 조건으로 공식화했다. 고객 경험, 운영 효율, 위험 및 규정 준수, 재무 영향 등이 대표적인 평가 기준이다. 각 기준에는 배포 전에 충족해야 하는 수치 임계값을 둔다. 이렇게 하면 여러 이해관계자의 논의를 공통의 측정 가능한 기준으로 바꿀 수 있다.
개발 단계에서 에이전트 행동을 평가하는 기준 데이터셋은 ‘골든 데이터셋’이다. 여기에는 정상 상황뿐 아니라 에이전트가 다뤄야 할 예외와 실패 사례, 이해관계자별 기대를 담은 예시, 시나리오 유형·사업 분야·위험 수준 같은 메타데이터가 들어간다. 보안팀은 프롬프트 인젝션, 신원 공격, 데이터 유출 시도 같은 공격 사례를 보탰다.
Zepto는 6개월 동안 MLflow 평가 데이터셋을 늘렸다. 예시 500개일 때 개발·운영 정확도 차이는 8%포인트였고, 2,000개일 때는 2%포인트, 5,247개일 때는 0.4%포인트로 줄었다. 회사는 데이터셋 품질에 한 시간을 투자하면 운영 단계 디버깅 시간을 대략 열 시간 아낄 수 있다고 설명한다. 운영에서 발견한 실패 추적을 골든 데이터셋에 보태면 이후 버전의 대응력이 높아진다는 것이다.
프롬프트·채점기·모델 선택 자동화
Zepto는 프롬프트를 일일이 작성하는 대신 데이터 기반으로 생성하고 최적화하는 방식을 택했다. MLflow의 프롬프트 최적화 기능으로 초기 프롬프트를 등록하고, 배포 관문에서 사용하는 채점기를 기준으로 여러 후보를 만들고 최적화한다. A/B 평가를 자동으로 실행한 뒤 가장 나은 결과를 배포한다. 최적화 과정에는 강력한 모델을 사용하고 운영 점수 산출에는 더 저렴한 모델을 사용해 탐색 비용을 고려한다. 회사는 이 방식이 수작업 실험을 줄이고 정확도를 개선하며, 프롬프트 개선이 운영에 도달하기 전 골든 데이터셋을 기준으로 측정되도록 했다고 설명한다.
운영 추적은 에이전트 품질의 여러 평가 기준에 따라 점수를 매긴다. MLflow는 세 종류의 채점기를 제공한다.
- 기본 제공 판정기: 바로 사용할 수 있는 채점기
- 사용자 지정 판정기: 고유한 요구에 맞춰 만드는 판정기
- 코드 기반 채점기: 도구 지연 시간이나 도구 호출 횟수처럼 결정적인 지표에 사용
Zepto는 사람과 비슷한 판단이 필요한 경우에만 대규모 언어 모델(LLM) 기반 채점기를 쓰고, 결정적 로직으로 충분한 항목에는 단순 규칙을 적용한다. 사람의 라벨과 비교해 판정기를 보정해 80~90% 일치율을 얻고, 중요한 결정에는 여러 판정기를 사용한다.
모델 선택의 유연성도 프레임워크의 일부다. Databricks에서 모델 이름을 바꾸는 방식으로 여러 상용 및 오픈소스 모델을 전환할 수 있어 개발 루프에서 비용·성능·품질의 조합을 계속 탐색할 수 있다.
에이전트 로직, 프롬프트 또는 모델이 바뀌면 회귀 평가를 자동 실행한다. 이 작업 흐름에는 새 에이전트 버전, 골든 데이터셋, 현재 운영 기준 버전이 입력된다. 시스템은 모든 채점기와 평가 기준의 지표를 계산한 뒤 비용·품질·성능 조건을 충족하는지, 현재 운영 버전보다 같거나 나은지 확인한다. 조건을 충족하면 새 버전을 운영에 배포하고, 그렇지 않으면 거부해 기존 에이전트가 계속 요청을 처리한다. 신뢰성이 확인되면 자동 배포까지 진행한다.
운영 중 표본 검사와 알림
전체 트래픽을 평가하면 비용이 많이 든다. 반대로 전체의 10%를 무작위로 뽑는 방식은 예외 사례를 놓치기 쉽다. Zepto는 고객 가치가 높은 요청, 새 기능이나 최근 바뀐 흐름, 부정적인 감정이나 높은 상담 이관 위험, 이미지 기반 또는 사기 위험이 큰 요청에 따라 평가 표본 비율을 달리하는 층화 표본 추출을 구현했다.
이 방식은 하루 약 14,400개의 추적에 해당하는 트래픽의 18~20%를 평가하면서 예외 사례의 45~60%를 포착하고, 4~6분 안에 문제를 찾도록 설계됐다. Zepto는 균일 표본 추출 방식과 비교해 문제 하나를 찾는 데 드는 검토 비용을 86% 줄이고 예외 사례 탐지율을 9배 높였다고 밝혔다.
평가 결과는 Delta 테이블에 기록하고 Databricks 대시보드와 알림 규칙으로 보여준다. 5분마다 확인하는 주요 알림은 의도 정확도 하락, 근거 위반, 상담 이관 위험 증가, 95백분위 지연 시간 초과를 감시한다. 중간·높음 단계 알림은 공감 능력 저하, 비용 급증, 도구 실패율, CSAT 추이, 사기 탐지율, 멀티모달 지연 시간을 추적한다. Zepto는 이를 통해 AI 에이전트에도 SRE와 비슷한 방식의 신속한 탐지·분류·완화 작업을 적용한다.
고객 지원 에이전트 구성
Zepto의 고객 지원 시스템은 관찰과 분해가 가능하도록 구성됐다. 채팅이나 이미지로 들어온 문의는 에이전트 오케스트레이터와 라우터를 먼저 거친다. 라우터는 어느 단계에서든 사람에게 상담을 넘길 수 있다. 시스템은 특정 의도 유형을 맡는 수직 에이전트와 여러 사용 사례를 감독하는 수평 에이전트로 나뉜다.
수직 에이전트는 다음과 같다.
- WIMO: 주문 추적과 도착 예정 시간 문의
- Missing: 배송 누락 또는 일부 상품 누락
- Expiry: 포장 상품의 유통기한 만료
- Returns: 환불 상태와 처리
- Quality: 시들거나 상한 농산물
- Unable to Pay: 지갑, 프로모션, 결제 실패
- General: 기본 처리 에이전트
수평 에이전트는 이미지 중복을 찾아 여러 환불 청구에 재사용된 사진을 감지하고, 상품 매칭 및 이미지 조작 감지 기능으로 업로드된 이미지가 카탈로그 상품과 일치하는지, 편집되지 않았는지 확인한다. 수직 에이전트별 WIMO 의도 F1 점수나 Expiry의 OCR 정확도를 따로 측정할 수 있고, 수평 에이전트는 사기 정밀도, 이미지 재사용, 조작 감지 같은 공통 항목으로 평가할 수 있다. 각 요소를 개별적으로도 조합해서도 측정한다.
운영 사례에서 드러난 효과
Zepto는 일반적인 소프트웨어 모니터링만으로는 AI 에이전트의 문제를 파악하기 어렵다고 설명한다. 서버가 정상이고 오류가 없어도 에이전트가 고객에게 같은 오답을 반복할 수 있기 때문이다. 평가 체계는 에이전트가 응답하는지뿐 아니라 무슨 말을 하고 어디서 실패하는지도 확인하도록 설계됐다.
한 운영 문제에서는 배달 기사가 교통 체증으로 멈춰 있는데 에이전트가 캐시된 정보를 읽고 “10분 후 도착”이라는 답을 반복했다. 토큰 사용량을 감시하는 토큰 카운터와 경고 채점기가 반복 답변과 높은 상담 이관 위험을 5분 이내에 감지했다. 추적 자료는 기사가 움직이지 않고 도착 예정 시간도 바뀌지 않는 사례를 드러냈다.
Zepto는 기사가 10분 넘게 움직이지 않으면 에이전트가 상황을 사실대로 알리고 전액 환불이 가능한 취소를 먼저 제안하도록 규칙을 바꿨다. 온라인 평가에서 얻은 통찰은 지연 시 취소 제안, 기사 부족 중 선제적 취소 제안, 정해진 시간 안에 기사가 배정되지 않으면 자동 취소, 고가치 고객을 위한 사유를 묻지 않는 취소 기능으로 이어졌다.
WIMO 에이전트에 취소 처리를 추가했을 때 모델은 “주문이 어디에 있나”, “취소하고 싶다”, “주문이 취소됐나”라는 서로 다른 세 가지 의도를 혼동하기 시작했다. 개발 단계의 MLflow 평가에서 전체 의도 정확도가 약 92.1%에서 87.4%로 떨어지고, 새 WIMO_CANCEL 및 WIMO_CANCEL_STATUS 의도의 F1 점수가 낮아진 것을 즉시 확인했다. 골든 데이터셋 평가에서 회귀가 드러나 고객에게 문제 버전이 노출되지는 않았다. 프롬프트 최적화와 데이터셋 업데이트 뒤 전체 정확도는 약 94.2%로 올라 기존 기준선을 넘었고, 취소 API 도구 호출 F1 점수도 거의 완벽한 수준에 도달했다. 이 기능은 롤백 없이 출시됐다.
농산물 품질을 평가할 때는 사람끼리도 판단이 다를 수 있다. 같은 버섯 사진을 한 평가자는 5점 만점에 2점, 다른 평가자는 3점으로 매길 수 있다. Zepto는 Cohen’s Kappa로 평가자 간 불일치를 측정하고 이를 신뢰성의 상한선으로 삼았다. 모델이 학습하는 사람보다 더 일관된 판단을 할 수는 없다는 설명이다.
에이전트가 어려운 판단을 피하려고 3점에 점수를 몰아주는 경향도 확인했다. 사람의 점수는 4점과 5점에 집중됐다. 그래서 평균 오차를 줄이는 데 그치지 않고 사람 점수 분포의 형태도 맞췄다. 온라인 평가에서는 포장 상품으로 진열됐지만 신선 농산물처럼 판단해야 하는 응고된 우유 사례, 사진으로 확인할 수 없는 맛이나 냄새 불만도 드러났다. 이런 문의는 별도 경로로 보냈다. 보정된 기준선을 통해 제품 유형별 모델 선택, 사람 판단에 맞춘 프롬프트 개선, 고객 구간별 환불 정책 조정을 할 수 있게 됐다고 Zepto는 밝혔다.
환불 악용 사례에는 카탈로그 이미지, 편집한 사진, 여러 청구에 재사용한 이미지가 포함됐다. 멀티모달 평가 파이프라인은 이미지의 흐림·밝기·해상도를 전처리 단계에서 확인하고 OCR로 검증했다. 이어 세 개의 비전 모델로 구성한 판정단이 합의 규칙에 따라 자동 승인과 사람 검토 중 하나를 결정했다. 흐림 감지, 스크린샷 감지, 중복 감지, 이미지와 SKU의 일치 여부, 이미지와 신고 사유의 일치 여부, 배송 증명 확인도 함께 적용했다.
운영에서 얻은 교훈
Zepto는 한 지표만 최적화하지 말아야 한다고 강조한다. 의도 정확도만 높이려 했을 때 CSAT가 떨어진 경험이 있었다. 의도 정확도를 5%포인트 높인 설정은 지연 시간을 133% 늘리고 CSAT를 0.4%포인트 낮췄다. 여러 목표를 결합한 점수는 지연 시간을 17%만 늘리면서 의도 정확도를 3%포인트 높였고 CSAT도 0.2%포인트 개선했다. LLM 판정기, 규칙 기반 검사, 사람의 라벨, 운영 지표처럼 여러 관점을 함께 쓰는 것은 낭비가 아니라 안전장치라는 설명이다.
- 골든 데이터셋에 일찍 투자해 다양한 고품질 예시를 수천 개까지 늘린다. 개발과 운영 정확도의 차이를 추적하고 그 차이가 줄도록 개선한다. 개발·운영 간격은 데이터셋 품질을 보여주는 지표다.
- LLM 판정기도 평가 대상 모델로 취급한다. 사람 판단과의 일치도를 측정하고, 중요한 사례에는 여러 판정기를 쓰며, 기반 모델이 바뀌면 다시 보정한다.
- 표본 추출 비율보다 추출 전략이 중요하다. 단순 무작위 추출은 비용이 낮아도 문제를 놓칠 수 있다. 위험이 큰 흐름에 집중하는 층화 추출은 지출 대비 문제 탐지율을 크게 높인다.
- 피드백 루프를 첫날부터 자동화한다. 탐지, 라벨링, 재학습, 배포, 모니터링을 자동화하고 모든 실패가 다음 학습 단계에 반영되도록 한다. Zepto는 이를 통해 한 달에 약 155시간을 절약했으며, 이는 정규직 엔지니어 두 명의 시간을 기능 개발에 돌린 것과 맞먹는다고 밝혔다.
- 평가를 제품의 사용자 접점으로 다룬다. 고객 지원, 제품, 사기 대응, 운영팀이 대시보드와 지표를 쓰므로 기술적으로 정확할 뿐 아니라 이해하고 행동에 옮길 수 있어야 한다.
Databricks에서 에이전트 시스템을 만드는 조직을 위해 Zepto는 공통 추적 스키마를 정하고 모든 기록을 Delta에 저장하며, MLflow 평가를 CI/CD의 필수 관문으로 삼을 것을 제안한다. 합의된 지표에서 기준선을 넘지 못하면 배포하지 않는 방식이다. 골든 데이터셋은 크기, 개발·운영 격차, 예외 사례 포함률 등 담당 지표를 둔 자산으로 관리한다. 사람의 판단이 필요한 품질·공감·근거 충실도에는 LLM 판정기를 쓰되 보정하고 적절한 구간에 한정한다. 층화 표본 추출과 실시간 알림을 초기에 구현하고, 에이전트는 전문화된 수직 구조와 감독용 수평 구조를 결합해 개별 및 조합 평가가 가능하도록 설계하라고 권한다.
Zepto는 실험용 데모에서 핵심 인프라로 넘어갈 때 주된 제약이 모델 자체의 능력에서 시스템의 신뢰성 보장으로 옮겨갔다고 본다. Databricks와 MLflow는 Unity Catalog 및 Delta를 기반으로 한 추적 데이터 인프라, 확장 가능한 평가, 프롬프트 최적화, CI/CD 연동을 제공한다고 회사는 설명한다. 모델 선택의 유연성을 결합하면 작업별로 성능과 비용의 균형을 조정할 수 있다는 주장이다. 평가를 마지막 검사 단계가 아니라 핵심 AI 인프라로 다루는 것이 중요하다는 것이 Zepto가 제시한 결론이다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요