TL;DR
단일 KB 툴만 허용되는 에이전트 구성에서 orderBy 없이 assistantKnowledgeBases[0]를 참조하다 보니 index 0이 오래된 또는 아카이브된 KB를 가리켜 리트리버가 빈 결과를 반환했고 모델이 조용히 자체 지식으로 응답하는 현상이 발생했다. 전체 KB 활성화 음성 에이전트 20,120개 중 약 2,670개가 영향을 받아 약 13퍼센트 수준의 광범위한 파급이 확인되었고 이 때문에 빈 반환과 미실행을 구분할 수 있는 검증 로직과 우선순위 선정이 필요해졌다. 적용된 수정은 관련 행을 로드해 아카이브·삭제 항목을 필터링하고 완료된 소스가 있는 최신 KB를 선택해 재동기화하는 방식이었으며 이 접근은 로그·모니터링과 결합해 유사한 설계 결함을 방지할 수 있다.
커뮤니티 반응
이 사례는 구성 실수로 인한 대규모 영향 사례로 받아들여졌으며 비슷한 구조를 쓰는 팀들에서 공감과 우려가 나오고 있다. 다수의 실무자는 에이전트당 단일 KB 툴 제약과 명시적 정렬 부재를 설계적 위험으로 지적했고, 빈 반환을 감지해 대체 KB를 선택하거나 오류를 노출하는 방식을 권장했다. 일부는 플랫폼 한계로 인해 우회적 해결책을 마련해야 한다고 언급했고, 이 과정에서 로그·모니터링 강화와 재동기화 자동화가 실용적 조치로 제시되었다.
주요 논점
에이전트당 하나의 KB 툴만 허용하는 설계가 운영 위험을 키운다는 주장으로, 다수의 응답자는 멀티 KB 선택 로직 도입이 필요하다고 보았다.
검색 핸들러가 빈 리스트를 반환할 때 이를 실패로 인식하고 대체 KB를 조회하거나 경고를 발생시키는 방식이 안정성 향상에 기여할 것이라는 주장이다.
일부는 플랫폼 제약 때문에 당장 구조 변경이 어려워도 데이터베이스 쿼리에서 orderBy를 명시하는 수준의 개선으로 상당 부분 위험을 줄일 수 있다는 현실적 대안을 제시했다.
합의점 vs 논쟁점
합의점
- 빈 검색 결과와 검색 미실행이 외형상 동일하게 보이는 것이 문제의 핵심이라는 점에는 대체로 동의가 모였다.
- 아카이브되거나 완료되지 않은 소스를 필터링하고 최신의 완료된 KB를 우선 선택하는 로직이 필요하다는 점에 합의가 형성되었다.
- 로그와 모니터링을 통해 빈 반환 사례를 탐지하고 자동으로 재시도하거나 대체 KB를 선택하는 보완책이 실용적이라는 점에 동의했다.
논쟁점
- 에이전트당 하나의 KB 툴만 허용하는 설계 자체를 바꿔야 한다는 주장과, 플랫폼 제약을 인정하고 쿼리·로직 수준에서만 대응하자는 현실적 접근 사이에 입장 차가 존재한다.
- 빈 반환을 '오류'로 취급해 사용자에게 즉시 공개할지, 내부에서 자동으로 교정할지에 대한 운영 정책에서 의견이 갈리고 있다.
실용적 조언
- 데이터베이스 쿼리에 명시적 정렬(orderBy)을 추가해 최신의 완료된 KB가 우선 반환되도록 하고, 조인 결과에서 아카이브·삭제 플래그를 필터링해야 한다.
- 리트리버가 빈 리스트를 반환하면 이를 단순 폴백으로 처리하지 말고 대체 KB 선택 로직을 트리거하거나 실패 상태로 로그와 경고를 남기도록 파이프라인을 수정해야 한다.
- 에이전트 연결 시 관련 KB의 'completed sources' 상태를 확인해 완료된 소스가 있는 KB만 연결하거나, 연결 전 재동기화(sync) 후 상태를 검증하는 절차를 도입해야 한다.
섹션별 상세
용어 해설
- 리트리버(Retriever)
- — 지식베이스에서 관련 문서를 검색해 모델에 컨텍스트로 제공하는 컴포넌트로, 쿼리를 입력받아 인덱싱된 소스에서 유사도 기반으로 결과를 반환한다. 이 글 맥락에서는 에이전트에 연결된 단일 툴로 동작하며 반환 결과가 빈 리스트인지 여부가 downstream 응답에 직접 영향을 미쳤다. 리트리버의 선택 기준과 빈 결과 처리 방식이 잘못 설계되면 최신 KB가 무시되는 문제가 발생한다.
- 지식베이스(Knowledge Base)
- — 문서·소스의 집합을 의미하며 각 소스의 동기화 상태와 'completed source' 여부가 검색 가능성을 결정한다. 이 글에서는 복수의 KB가 존재하지만 에이전트당 하나의 KB 툴만 허용되어 잘못된 인덱스 선택 시 최신의 완료된 소스를 포함한 KB를 참조하지 못했다. KB의 메타데이터(생성일, 아카이브·삭제 플래그, 완료된 소스 유무)를 활용해 우선순위를 정하는 작업이 문제 해결의 핵심이었다.
- 정렬 기준(Order By)
- — 데이터베이스 쿼리에서 반환되는 레코드의 우선순위를 결정하는 파라미터로, 기본값이 없으면 DB가 내부적으로 임의 또는 생성순으로 결과를 돌려줄 수 있다. 본 사례에서는 orderBy가 지정되지 않아 index 0이 가장 오래된 레코드를 가리켰고, 그 KB가 아카이브되거나 완료된 소스가 없으면 리트리버가 빈 결과를 반환했다. 명시적 정렬 기준을 두면 최신의 완료된 KB를 선택해 잘못된 폴백을 방지할 수 있다.
언급된 도구
지식베이스에서 문서 소스를 검색해 모델 입력으로 제공하는 도구로, 이 글에서는 에이전트에 연결된 단일 리트리버가 빈 결과를 반환한 상황을 가리킨다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.