AI 에이전트 테스트, AIMock으로 빠르고, 안전하게!

by DD
1개월 전
조회수 16

CI 환경에서 발생하는 테스트의 불안정성, API 호출 비용, 토큰 낭비 문제를 해결하기 위해 AIMock 개발

LLM, MCP, A2A, Vector DB 등 AI 에이전트 스택 전체를 Mocking하여 테스트의 신뢰성 및 효율성 향상을 목표로 함

Drift Detection, Record and Replay, Chaos Testing 등 기존 Mocking 도구에서 제공하지 않는 고급 기능을 제공하며, 실제 프로덕션 환경과 유사한 테스트 환경 구축

오픈 소스(Open Source) 및 무료로 제공되며, AG-UI와 같은 실제 프로덕션 환경에서 사용되고 있음

AIMock의 핵심 기능: Drift Detection

AIMock은 Drift Detection 기능을 통해 실제 API와 Mock 간의 불일치를 감지하여 테스트의 신뢰성을 높인다. 이 기능은 SDK 타입 정의, 실제 API 응답, AIMock 출력 간의 3방향 비교(Three-way Comparison)를 수행한다.

24시간 이내에 API 응답 형식 변경을 감지하여 사용자에게 문제가 발생하기 전에 조치 가능

OpenAI, Anthropic, Gemini 등 다양한 AI 제공업체의 API 변화에 대한 자동화된 검증(Automated Validation) 제공

Critical, Warning, OK의 세 가지 심각도(Severity) 수준으로 불일치 사항을 보고하여 개발자가 신속하게 대응할 수 있도록 지원

AIMock의 Record and Replay 기능: 테스트 효율성 극대화

AIMock의 Record and Replay 기능은 복잡한 AI 에이전트 상호 작용을 테스트하는 데 필요한 Fixture(Fixture) 작성의 어려움을 해결한다. 이 기능은 실제 API 호출을 기록하고, 이를 Fixture로 저장하여 재사용한다.

스트리밍 응답(Streaming Response) 자동 처리 및 6가지 형식(OpenAI SSE, Anthropic SSE 등) 지원

Auth 헤더(Auth Header)는 Fixture에 저장되지 않음으로써 보안 유지

--strict 옵션을 통해 매칭되지 않는 요청에 대해 503 에러(Error)를 반환하여 테스트 실패를 유도, 잠재적인 문제 조기 발견

Chaos Testing을 통한 AI 애플리케이션의 안정성 확보

AIMock은 Chaos Testing 기능을 통해 AI 애플리케이션의 장애 처리 능력(Failure Handling)을 검증한다. 이 기능은 서버, Fixture, 개별 요청 수준에서 장애를 주입하여 시스템의 복원력을 테스트한다.

Drop, Malformed, Disconnect의 세 가지 장애 모드(Failure Mode)를 지원하여 다양한 상황 시뮬레이션

서버 전체(Server-wide), Fixture, 개별 요청에 대한 장애 주입 설정 가능

Prometheus 메트릭(Prometheus Metrics)을 통해 Chaos 이벤트 추적 및 분석, 문제 발생 시 신속한 대응 지원

AIMock vs. 기존 Mocking 도구: 차이점 및 장점

AIMock은 기존의 LLM Mocking 도구(MSW, VidaiMock 등)와 비교하여 AI 에이전트 스택 전체를 포괄하는 Mocking 기능을 제공한다. 기존 도구들은 LLM Mocking에 국한되거나, 설정 방식이 복잡하다는 단점이 있었다.

다양한 AI 서비스(LLM, MCP, A2A, Vector DB 등)에 대한 통합 Mocking 지원

Drift Detection, Record and Replay, Chaos Testing과 같은 고급 기능 제공

단일 설정 파일(Single Config File)을 통해 간편하게 설정 및 관리 가능

AIMock의 아키텍처 및 작동 원리

AIMock은 HTTP 서버(HTTP Server)를 기반으로 작동하며, 다양한 AI 서비스의 API를 Mocking한다. LLMock, MCPMock, A2AMock, VectorMock 등 각 모듈은 독립적으로 실행되며, 하나의 포트(Port)에서 통합 관리된다.

LLMock: 11개 이상의 AI 제공업체(OpenAI, Claude 등) 지원, 스트리밍, 도구 호출, 추론 모델 지원

MCPMock: JSON-RPC 2.0 기반의 MCP 서버 Mocking, 도구, 리소스, 프롬프트 지원

A2AMock: 에이전트 카드(Agent Card) 발견, 메시지 라우팅, SSE 스트리밍 지원

VectorMock: Pinecone, Qdrant, ChromaDB API 형식 지원, 컬렉션 관리, 쿼리, 삭제 기능 제공

AIMock: One Mock Server For Your Entire AI Stack