Fixing a Live Production AI Agent with Docker, Sentry, and Google AI
개요
Dograh AI 음성 에이전트 'Zoya'가 프로덕션 환경에서 48시간 작동 후 응답하지 않는 문제를 Docker 설정 오류와 시스템 프롬프트 초기화 문제로 진단하고, Sentry와 Google Gemini를 활용하여 해결한 과정입니다.
주요 내용
* 문제 발생: 프로덕션 웹사이트에서 운영되던 Dograh AI 음성 에이전트(Zoya)가 약 48시간의 정상 작동 후 응답을 멈추고, 사용자 경험에 무한 로딩 및 세션 끊김 현상이 발생했습니다.
* 원인 분석: Docker 컨테이너 환경 변수 설정 오류로 워크플로우 상태가 제대로 유지되지 않았으며, 컨테이너 재시작 시 시스템 프롬프트가 올바르게 초기화되지 않아 에이전트가 대화 맥락을 잃어버린 것이 근본적인 원인이었습니다.
* 해결 방안: 기존의 복잡하고 오류가 많은 에이전트 설정을 보관(archive)하고, 처음부터 새롭게 구축했습니다. Docker 컨테이너 설정을 재구성하여 환경 변수 영속성 및 볼륨 마운트를 올바르게 설정하고, 시스템 프롬프트 초기화 순서를 수정했습니다. 또한, 에이전트 준비 상태를 모니터링하기 위한 헬스 체크 엔드포인트를 추가했습니다.
* Sentry 활용: Sentry를 통해 프로덕션 환경에서 발생한 연결 오류 및 타임아웃 경고를 신속하게 감지했으며, 에러 그룹화 기능으로 Docker 컨테이너 재시작 이벤트와 연관된 오류를 식별했습니다. Sentry 세션 리플레이 기능으로 실제 사용자 경험을 시각적으로 확인하고 백엔드 초기화 문제를 파악했습니다.
* Google Gemini 활용: Docker 로그와 환경 변수 설정을 Google Gemini에 분석 요청하여 누락된 볼륨 마운트와 환경 변수 관리 전략의 문제를 파악했습니다. 또한, Gemini의 도움을 받아 다중 서비스 문의(영상 제작, 오디오 엔지니어링, 앱 개발)를 처리하고 대화 맥락을 유지하며 사용자를 제대로 라우팅하는 시스템 프롬프트 구조를 재구성했습니다. Gemini는 수정된 docker-compose.yml 파일 생성에도 기여했습니다.
시사점
이 사례는 프로덕션 환경에서 AI 에이전트의 안정적인 운영을 위해 Docker 컨테이너 설정, 환경 변수 관리, 시스템 프롬프트 초기화의 중요성을 보여주며, Sentry와 같은 모니터링 도구와 Google Gemini 같은 AI 도구를 활용하여 복잡한 문제를 신속하게 진단하고 해결할 수 있음을 시사합니다.
댓글
GitHub Discussions