facts

Memora는 AI 에이전트가 대화나 문서에서 정보를 자동으로 추출해 장기적으로 저장하고 검색할 수 있도록 지원하는 Python 기반 메모리 프레임워크다. MIT 라이선스로 공개되었으며, Python 3.10 이상의 환경을 요구한다. 이 시스템의 핵심은 저장되는 정보의 실제 내용과 이를 찾기 위한 검색 인덱스를 완전히 분리한 구조에 있다.

메모리 항목은 세 가지 구성 요소로 정의된다. 첫째는 'Memory value'로, 압축하지 않은 원문 전체 정보를 보존하며 검색 인덱스에는 포함되지 않는다. 둘째는 'Primary abstraction'으로, 해당 메모리의 정체성을 나타내는 대표 요약이며 검색, 갱신, 병합, 중복 제거의 기준점이 된다. 셋째는 'Cue anchors'로, 인물, 대상, 사건 등 하나의 기억에 접근할 수 있는 여러 의미적 단서들을 다대다(M:N) 구조로 연결한 인덱스다.

인프라 측면에서는 ChromaDB(벡터 데이터베이스)를 기본 저장소로 사용하며, Redis를 통한 로컬 및 원격 저장 환경을 모두 지원한다. 메모리 유형은 성격에 따라 사실적 기억(Factual), 일화적 기억(Episodic), 절차적 기억(Procedural)의 세 가지로 구분해 관리한다. 또한, 다중 에이전트 환경에서 공통 메모리 공간을 공유하거나 역할별로 범위를 제한하는 격리 기능을 포함한다.

how-it-works

기존 RAG(Retrieval-Augmented Generation, 검색 증강 생성)가 원문을 일정 크기로 분할해 직접 임베딩하는 것과 달리, Memora는 검색 대상의 선택적 인덱싱 방식을 사용한다. 모든 원문을 벡터화하지 않고 Primary abstraction과 Cue anchors만 인덱싱함으로써 원문 임베딩에서 발생하는 의미적 잡음을 줄이고, 검색 완료 후 연결된 Memory value를 반환해 세부 정보의 손실을 방지한다.

검색 전략은 요구되는 정밀도와 비용에 따라 네 가지 파이프라인으로 나뉜다.

1. Semantic 검색: 질문과 메모리 표현 사이의 벡터 유사도를 계산하는 기본 방식이다.

2. Prompted 검색: LLM이 검색 결과를 바탕으로 검색어와 범위를 반복 조정하며 단계적으로 수행하는 방식이다. 복합 질문 처리에 유리하지만 LLM 호출 횟수가 늘어나 비용과 지연시간이 증가한다.

3. Hybrid 검색: 벡터 기반 의미 검색과 BM25·키워드 검색을 결합해 고유명사, 제품명, 날짜 등의 검색 누락을 방지한다.

4. GRPO 검색: 강화학습(Group Relative Policy Optimization)으로 훈련된 검색 정책을 사용한다. LLM 기반 반복 검색을 로컬 미세조정 모델로 대체하는 것이 목표이며, Qwen 3B 또는 7B 계열 모델에 LoRA(Low-Rank Adaptation) 미세조정을 적용하는 예시를 제시한다.

시스템의 성능 검증에는 LoCoMo와 LongMemEval 벤치마크가 사용된다. LoCoMo는 장기 대화에서의 단일/다단계 질문, 시간 관계 질문, 개방형 질문을 통해 기억 검색 능력을 평가하며, LongMemEval은 에피소드 메모리와 의미 검색 설정 하에서의 정보 유지 능력을 측정한다.

implementation-impact

개발자가 Memora를 도입할 때 가장 먼저 고려해야 할 지점은 추상화 계층의 품질과 검색 비용의 상관관계다. 이 시스템은 원문을 직접 인덱싱하지 않으므로, Primary abstraction과 Cue anchors가 부정확하게 생성될 경우 원문이 정확하더라도 검색에서 누락되는 현상이 발생할 수 있다. 특히 희소 정보나 세부 문구 검색이 중요한 서비스라면 일반 RAG보다 검색 재현율이 낮을 가능성을 검토해야 한다.

실무적인 구현은 `MemoraClient`를 통해 이루어진다. `add()` 메서드로 대화나 문서를 추가하고, `query()`로 기본 의미 검색을, `advance_query()`로 Prompted 또는 GRPO 방식의 고급 검색을 수행한다. 운영 단계에서는 다음과 같은 제약 사항을 판단 기준으로 삼아야 한다.

- 비용 및 지연시간: Prompted 검색 도입 시 LLM API 호출 비용 증가와 응답 속도 저하를 감수해야 한다.

- 하드웨어 자원: GRPO 기반 검색 정책을 학습시키려면 GPU 자원과 학습 데이터, 평가 체계가 필수적으로 요구된다.

- 데이터 관리: 중복 제거와 병합 과정에서 서로 다른 사건이 하나의 기억으로 잘못 통합될 위험이 있으므로, 병합 로직의 오류율을 사전 검증해야 한다.

- 보안: 다중 에이전트 공유 메모리 사용 시 접근 권한 설계와 개인정보 암호화 정책을 별도로 수립해야 한다.

현재 Memora는 초기 공개 단계로 대규모 운영 안정성이 충분히 검증되지 않았다. 따라서 전면 도입보다는 핵심 문서 일부를 대상으로 소규모 PoC(Proof of Concept)를 수행하고, 기존 하이브리드 검색 방식과 검색 정확도를 비교하는 접근이 적절하다.