에이전트가 벤치마크는 통과해도 툴이 잘못된 JSON을 반환하면 다 망가지죠. 로컬에서 테스트할 수 있는 오픈소스 도구를 만들었습니다. LangChain 지원!
Your agent passes benchmarks. Then a tool returns bad JSON and everything falls apart. I built an open source harness to test that locally. LangChain supported!
핵심 요약
LLM 에이전트가 실제 환경에서 겪는 오류 상황을 로컬에서 테스트하여 신뢰성을 측정하는 오픈소스 도구 'EvalMonkey' 소개.
- 에이전트 신뢰성 — 벤치마크 통과 후 실제 환경에서 발생하는 오류 상황을 로컬에서 재현함
- EvalMonkey 도구 — 잘못된 JSON, API 제한, 컨텍스트 오류 등 다양한 실패 상황을 테스트함
- 오픈소스 공개 — 누구나 쉽게 에이전트 워크플로우에 통합할 수 있도록 Apache 2.0 라이선스로 배포함
- 실전 테스트 — 데모용 성능이 아닌 실제 환경에서의 스트레스 상황을 측정하는 데 집중함
대부분의 에이전트 평가(evals)는 에이전트가 성공적인 경로(happy-path)의 작업을 해결할 수 있는지 테스트합니다.
하지만 실제로는 에이전트가 다른 곳에서 고장 나는 경우가 많습니다:
- 툴이 잘못된 JSON을 반환함
- 실행 도중 API 속도 제한(rate limits) 발생
- 컨텍스트가 너무 길어짐
- 스키마가 약간 변경됨
- 검색 품질 저하
- 컨텍스트를 통해 프롬프트 인젝션이 유입됨
이런 간극이 거슬려서, 저는 EvalMonkey를 만들었습니다.
이것은 LLM 에이전트를 위한 오픈소스 로컬 하네스로, 두 가지 기능을 수행합니다:
- 표준 벤치마크에서 에이전트 실행
- 동일한 작업을 제어된 실패 조건 하에서 다시 실행하여 성능이 얼마나 저하되는지 측정
따라서 단순히 이렇게 묻는 대신:
"이 에이전트가 작업을 해결할 수 있는가?"
이렇게 물어볼 수 있습니다:
"현실이 엉망이 되었을 때 무슨 일이 일어나는가?"
테스트 가능한 몇 가지 예시:
- 잘못된 툴 출력
- 누락된 필드 / 스키마 드리프트
- 지연 시간 및 속도 제한 동작
- 프롬프트 인젝션 변형
- 긴 컨텍스트 스트레스
- 검색 손상 / 노이즈가 많은 컨텍스트
목표는 간단합니다: 단순히 깨끗한 입력에 대한 벤치마크 성능뿐만 아니라, 스트레스 상황에서의 신뢰성을 측정하도록 돕는 것입니다.
제가 이 도구를 만든 이유:
제 에이전트는 제가 원하는 정확한 답변을 얻기 위해 3번의 시도가 필요하거나, 10페이지 분량의 문서를 처리할 때 타임아웃이 발생하곤 했습니다 :/ .
또한 에이전트들이 세련된 데모와 깨끗한 평가에서는 좋아 보이다가, 실제 워크플로우에서는 아주 평범한 이유로 실패하는 것을 계속 목격했습니다. 저는 인프라를 많이 설정하지 않고도 로컬에서 그러한 실패 모드를 재현할 수 있는 간단한 방법을 원했습니다.
이 도구는 오픈소스이며, 로컬에서 실행되고, 기존 에이전트 워크플로우에 쉽게 연결할 수 있도록 만들어졌습니다.
저장소: https://github.com/Corbell-AI/evalmonkey Apache 2.0
실제 환경에서 여러분의 에이전트를 가장 자주 고장 나게 하는 원인이 무엇인지 궁금합니다:
잘못된 툴 출력, 속도 제한, 긴 컨텍스트, 검색 문제, 아니면 다른 무엇인가요?



