LangWatch Scenario의 개요
Scenario는 LLM 관측성 기업 LangWatch가 만든 도구로, 에이전트와 대화하면서 테스트합니다. 상황을 평이한 말로 설명하면 UserSimulatorAgent가 사용자의 메시지를 쓰고, 여러분의 에이전트가 하나의 call() 어댑터로 답하며, JudgeAgent가 매 턴 대화를 기준에 비춰 확인한 뒤 판정으로 마무리합니다. 스크립트에는 고정 메시지, 생성 메시지, 도구 호출에 대한 단언, 모의 도구 결과를 섞을 수 있고, RedTeamAgent는 모의 사용자를 Crescendo 방식으로 공격 수위를 높이는 다중 턴 공격자로 바꿉니다.
테스트는 일반 pytest(Python) 또는 vitest(TypeScript) 테스트로 실행됩니다. Go도 목록에 있지만 README에는 설명이 없습니다. 음성 에이전트는 ElevenLabs, OpenAI Realtime, Twilio, Pipecat, Gemini Live용 어댑터로 테스트할 수 있으며, 오디오 주입, 배경 소음, p50·p95 지연 수치를 지원합니다. cache_key를 쓰면 모의 사용자가 실행마다 같은 입력을 반복합니다.
저장소의 스타는 약 1,000개이고 라이선스는 Apache-2.0입니다. 시뮬레이터와 심판에는 LLM 키가 필요하며(예제 기본값은 openai/gpt-4.1-mini), LangWatch 키는 선택 사항으로 실행 상황을 실시간으로 보여 줍니다.
LangWatch Scenario, 쓸 만한 가치가 있습니까?
단일 프롬프트 평가로는 에이전트가 어떻게 실패하는지 보이지 않습니다. 에이전트는 첫 질문에 잘 답하고도 네 번째 턴에서 제약을 잊거나, 사용자가 마음을 바꾸면 엉뚱한 도구를 호출할 수 있습니다. Scenario는 대화 전체를 모의 실행해 이를 테스트하며, 가장 큰 성과는 그것을 테스트 묶음의 다른 테스트와 똑같아 보이게 만든 것입니다. 설명, 심판용 기준 목록, 결과에 대한 assert를 가진 pytest 또는 vitest 함수입니다.
스크립트 방식이 가장 강력한 부분입니다. 시뮬레이터를 max_turns까지 자동으로 돌릴 수도 있고, 첫 메시지를 고정하고, 모의 도구 결과를 주입하고, 특정 도구가 호출됐는지 확인한 다음 나머지를 LLM에 맡길 수도 있습니다. 이렇게 섞으면 테스트가 시뮬레이터가 우연히 하는 말이 아니라 여러분이 신경 쓰는 동작에 집중합니다. 음성 지원은 오픈소스 경쟁 제품보다 한 걸음 더 나아가 끼어들기 테스트와 지연 백분위수까지 다룹니다.
주의할 점: 모든 테스트를 두 모델이 움직이고, 둘 다 토큰 비용이 들며, 둘 다 결과가 흔들립니다. cache_key로 모의 사용자를 캐시하고 여러분 에이전트의 LLM 호출을 @scenario.cache()로 감싸면 재현성이 돌아오지만, 프롬프트를 바꾸면 캐시가 무효가 됩니다. 음성 전용 테스트에도 OpenAI 키가 필요한데, 시뮬레이터와 심판이 기본적으로 텍스트 모델이기 때문입니다. 프로젝트는 작아서 스타 약 1,000개에 미해결 이슈가 165개이며, 음성 섹션에 잘못된 패키지 이름이 적혀 있는 등 README에 눈에 띄는 오류가 있습니다.
LangWatch 클라우드는 선택 사항입니다. 키가 없으면 결과는 터미널에만 남고, 키가 있으면 무료 Developer 등급에서 3회 시뮬레이션까지 쓸 수 있으므로, 공유 대시보드를 원하는 팀은 좌석당 €29인 Growth로 가게 됩니다.
Scenario는 기존 평가 라이브러리를 대체하기보다 옆에 둘 때 가장 잘 맞습니다. 지표와 스캔은 Giskard나 DeepEval로, 여러 턴을 거쳐야 드러나는 대화 문제는 Scenario로 다루는 식입니다.
제 역할을 하는 곳
레스토랑 그룹용 예약 에이전트를 만드는 개발자
대화 도중 사용자가 날짜를 바꿔도 에이전트가 인원수를 계속 묻는지 확인
모의 사용자가 세 번째 턴에서 계획을 바꾸는 시나리오를 쓰고, 예약 전에 인원수가 확인돼야 한다는 기준을 심판에 줍니다. 실패가 재현되도록 cache_key를 붙여 CI에서 실행합니다.
직원 30명 원격의료 스타트업의 음성 AI 팀
전화 에이전트가 배경 소음과 끼어들기를 견디는지 확인
Twilio나 ElevenLabs 어댑터를 쓰고, 카페 소음을 0.3으로 주입하고 문장 중간에 끼어들기를 넣은 뒤 실행마다 p95 지연을 추적합니다. 시뮬레이터와 심판에는 여전히 OpenAI 키가 필요합니다.
도입 전 확인할 점
- 설정
- uv add langwatch-scenario pytest 또는 pnpm install @langwatch/scenario vitest를 실행하고, OPENAI_API_KEY를 설정한 뒤 call() 메서드 하나짜리 어댑터를 작성해 테스트 파일을 실행합니다.
- 연동
- pytest와 vitest. 예제에서는 LiteLLM과 Vercel AI SDK 사용. 이미 LangWatch에 연결된 에이전트는 어댑터가 필요 없음. 음성 어댑터는 ElevenLabs, OpenAI Realtime, Twilio Media Streams, Pipecat, Gemini Live.
- 데이터와 개인정보
- 로컬에서 실행되며, 대화는 시뮬레이터와 심판에 설정한 LLM 제공업체로 전송되고, LANGWATCH_API_KEY를 설정한 경우에만 LangWatch로 전송됩니다. 캐시는 ~/.scenario/cache에 저장됩니다.
- 대규모 사용 시 비용
- 라이브러리는 무료이며, 비용은 테스트의 턴마다 LLM 두 개입니다. LangWatch Growth는 코어 좌석당 월 €29에 200k 이벤트가 포함되고 이후 100k당 €5이며, 시뮬레이션 단계 하나가 이벤트 하나로 계산됩니다.
- 제한
- max_turns로 대화 길이가 제한됩니다. LiveKit, Vapi, 범용 WebRTC용 음성 어댑터는 계획 단계이며 아직 출시되지 않았습니다.
좋은 점
- 여러 턴짜리 에이전트 테스트를 일반 pytest나 vitest 테스트로 작성
- 스크립트에 고정 턴과 모의 턴, 도구 단언, 목을 섞을 수 있음
- Crescendo 방식의 다중 턴 공격을 하는 레드팀 에이전트
- 소음 주입과 지연 백분위수를 지원하는 음성 어댑터
- 재현 가능한 실행을 위한 캐시
아쉬운 점
- 시뮬레이터와 심판의 LLM 호출로 매 실행마다 토큰 비용 발생
- 캐시하지 않으면 실행마다 결과가 달라짐
- Go는 목록에 있지만 문서가 없음
- 미해결 이슈 165개와 README 오류가 있는 작은 프로젝트
추천 대상
채팅이나 음성 에이전트를 만들면서 기존 테스트 러너에서 대화 단위 회귀 테스트를 하려는 팀.
LangWatch Scenario 대안
LangWatch Scenario: 자주 묻는 질문
- LangWatch Scenario, 쓸 만한 가치가 있습니까?
- Scenario는 여러 턴짜리 에이전트 테스트를 일반 단위 테스트처럼 쓰는 가장 명확한 방법입니다. 다만 양쪽에 LLM이 있어 실행할 때마다 결과가 조금씩 다르고 비용도 조금씩 든다는 점을 받아들여야 합니다. 평점은 5점 만점에 3.9점입니다.
- LangWatch Scenario의 가격은 얼마입니까?
- 무료 오픈소스(Apache-2.0)이며 시뮬레이터와 심판의 토큰 비용은 직접 부담합니다. 선택형 LangWatch 클라우드: Developer €0(50k 이벤트, 3회 시뮬레이션), Growth는 코어 좌석당 월 €29에 200k 이벤트 포함, 이후 100k당 €5.
- LangWatch Scenario의 단점은 무엇입니까?
- 시뮬레이터와 심판의 LLM 호출로 매 실행마다 토큰 비용 발생; 캐시하지 않으면 실행마다 결과가 달라짐; Go는 목록에 있지만 문서가 없음; 미해결 이슈 165개와 README 오류가 있는 작은 프로젝트.
- LangWatch Scenario에 적합한 사람은 누구입니까?
- 채팅이나 음성 에이전트를 만들면서 기존 테스트 러너에서 대화 단위 회귀 테스트를 하려는 팀.
- 팀이나 프로덕션 환경에서 LangWatch Scenario의 비용은 얼마입니까?
- 라이브러리는 무료이며, 비용은 테스트의 턴마다 LLM 두 개입니다. LangWatch Growth는 코어 좌석당 월 €29에 200k 이벤트가 포함되고 이후 100k당 €5이며, 시뮬레이션 단계 하나가 이벤트 하나로 계산됩니다.
- LangWatch Scenario에 회사 데이터를 맡겨도 안전합니까?
- 로컬에서 실행되며, 대화는 시뮬레이터와 심판에 설정한 LLM 제공업체로 전송되고, LANGWATCH_API_KEY를 설정한 경우에만 LangWatch로 전송됩니다. 캐시는 ~/.scenario/cache에 저장됩니다.
- LangWatch Scenario의 가장 좋은 대안은 무엇입니까?
- 저희가 리뷰한 것 중 가장 가까운 대안은 Giskard, DeepEval, promptfoo 및 Langfuse입니다.
답변 확인일: 2026년 11월 6일.