에이전트 테스트하기
에이전트 테스트하기 (Test)
에이전트 기반 애플리케이션은 LLM이 스스로 다음 단계를 결정해서 문제를 풀도록 만들죠. 이 유연성은 강력하지만, 모델이 블랙박스라서 에이전트의 한 부분을 살짝 바꿨을 때 전체에 어떤 영향이 갈지 예측하기 어려워요. 프로덕션에 내놓을 만한 에이전트를 만들려면 충분한 테스트가 필수입니다. 에이전트를 테스트하는 방법에는 크게 세 가지가 있어요.
세 가지 테스트 접근법
| 접근법 | 무엇을 하는가 | 특징 |
|---|---|---|
| 단위 테스트 (Unit tests) | 에이전트의 작고 결정적인 조각을 인메모리 페이크로 격리해서 실행 | 동작을 빠르고 결정적으로 단정(assert) |
| 통합 테스트 (Integration tests) | 실제 네트워크 호출로 에이전트를 테스트해서 컴포넌트가 함께 동작하는지, 자격 증명과 스키마가 맞는지, 지연 시간이 수용 가능한지 확인 | 구성 요소 간 협력 확인 |
| Evals (평가) | 이밸류에이터(evaluator)로 에이전트의 실행 궤적(trajectory)을 평가. 결정적 매칭 또는 LLM 판정 | 회귀(regression) 탐지에 유용 |
에이전트 애플리케이션은 여러 컴포넌트를 연결하고 LLM의 비결정적 특성 때문에 깜빡임(flakiness)을 다뤄야 하므로, 일반적으로 통합 테스트에 더 많이 의존해요.
시간에 따른 결과를 추적하고, 실험을 비교하며, 대규모로 평가를 실행하려면 LangSmith를 사용하세요. 시작하려면 LLM 애플리케이션 평가하기를 보면 됩니다.
각 접근법은 별도 페이지에서 더 자세히 다룹니다.
- 단위 테스트 (Unit testing) – 채팅 모델을 모킹하고 인메모리 영속성을 사용해서 API 호출 없이 에이전트 로직을 테스트합니다.
- 통합 테스트 (Integration testing) – 실제 LLM API로 에이전트를 테스트합니다. 테스트 구성, 키 관리, 깜빡임 대처, 비용 관리까지 다룹니다.
- Evals – 결정적 매칭 또는 LLM-as-judge 이밸류에이터로 에이전트 궤적을 평가합니다.