내 AI 에이전트가 하룻밤 사이에 $400을 들게 해서, 나는 에이전트를 위한 pytest를 만들고 오픈소스화했다
Source: Dev.to
배경
새벽 2시에 나는 OpenAI 대시보드를 바라보며 청구서가 $80에서 $400으로 하루 만에 뛰어오른 이유를 고민하고 있었다. 맞춤형 AI 에이전트를 6개월 동안 프로덕션에서 운영하면서, 로컬 머신에서는 완벽히 작동하던 에이전트가 프로덕션에서는 배신할 수 있다는 것을 힘들게 배웠다.
EvalView 소개
나는 정말 간단한 것이 필요했다: 에이전트가 해야 할 일을 적고, 실행하고, 바보 같은 행동을 하면 빌드를 실패시키는 것. 아이디어는 놀라울 정도로 단순하다—예상 동작을 YAML 파일에 기술하고 테스트 프레임워크가 이를 강제하도록 하는 것이다.
예시 테스트
name: order lookup
input:
query: "What's the status of order 12345?"
expected:
tools:
- get_order_status
thresholds:
max_cost: 0.10
- 에이전트가
get_order_status를 호출하지 않고 답변하면 테스트가 실패한다. - 비용이 10 센트를 초과하면 테스트가 실패한다.
CI에서 빨간 오류가 발생하면 빌드가 중단되고 배포가 차단된다.
시작하기
pip install evalview
퀵스타트
evalview quickstart
퀵스타트는 작은 데모 에이전트를 띄우고 몇 가지 테스트를 실행한다. 약 15초 정도 걸린다.
evalview run
CI 파이프라인에 이 명령을 추가하면 가드레일을 자동으로 적용할 수 있다.
왜 중요한가
EvalView를 사용하기 전에는 배포당 두세 건 정도의 화난 사용자 보고서를 받았다. 엣지 케이스 실패 때문에 저녁을 디버깅에 쏟아야 했다. EvalView는 LangGraph, CrewAI, OpenAI, Anthropic 및 HTTP를 통해 접근 가능한 거의 모든 서비스와 함께 작동한다.
추가 기능
- LLM을 판사로 활용 – 정확한 문자열 매칭을 넘어 출력 품질을 검사한다.
- 프로덕션 로그에서 테스트 자동 생성 – 실제 실패를 회귀 테스트로 자동 전환 (예정).
- 비교 모드 – 서로 다른 에이전트 버전이나 설정을 나란히 테스트해 어느 쪽이 더 나은지 확인 (예정).
저장소
소스 코드는 다음에서 확인할 수 있다:
프로덕션에서 에이전트 때문에 당황하거나 클라우드 청구서를 보며 고통을 겪은 적이 있다면 EvalView를 한 번 써보라. 늦은 밤 디버깅 세션 하나만 절약해도 별 하나는 충분히 가치 있다.
피드백 요청
다른 사람들은 에이전트 평가를 위해 어떤 작업을 하고 있는지 궁금하다. 정교한 평가 설정을 가지고 있나요? 댓글에 생각을 공유해 주세요—나도 진행하면서 계속 알아가고 있다.