내가 출시한 AI 에이전트는 23개의 유닛 테스트를 통과했지만, 라이브 서비스에 적용된 지 한 시간 만에 존재하지 않는 제품 기능을 만들어내고 실제보다 3배나 낮은 가격을 제시했습니다. 사용자가 이를 지적하자 봇은 오히려 자기 주장을 굽히지 않았고, 대화는 중단되었으며, 결국 고객 한 명을 잃었습니다. 이 실수는 결정론적인(deterministic) 유닛 테스트 세트만으로는 에이전트의 신뢰성을 보장할 수 없다는 사실을 증명했습니다.
AI 에이전트에게 유닛 테스트가 부족한 이유
전통적인 코드에서 유닛 테스트가 효과적인 이유는 동일한 입력에 대해 항상 동일한 출력이 나오기 때문입니다. "2 + 2 = 4"는 단순한 등호 확인만으로 검증할 수 있는 보장된 결과입니다. 하지만 LLM 기반 에이전트는 프롬프트, 주변 문맥, 그리고 호출하는 외부 도구의 상태에 따라 출력이 달라집니다. 정확한 문자열 일치 여부만 확인하는 테스트는 환각(hallucination), 어조 변화, 또는 가드레일 위반을 잡아내지 못합니다. 고객을 잃게 만든 이 '조용한 실패(silent failure)'는 개별 함수가 아닌 전체 상호작용을 평가해야 함을 보여줍니다.
기능 코드를 작성하기 전 평가 하네스(evaluation harness) 구축하기
저는 개발 순서를 뒤집었습니다. 먼저 4계층 평가 하네스를 설계한 다음 에이전트를 작성했습니다. 이 하네스는 한 번의 실행으로 131개의 테스트를 수행하며, 실행당 비용은 약 3센트, 소요 시간은 약 11분입니다. 각 테스트를 처리할 수 있는 가장 작은 모델에 할당하고, 더 크고 비싼 모델은 진정으로 가치를 더할 수 있는 순간을 위해 남겨둡니다.
계층 1 – 도구 기능성 (Tool functionality)
첫 번째 방어선은 에이전트가 도구를 올바르게 호출할 수 있는지 확인합니다. 테스트에는 성공적인 검색, 의도적으로 잘못된 쿼리, 그리고 시뮬레이션된 API 실패가 포함됩니다. 도구 사용은 요청이 올바르게 형성되거나 API가 에러를 반환하는 식의 결정론적인 성격이 강하므로, 간단한 Python assertion만으로도 충분합니다. 여기서 잘못된 요청을 잡아내면 이후 단계에서의 혼란을 방지할 수 있습니다.
계층 2 – 지시 사항 준수 (Instruction following)
다음으로 하네스는 에이전트가 가드레일을 준수하는지 검증합니다. 더 작은 LLM이 평가자 역할을 수행하며 에이전트의 응답이 규정을 준수하는지 스캔합니다. 즉, 캐릭터를 유지하는지, 금지된 주제를 피하는지, 요구된 JSON 스키마를 출력하는지 등을 확인합니다. 이 계층은 의도치 않은 페르소나로 변하거나 내부 프롬프트가 유출되는 것과 같이 유닛 테스트가 놓치기 쉬운 의미론적 드리프트(semantic drift)를 잡아냅니다.
계층 3 – 목표 지향적 행동 (Goal-oriented behavior)
세 번째 계층이 가장 중요합니다. 에이전트가 실제로 목적을 달성하는지를 묻습니다. 리드 생성(lead-generation) 봇의 경우, 적절한 자격 확인 질문을 던지는지, 그리고 적절한 시점에 상담원에게 연결하는지를 확인하는 것을 의미합니다. 여기서는 비용을 과도하게 높이지 않으면서 전체적인 흐름을 평가할 수 있는 추론 중심 모델을 사용합니다. 봇이 처음 두 계층을 통과하더라도 목표 달성에 실패하면 재설계 대상으로 분류됩니다.
계층 4 – 성능 (Performance)
마지막으로 하네스는 지연 시간(latency)과 토큰 생성 속도를 기록합니다. 느린 응답은 특히 실시간 채팅에서 사용자 경험을 저해합니다. 기능적 정확성과 함께 이러한 지표를 추적함으로써, 에이전트가 정확하면서도 반응성이 좋도록 보장합니다.
비용 절감 전략
실행당 0.03달러라는 수치는 마케팅용 과장이 아닙니다. 테스트 복잡도에 맞춰 모델 크기를 매칭한 결과입니다. 결정론적인 도구 체크는 가장 저렴한 런타임에서 실행하고, 지시 사항 준수는 경량 모델을 사용하며, 목표 지향적 평가에만 더 비싸지만 더 유능한 모델을 호출합니다. 이러한 계층적 접근 방식 덕분에 모든 코드 변경 시 전체 테스트 세트를 실행할 수 있을 만큼 총비용을 낮게 유지할 수 있습니다.
트레이드오프: 속도 대 안전성
하네스를 도입하면서 초기 마찰이 발생했습니다. 개발 주기가 길어졌고 출시 일정은 지연되었습니다.
향후 주목할 점
- 모델 기반 평가자(Model-driven evaluators): LLM이 발전함에 따라 계층 2의 평가자는 더욱 정교해질 수 있으며, 미세한 정책 위반을 찾아내면서도 오탐(false positives)을 줄일 수 있습니다.
요약
프로덕션용 AI 에이전트를 구축한다면, 계층화된 평가 하네스는 선택 사항이 아니라 필수적인 토대입니다. 실행당 0.03달러, 세트당 11분이라는 포괄적인 테스트 비용을 미리 투입함으로써, 유닛 테스트로는 절대 감지할 수 없는 '조용한 실패'로부터 서비스를 보호할 수 있습니다.
