How to Monitor AI Agents in Production

개요

AI 에이전트의 프로덕션 환경 모니터링은 분산 트레이싱을 통해 가능하며, OpenTelemetry의 gen_ai.* 시맨틱 컨벤션은 LLM 호출, 도구 호출, 에이전트 단계를 위한 표준화된 속성을 제공합니다.

주요 내용

* AI 에이전트 모니터링의 어려움: 단일 LLM 호출과 달리 AI 에이전트는 여러 내부 연산으로 분기되며, 로깅만으로는 지연, 오류, 비용 발생 지점을 파악하기 어렵습니다.
* 분산 트레이싱의 필요성: 지연, 비용, 오류, 품질 문제 해결을 위해 각 연산의 순서, 타이밍, 속성을 기록하는 완전한 분산 트레이싱 기록이 필수적입니다.
* OpenTelemetry GenAI 시맨틱 컨벤션:
* gen_ai.system, gen_ai.operation.name, gen_ai.request.model, gen_ai.usage.input_tokens, gen_ai.usage.output_tokens, gen_ai.response.finish_reasons 등 LLM 워크로드를 위한 안정적인 속성을 제공합니다.
* 에이전트별 속성(gen_ai.agent.name, gen_ai.tool.name 등)은 실험 단계이지만 프로덕션 사용이 가능합니다.
* 프롬프트 및 응답 콘텐츠는 추적 페이로드 및 저장 비용 증가를 방지하기 위해 속성 대신 이벤트(gen_ai.content.prompt, gen_ai.content.completion)로 저장됩니다.
* 자동 계측 라이브러리: OpenLLMetry, OpenInference, OpenLIT과 같은 라이브러리를 통해 에이전트 코드를 수정하지 않고 초기화 코드 몇 줄로 자동 계측이 가능합니다.
* LangChain 및 OpenAI Agents SDK 계측 예시:
* opentelemetry-instrumentation-langchainopentelemetry-instrumentation-openai-agents 패키지를 사용하여 LLM 호출, 도구 호출, 에이전트 단계에 대한 스팬을 생성합니다.
* 콘텐츠 캡처는 OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT 환경 변수로 제어됩니다.
* OpenObserve로 추적 데이터 전송: OTLP(OpenTelemetry Protocol) 익스포터를 사용하여 OpenObserve로 추적 데이터를 전송하며, 데이터 소스 설정 및 인증 정보 구성이 필요합니다.
* OpenObserve에서의 데이터 분석:
* SQL 쿼리를 사용하여 토큰 사용량, 비용, 지연 시간, 오류율 등을 분석할 수 있습니다.
* MCP(Message Communication Protocol) 서버를 통해 LLM 세션 내에서 직접 추적 데이터를 쿼리할 수 있습니다.
* 프로덕션 준비 체크리스트:
* PII(개인 식별 정보)는 애플리케이션 레벨 또는 OpenObserve의 민감 데이터 탐지 기능으로 보호해야 합니다.
* LLM 스팬의 높은 비용을 고려하여 OTel Collector의 테일 기반 샘플링을 사용하여 비용 효율성을 높여야 합니다.
* 지연 시간, 비용 이상 징후, 도구 오류율, 추적 볼륨 급증에 대한 알림을 구성해야 합니다.

시사점

AI 에이전트의 프로덕션 환경에서의 복잡한 동작을 효과적으로 이해하고 관리하기 위해서는 분산 트레이싱 기반의 모니터링이 필수적이며, OpenTelemetry와 OpenObserve와 같은 도구를 활용하여 성능 병목, 비용 효율성, 안정성 문제를 해결할 수 있습니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions