오답률 1/8에서 1/50으로 낮춘 Motorway의 검색 에이전트
AI 에이전트의 오답률이 8건 중 1건에서 50건 중 1건으로 낮아지면 실제 거래가 일어나는 서비스의 신뢰도가 달라진다. Motorway는 검색 에이전트의 오답률을 1/8에서 1/50로 줄이고 이슈 탐지 시간을 수 시간에서 수 분 단위로 단축했다. 피크 시간대 동시 사용자 수가 약 1,500명에 달하는 환경에서 도구 선택 오류나 시맨틱 검색(의미 기반 검색)의 오해는 곧바로 사용자 이탈로 이어진다. 이 시스템은 도구 선택 오류를 없애 사용자 이탈을 방지하는 것을 목적으로 한다.
Motorway는 Strands Agents SDK와 Amazon Bedrock AgentCore를 결합해 이 시스템을 구축했다. Amazon Bedrock AgentCore는 AI 에이전트를 대규모로 배포하고 운영하는 완전 관리형 서비스다. 이 에이전트는 89개 이상의 차량 속성을 필터링하고 벡터 유사도 검색을 수행하는 8개의 도구를 제공한다. 벡터 데이터베이스인 LanceDB와 텍스트를 수치로 변환하는 Amazon Titan Text Embeddings V2를 통해 정밀한 차량 검색을 구현했다. 추론 모델로는 Claude를 사용하여 사용자의 의도를 분석하고 적절한 도구를 선택한다.
전체 요청 흐름은 딜러가 웹 인터페이스를 통해 자연어로 쿼리를 제출하는 것으로 시작한다. 이 요청은 Amazon Bedrock AgentCore Runtime으로 전달되어 8개의 서로 다른 도구 호출을 조율한다. 런타임은 Claude를 통해 추론을 수행하고 Amazon Titan을 통해 임베딩을 처리하며 각 도구의 실행 순서를 결정한다. 도구의 응답은 다시 런타임을 거쳐 딜러에게 최종 결과로 전달된다. 이 구조는 복잡한 차량 검색 조건을 정확한 데이터 쿼리로 변환해 검색 누락을 줄인다.
고객 응대 에이전트에게는 한 번의 성공보다 연속적인 성공 확률인 pass^k 지표가 더 중요하다. 예를 들어 단일 시도 성공률이 75퍼센트인 에이전트가 세 번의 연속적인 시도에서 모두 성공할 확률은 약 42퍼센트로 급격히 떨어진다. 사용자는 매 상호작용마다 동일한 수준의 품질을 기대하므로 단발성 성공률보다 일관된 성능 유지가 필수적이다. Motorway는 도구 사용, 추론, 출력 품질을 단계별로 검증하는 3계층 평가 파이프라인을 구축하여 오답률을 1/50 수준으로 통제했다.
배포 게이트 역할을 하는 3계층 평가 프레임워크
배포 여부를 결정하는 첫 번째 관문인 Tool Usage 레이어는 95% 이상의 통과 임계값을 요구한다. 이 단계에서는 에이전트가 요청에 맞는 올바른 도구를 선택했는지와 각 도구에 필요한 파라미터를 정확하게 전달했는지를 검증한다. `ToolSelectionGrader`와 `TrajectoryOrderGrader`라는 결정론적 코드 기반 그레이더를 사용하여 입력값이 동일할 때 항상 같은 결과가 나오도록 도구 선택의 정확성과 호출 순서를 엄격하게 확인한다.
추론 과정을 검증하는 Reasoning 레이어는 85%의 임계값을 기준으로 작동한다. 여기서는 strands-agents-evals 프레임워크의 `HelpfulnessEvaluator`와 `TrajectoryEvaluator`를 활용해 에이전트의 사고 과정을 분석한다. 평가 방식은 LLM-as-judge로, LLM이 평가자가 되어 에이전트가 정답에 도달하기까지의 추론 경로에 점수를 매긴다. 단순히 정답 여부가 아니라 의사결정 과정의 논리성을 확인하여 우연히 정답에 도달한 사례를 걸러낸다.
최종 응답의 유용성을 판단하는 Output Quality 레이어의 통과 기준은 90%다. `OutputEvaluator`와 `GoalSuccessRateEvaluator`를 통해 응답이 사용자에게 실질적인 도움이 되는지, 사실 관계가 정확하고 즉시 실행 가능한지를 평가한다. 이 단계 역시 strands-agents-evals 프레임워크 기반의 LLM-as-judge 방식을 적용한다. 최종 결과물이 사용자 요구사항에 맞춰 정돈된 형식으로 제공되었는지와 실제 목표 달성률을 수치화하여 배포 가능 여부를 최종 결정한다.
이 3계층 구조는 GenAIOps 라이프사이클의 빌드 타임 평가 단계에서 배포 게이트 역할을 수행한다. 도구 호출의 정확성, 추론의 논리성, 출력의 품질이라는 세 가지 필터를 순차적으로 통과해야만 실제 운영 환경에 적용될 수 있다. 각 단계에 구체적인 임계값을 설정함으로써 기준 미달 에이전트의 운영 환경 배포를 자동 차단한다.
기존 방식과 달라진 지점
기존의 LLM 평가는 응답의 일관성과 사실 정확성, 질문과의 관련성을 측정하는 데 집중하며 이는 자동차의 엔진 성능을 벤치 위에서 측정하는 것과 같다. 텍스트 생성 모델의 성능을 가늠하는 이 방식으로는 에이전트가 Grade 1 Suzuki 모델을 찾아달라는 요청을 받았을 때 적절한 검색 도구를 호출했는지 알 수 없다. 텍스트 기반 지표는 결과물의 외형적인 품질을 측정할 뿐, 내부적으로 어떤 도구를 어떤 순서로 사용했는지에 대한 경로를 추적하지 못하기 때문이다.
에이전트 평가의 중심은 올바른 도구 호출 여부와 정확한 필터 파라미터 전달, 그리고 멀티턴 대화의 맥락 유지에 있으며 이는 실제 도로 주행 능력을 검증하는 과정에 가깝다. 특히 에이전트가 LanceDB에 정확한 필터 파라미터를 전달했는지를 확인하는 과정이 필수적이다. 사용자가 이전 대화에서 언급한 조건을 바탕으로 결과를 정제해달라고 요청했을 때, 에이전트가 이전 맥락을 유지하며 적절한 도구를 다시 호출하는지는 기존의 단발성 텍스트 평가 지표로는 측정할 수 없다. 응답 텍스트가 자연스럽더라도 내부적으로 잘못된 도구를 호출하거나 파라미터를 누락했다면 이를 기능적 실패로 간주하고 수정 대상으로 분류한다.
구어체 표현에 따른 검색 실패 사례는 시맨틱 검색 레이어의 평가가 얼마나 중요한지를 보여준다. Volkswagen Golf 7-12 years old와 같이 명확하고 구조화된 쿼리는 시스템이 정확하게 처리할 가능성이 높다. 반면 I’m looking for an older VW 같은 일상적인 표현은 시맨틱 검색 레이어에서 적절한 필터 값으로 변환되지 못해 실패할 확률이 크다. 텍스트 생성 품질만으로는 이러한 검색 레이어의 결함을 발견할 수 없으며, 이는 도구 호출 단계에서의 구체적인 검증 없이는 실제 사용자 경험을 보장할 수 없음을 의미한다.
pass^k 지표와 실제 사용자 데이터 기반의 테스트 케이스 확장
LLM은 동일한 입력값에 대해서도 실행 시점마다 서로 다른 결과물을 내놓는 출력 변동성을 가진다. 단일 시도 결과만으로 배포 여부를 결정하면 우연히 성공한 사례가 전체 성능으로 오인될 위험이 크다. 이를 방지하기 위해 여러 번의 시도 중 k번 성공하는 비율을 측정하는 pass^k 지표를 도입했다. 실제 구현 단계에서는 `run_all_layers` 함수에 `num_trials` 매개변수를 추가해 다회차 테스트를 자동화했다.
run_all_layers(task_fn, registry, num_trials=5)위 코드는 동일한 태스크를 5회 반복 실행하며, 설정된 임계값을 통과해야만 다음 배포 단계로 넘어가는 게이트 역할을 수행한다. 이는 반복 테스트를 통해 우연한 성공이 아닌 일관된 성능을 검증하는 절차다.
테스트 케이스의 규모는 초기 50개에서 3개월 만에 150개로 3배 확장했다. 실제 사용자가 서비스와 주고받은 인터랙션 데이터를 분석해 테스트 셋에 반영했으며, 특히 특정 질문에서 절대 호출해서는 안 되는 도구를 호출하는지 확인하는 네거티브 케이스(Negative Case)를 집중적으로 추가했다. 예를 들어 단순 정보 조회 요청 시 결제나 변경 도구를 호출하는 오류를 잡아내는 식이다. 실제 데이터를 기반으로 한 테스트 셋 고도화는 개발자가 예측하지 못한 엣지 케이스를 실무 수준에서 걸러내는 필터가 된다.
단발성 질의 응답의 정확도를 넘어 대화의 맥락 유지 능력을 검증하기 위해 ActorSimu를 활용한 멀티턴 대화 시뮬레이션을 도입했다. ActorSimu는 가상의 사용자 역할을 수행하며 에이전트와 연속적인 대화를 시뮬레이션하고, 이 과정에서 대화의 일관성이 깨지지 않는지 추적한다. 이전 대화에서 언급한 조건이 다음 응답에서도 정확히 유지되는지, 혹은 불필요한 반복 질문이 발생하지 않는지를 중점적으로 확인하여 배포 후 발생할 수 있는 맥락 붕괴 사고를 사전에 방지한다.
한국 B2B AI 에이전트 도입을 위한 실무 판단 기준
에이전트가 거친 경로를 평가하는 것보다 최종적으로 생성한 결과물을 평가하는 것이 더 많은 이슈를 잡아낸다. 사용자가 관련성 높은 결과를 얻었는지가 중요할 뿐, 에이전트가 어떤 도구를 먼저 호출했는지는 핵심 지표가 아니다. 초기 배포에는 30분에서 45분이 소요되며 도메인 맞춤 설정에는 2시간에서 3시간이 필요하다. 샘플 평가 세트를 실행하는 데 드는 Amazon Bedrock 추론 비용은 약 5달러에서 10달러 수준이다. 고단가 상품을 거래하는 B2B 환경에서는 이러한 추론 비용보다 오답으로 인한 거래 손실 리스크를 줄이는 검증 리소스 산정이 더 중요하다.
보안 설정은 최소 권한 IAM 역할을 적용해 불필요한 리소스 접근을 원천 차단한다. API 키는 환경 변수가 아닌 AWS Systems Manager Parameter Store에 저장해 관리 효율과 보안성을 높였다. 입력 단계에서는 타입 지정 파라미터를 사용해 데이터 형식을 엄격히 강제함으로써 인젝션 공격을 방지한다. 이는 프롬프트 조작을 통해 내부 데이터에 접근하려는 시도를 기술적으로 차단하는 장치다.
운영 환경에서 탐지된 이슈를 즉시 새로운 테스트 케이스로 전환해 평가 데이터셋에 반영하는 구조를 갖춰야 한다. 운영 데이터를 테스트 셋에 추가해 모델 업데이트나 엔진 교체 시 성능 저하 여부를 즉각 판별하는 회귀 테스트의 기준점으로 활용한다. 실제 사용자의 행동 데이터가 평가 세트의 정밀도를 결정하며 이를 통해 예외 케이스를 지속적으로 보완한다.
실무 도입 시 LLM 응답 품질보다 도구 호출의 정확도와 파라미터 전달의 정밀함을 3계층 임계값으로 정량 측정하는 체계를 구축하는 것이 핵심이다.
LLM의 단순 응답 품질이 아니라 도구 호출의 정확도와 파라미터 전달의 정밀함을 3계층 임계값으로 정량 측정하는 체계를 구축하는 것이 실무 도입의 핵심이다.




