검색 정밀도의 벽과 QA 정확도 69% 달성

AI 에이전트가 사용자와 장기 대화를 수행할 때 과거 내용을 정확히 기억하지 못하고 유사한 다른 기억과 섞어 답변하는 현상이 발생한다. 고객 지원 에이전트가 '청구 이슈'를 검색했을 때 기술 지원 티켓이나 영수증 관련 영업 대화가 함께 출력되는 것이 대표적인 사례다. 이는 에이전트가 수주간의 상호작용 이력을 축적하며 마주하게 되는 검색 정밀도의 한계다. Amazon Bedrock AgentCore Memory(완전 관리형 에이전트 메모리 서비스)는 이러한 문제를 해결하기 위해 메타데이터 필터링 기능을 도입했다. LoCoMo 스타일의 다중 세션 대화 기반 151개 질문 세트로 평가한 결과, 시간이나 우선순위 등 컨텍스트 경계가 중요한 질문의 QA(질의응답) 정확도가 16%에서 69%로 상승했다. 전체 QA 정확도 역시 40%에서 64%로 개선되며 의미론적으로 유사하지만 맥락상 무관한 결과들 사이에서 필요한 신호를 정확히 찾아내는 성능을 입증했다.

네임스페이스와 메타데이터의 계층적 검색 구조

Amazon Bedrock AgentCore Memory는 검색 범위를 단계적으로 좁히는 계층 구조를 통해 리콜 정밀도를 높인다. 첫 번째 계층인 네임스페이스(Namespace, 데이터 격리 단위)는 `clients/client-123`과 같이 엔티티별로 데이터를 분리해 타 사용자의 정보가 섞이지 않도록 제어하는 기초 격리 층이다. 두 번째 계층인 메타데이터 필터링은 네임스페이스 내에서 우선순위, 부서, 시간 범위 등 비즈니스 차원의 속성 기반 필터를 적용해 검색 범위를 한 번 더 제한한다. 시스템은 메타데이터 필터로 범위를 먼저 한정한 뒤, 그 내부에서 유사도 검색(Similarity Search, 의미론적 유사성 기반 검색)을 수행하는 순서로 작동한다. 이러한 구조는 금융 서비스 에이전트가 특정 고객의 6개월 치 이력 중 '지난주 고우선순위 리밸런싱 대화'만을 정확히 추출하고, 3개월 전의 일반 문의와 같은 맥락이 다른 정보를 물리적으로 차단할 수 있게 한다.

메타데이터 라이프사이클: 구성과 수집 단계

구조화된 컨텍스트 관리는 구성, 수집, 검색의 3단계 라이프사이클로 작동한다. 구성 단계에서 개발자는 인덱싱할 메타데이터 키를 선언하고 `extractionConfig`(추출 설정)를 통해 LLM에 구체적인 추출 가이드를 제공한다. `llmExtractionInstruction`은 값의 추출 방법과 충돌 해결 동작을 정의하며, `LATEST_VALUE` 연산을 설정해 세션 내 여러 이벤트가 동일한 키를 가질 때 최신 값 기준으로 데이터를 병합한다. 또한 STRING 타입의 `allowedValues`나 NUMBER 타입의 최소-최대값 같은 검증 필드를 통해 추출 값의 범위를 제한함으로써 하위 필터링 단계의 불일치를 방지한다. 수집 단계에서는 `LLM_INFERRED`(모델 추론 추출)와 `STRICTLY_CONSISTENT`(엄격한 일관성 유지) 방식 중 하나를 선택한다. `STRICTLY_CONSISTENT` 설정은 LLM의 개입 없이 애플리케이션이 전달한 입력값을 그대로 장기 메모리에 전파하여 부서명이나 컴플라이언스 레벨 같은 데이터의 무결성을 보장한다.

검색 최적화를 위한 인덱싱 및 스키마 제어

AgentCore Memory는 인덱싱 키와 비인덱싱 키를 구분하여 검색 성능과 통제력을 최적화한다. 인덱싱된 키는 필터 표현식에 사용되어 검색 범위를 빠르게 좁히는 용도로 쓰이며, 비인덱싱 키는 검색에 참여하지 않고 정보 제공용으로만 저장된다. 최종 데이터의 형태는 `memoryRecordSchema`(메모리 레코드 스키마, 저장 데이터 구조 정의서)에 의해 결정되며, 스키마에 정의되지 않은 키는 추출 과정에서 자동으로 제외된다. 예를 들어 인덱싱 키로 설정했더라도 스키마에 포함되지 않은 `ticket_id`는 최종 레코드에 남지 않으며, 스키마에 있지만 인덱싱되지 않은 `sentiment`(감성 분석 결과)는 저장되지만 필터링 조건으로는 사용할 수 없다. 시간 기반 필터링을 위해 시스템은 `x-amz-agentcore-memory-createdAt` 및 `updatedAt` 필드를 자동으로 생성한다. 사용자는 BEFORE와 AFTER 연산자를 사용하여 별도의 인덱싱 키 선언 없이도 특정 시점의 메모리만 정밀하게 호출할 수 있다.

엔터프라이즈 에이전트 구축을 위한 설계 기준

대규모 고객 데이터나 장기 대화 이력을 다루는 에이전트 구축 시, 단순 벡터 검색의 한계를 극복하기 위한 필터링 설계 기준을 확보해야 한다. 멀티테넌트(Multi-tenant, 여러 고객사가 시스템을 공유하는 환경) 구조에서는 네임스페이스로 테넌트 간 데이터를 완전히 격리하고, 내부적으로는 메타데이터 필터로 티켓 유형이나 해결 상태를 구분하는 계층적 설계를 적용한다. 특히 국내 기업의 복잡한 조직 체계나 상담 등급을 관리할 때는 `STRICTLY_CONSISTENT` 설정을 적용해 LLM의 임의 추론으로 인한 값의 변동성을 막고 데이터 일관성을 유지하는 것이 필수적이다. 단기 메모리 단계에서 이벤트에 부착한 문자열 기반 키-값 쌍의 태그들은 추출과 통합 과정을 거쳐 장기 메모리의 필터링 가능한 차원으로 전이된다. 실무자는 데이터 성격에 따라 추론 기반 추출과 값 보존 방식 중 최적의 옵션을 선택함으로써 리콜 정밀도를 확보하고, AI의 기억 혼선을 검색 범위의 통제 문제로 해결해야 한다.