MemPalace는 AI 에이전트의 장기 기억 문제를 해결하는 오픈소스 로컬 퍼스트 메모리 시스템이다. RAG가 요약·압축 과정에서 세부 정보를 잃는 것과 달리, MemPalace는 원문 텍스트를 계층적 “palace” 구조에 그대로 보존하면서도 빠른 검색을 제공한다. LongMemEval 벤치마크에서 recall@5 96.6%를 달성했다.
왜 MemPalace인가
기존 RAG 기반 메모리 시스템의 가장 큰 문제는 대화 내용을 요약하는 과정에서 세부 맥락이 사라진다는 점이다. Mem0, Zep 등 기존 솔루션들은 개인화 AI 어시스턴트처럼 장기간 대화가 필요한 에이전트에서 이 한계를 드러낸다. MemPalace는 요약 없이 원문을 저장하는 접근법으로 이 문제를 우회한다.
계층 구조 (Palace Architecture)
Palace
└── Wing (프로젝트 / 도메인)
└── Room (토픽 / 대화 그룹)
└── Hall (메모리 유형: facts · events · preferences)
└── Drawer (원문 텍스트 청크, 512토큰)
└── Closet (AAAK 압축 요약, 선택적)- Drawer: 512토큰 청크, 64토큰 오버랩으로 원문을 그대로 보존
- Closet: 선택적 AAAK 압축 적용 시 약 30배 토큰 절약
- Hall 유형: 사실(facts) · 사건(events) · 선호(preferences) 분류로 검색 정밀도 향상
검색 아키텍처
MemPalace는 벡터 검색과 시간 지식 그래프를 결합한 하이브리드 방식을 사용한다.
| 구성 요소 | 역할 |
|---|---|
| ChromaDB + HNSW | 시맨틱 벡터 검색 |
| SQLite 시간 지식 그래프 | 시간 순서 및 관계 추적 |
| 유사도 임계값 0.70 | 관련 없는 기억 필터링 |
설치 및 사용
pip install mempalace langgraph chromadbLangGraph와의 통합을 기본 지원한다:
from mempalace import MemPalace
from langgraph.graph import StateGraph
palace = MemPalace(wing="my_project", room="user_session")
palace.store("사용자가 Python을 선호한다고 언급함", hall="preferences")
results = palace.search("사용자 코딩 선호도", top_k=5)성능 지표
- recall@5: 96.6% (LongMemEval 기준)
- 토큰 절약: AAAK 압축 적용 시 약 30배
- 버전: MemPalace 3.3.3 / LangGraph 1.1.10 / ChromaDB 1.5.8
누가 사용하면 좋은가
- 개인화 AI 어시스턴트나 장기 대화 에이전트를 개발하는 ML 엔지니어
- 기존 RAG 메모리에서 세부 정보 손실 문제를 겪고 있는 에이전트 개발팀
- 로컬 우선 방식으로 사용자 데이터를 외부 서버에 보내지 않아야 하는 프로젝트
비교
| 항목 | MemPalace | 일반 RAG | Mem0 / Zep |
|---|---|---|---|
| 원문 보존 | ✅ 전체 저장 | ❌ 요약 손실 | △ 부분 |
| 시간 인식 | ✅ SQLite 그래프 | ❌ | ✅ (Graphiti) |
| 로컬 우선 | ✅ | 설정에 따라 | ❌ SaaS 중심 |
| recall@5 | 96.6% | 미공개 | 미공개 |
라이선스 및 링크
관련 문서
- supermemory — LongMemEval·LoCoMo·ConvoMem 1위, AI 메모리·컨텍스트 엔진
- openchronicle — AX 트리 기반 로컬 퍼스트 에이전트 메모리 레이어
- reasoning-bank — 성공·실패 경험에서 추론 전략을 학습하는 에이전트 메모리 프레임워크
- stash — Postgres + pgvector + MCP 기반 AI 에이전트 영속 메모리 레이어
- graphiti — 시간 인식 컨텍스트 그래프 엔진