소프트웨어를 개발할 때 우리는 보통 사전에 시나리오를 예측하여 단위 테스트나 통합 테스트를 작성한다. 하지만 LLM 에이전트 환경에서는 사용자의 입력이 무한하고, 사용할 수 있는 도구 조합의 경우의 수가 방대하다. 이 때문에 사전에 모든 엣지 케이스를 상상하여 완벽한 합성 데이터셋(Synthetic dataset)을 구축하는 것은 불가능에 가깝다.

에이전트 시스템에서 가장 가치 있는 테스트 케이스는 누군가 책상에서 상상한 시나리오가 아니라 ‘오늘 프로덕션에서 발생한 실패 트레이스’ 그 자체다.

근거

Opik과 같은 관측성 루프에서 가장 흥미로운 점은 테스트 스위트를 구축하는 방식이다. 디버깅을 위해 분석된 실제 실패 트레이스와 맥락은 버려지지 않고 곧바로 시스템의 회귀 테스트(Regression Test) 스위트로 편입된다.

The suite grows from real production failures, not synthetic scenarios someone wrote in advance.

이는 AI 평가(Evals) 패러다임의 중대한 전환이다. 연구자들이 모델을 평가할 때 사용하는 정적인 벤치마크나 고정된 점수를 쫓는 대신, 실제 시스템이 마주쳐 넘어졌던 돌부리들을 하나씩 수집하며 테스트 스위트를 “키우는(growing)” 것이다. 이렇게 누적된 테스트들은 단순한 플로팅 포인트 수치 비교가 아니라 LLM-as-a-judge를 활용한 자연어 검증을 통해 유연하게 작동한다. 결국 프로덕션 에이전트의 안정성은 사전에 얼마나 많은 시나리오를 설계했는지가 아니라, 발생한 실패를 얼마나 빨리 시스템의 방패(Test)로 변환할 수 있는가에 달려 있다.

연결된 생각

  • shift-right-testing — 실제 사용자의 예측 불가능성을 통제하기 위해 프로덕션 단계에서의 피드백을 테스트화하는 전략
  • llm-evals-in-production — 정적 벤치마크(MMLU 등)의 한계를 극복하고 실제 프로덕션 데이터를 기반으로 성능의 퇴행을 막는 실용적 접근

출처

클리핑 · x.com