We built a persistent agent memory layer on Elasticsearch with 0.89 recall
Elasticsearch를 활용해 지속적이고 멀티 테넌트를 지원하는 에이전트 메모리 레이어를 구축했다. 세 가지 인덱스, 하이브리드 검색, 재순위화, 대체, 감쇠, 사용자별 격리를 통해 168개 질문에 대해 R@10 0.89의 성능을 달성했다.
Elasticsearch를 기반으로 에이전트의 장기 메모리 레이어를 구축한 아키텍처를 공개했다. 세 가지 인덱스(에피소드, 시맨틱, 절차), 하이브리드 검색(RRF + 교차 인코더 재순위화), 대체(supersession), 감쇠(decay), 사용자별 문서 수준 보안(DLS)을 적용했다. 168개 QA 질문에 대해 R@10 0.89의 성능을 기록했으며, 전체 구현은 GitHub에 공개되었다.
기존의 컨텍스트 윈도우는 단기 메모리 역할만 하며, 비용, 지연 시간, '중간에서 손실' 문제로 장기 메모리로 사용하기 어렵다. 이 글은 인지과학의 세 가지 메모리 범주를 차용해 Elasticsearch 위에 실제 에이전트 메모리 시스템을 구축한 방법을 설명한다. 멀티 테넌트 환경에서 사용자 간 데이터 누출 없이 운영 가능하다.
이 접근법은 에이전트가 세션 간 지식을 유지하고, 과거 실패를 기억하며, 사용자별 맞춤형 응답을 제공할 수 있게 한다. Elasticsearch의 검색 기능을 활용해 별도의 벡터 DB, 키워드 엔진, 감사 레이어, 인증 서비스를 통합할 필요 없이 하나의 시스템으로 해결했다. MCP를 지원하는 모든 클라이언트에서 사용 가능해 범용성이 높다.
일부 댓글은 이 글이 AI 생성 같다고 비판하며, Elasticsearch가 메모리 계층에 과도하다고 주장한다. 반면, 이미 ES를 사용 중인 조직에서는 공유 메모리와 고급 기능을 활용하는 것이 합리적이라는 의견도 있다. 핵심 쟁점은 ES의 적합성과 SQLite 같은 단순 DB와의 비교이며, 일부는 ES의 스크립트 점수 기능과 확장성을 강조한다.