에러 로그 0건인데 검색이 죽어 있었다 — RAG/에이전트 사일런트 장애 4가지
RAG와 에이전트를 운영 환경에 배포한 뒤 겪은 "에러 없는 장애" 사례 4가지를 정리한 글입니다. 공통점: PoC에서는 발생하지 않고, 로그에도 남지 않습니다.

사례 1: 벡터 차원 불일치 (silent vector drop)
- 임베딩 모델을 BGE-M3(1024차원)로 교체 후 ES 인덱스가 512차원으로 잔존
- dense_vector 필드의 dims 파라미터와 실제 벡터 차원이 불일치 → 인덱싱 시 358건 저장 실패
- ES는 차원 불일치를 _bulk 응답의 개별 item error로 반환하지만, 클라이언트 코드가 bulk 성공 여부만 체크하면 누락
- 에러 로그 0건. 검색 품질만 점진적으로 하락
사례 2: Reasoning 모델 + tool call 충돌
- Qwen3 계열, enable_thinking=True 설정 시 think 토큰이 응답에 삽입
- 단일턴: thinking 토큰 → 최종 답변 → tool call 정상 파싱
- 멀티턴: thinking 토큰이 이전 턴 히스토리에 누적 → tool call JSON 파싱 실패 → 모델이 tool call을 자연어로 대체
- 에러는 발생하지 않음 — 모델이 tool을 호출하는 대신 답변을 생성하는 형태로 graceful degradation
사례 3: 멀티테넌트 접근 제어 필터 로직 오류
- ES 쿼리의 bool.filter에서 exists 쿼리만 사용 — user_id 필드가 있는 문서를 모두 반환
- 의도: term: {user_id: specific_user} / 실제: exists: {field: user_id}
- 결과: 타 사용자의 개인 문서가 검색 결과에 노출
- 교차 계정 테스트에서만 발견 가능
사례 4: HWP 파싱 (한국 특수)
- 한국 공공기관 문서 91%가 HWP(한컴 오피스)
- 글로벌 AI 벤더 대부분 미지원 (Gemini만 2025.12부터)
- 폐쇄망 환경에서 미지원 파서로 HWP를 처리하면: 빈 문서가 생성되고 에러 없음
- 플러그인 아키텍처로 파서를 교체 가능하게 구성해야 포맷 확장에 대응 가능
네 가지 모두 PoC 단계에서는 발생하지 않습니다. 데이터가 충분히 많고, 사용자가 여러 명이고, 파일 포맷이 다양한 운영 환경에서만 드러납니다.
전문: https://www.allganize.ai/ko/blog-posts-ko/rag-agent-silent-failure-field-report