/ 오픈소스 / mempalace

mempalace

대화 기록을 원문 그대로 저장하고 빠르고 구조화된 시맨틱 검색으로 검색하는 로컬 우선 AI 메모리 시스템.

PythonMITAgent
⭐ GitHubhttps://github.com/mempalace/mempalace
58,760
스타 수
+0
스타 증가율
2026년 8월 31일
최근 업데이트
6
클릭 수

1. 프로젝트 개요

MemPalace는 AI 에이전트의 대화 기록을 원문 그대로 저장하고 시맨틱 검색으로 검색하는 로컬 우선 오픈소스 AI 메모리 시스템으로, 코딩 에이전트와 챗봇이 세션이 끝나거나 컨텍스트 창이 압축되면 모든 것을 "잊어버리는" 문제를 해결합니다.

2. 배경 및 포지셔닝

MemPalace는 매우 구체적인 문제점을 해결하기 위해 만들어졌습니다. 장시간 실행되는 에이전트 세션(Claude Code와 같은 도구)은 압축 후 이전 컨텍스트를 잃어버려, 몇 시간 동안 작업한 후에도 에이전트가 "오늘 우리 뭐 하고 있었죠?"라고 묻게 됩니다. 핵심 사명은 대부분의 메모리 도구가 서로 맞바꾸는 두 가지, 즉 모든 것을 완전한 충실도로 저장하는 것과 모호하고 어렴풋이 기억나는 질문에서도 올바른 부분을 즉시 찾아내는 것을 결합하는 것입니다.

아키텍처적으로는 제텔카스텐 방식(작고 상호 참조되는 색인 카드)에서 차용하여 메모리를 (사람/프로젝트), (주제), 클로짓(압축된 AI 판독 가능 색인 항목), 드로어(원본 그대로의 콘텐츠)의 계층 구조로 구성합니다. 이는 대부분의 메모리 프레임워크와 두 가지 측면에서 다릅니다. 저장하는 내용을 요약하거나 바꿔 쓰지 않으며(검색은 항상 원본 텍스트를 반환), 검색 백엔드가 하나의 벡터 데이터베이스에 묶이지 않고 교체 가능하여 팀이 로컬 전용으로 시작했다가 나머지 시스템 작동 방식을 바꾸지 않고 서버 기반 저장소로 이동할 수 있습니다.

3. 기능 카테고리

  • 🗂️ 팰리스 스토리지 — 윙/룸/클로짓/드로어 전반에 걸친 원문 그대로의 구조화된 저장. 핵심 작업으로 mine, search, wake-up, 메시지별 sweep 포함. 목적: 탐색 가능성을 유지하면서 전체 대화 충실도를 보존.
  • 🔌 교체 가능한 백엔드 — 지원되는 저장소 5종: chroma(기본값, 임베디드), sqlite_exact, milvus, qdrant, pgvector. 목적: 사용자가 로컬에서 시작해 아키텍처를 재설계하지 않고 공유 서버로 확장할 수 있도록 함.
  • 🕸️ 지식 그래프 — 로컬 SQLite로 지원되는 유효 기간 창이 있는 시간적 개체-관계 그래프. 추가/질의/무효화/타임라인 작업 지원. 목적: 정적 스냅샷이 아닌 사실과 관계가 시간에 따라 어떻게 변하는지 추적.
  • 🔧 MCP 서버 및 도구 — 팰리스 읽기/쓰기, 지식 그래프 작업, 윙 간 탐색, 드로어 관리, 에이전트 다이어리, 다중 에이전트 조정을 포괄하는 45개의 MCP 도구. 목적: 모든 MCP 호환 에이전트에 메모리를 일급 기능으로 노출.
  • 🪝 자동 저장 훅 — Claude Code, Codex CLI, Cursor IDE용 훅으로 주기적으로 그리고 컨텍스트 압축 전에 저장. 목적: 수동으로 "이것 좀 기억해 줘" 단계 없이 세션을 자동으로 캡처.
  • 🤖 다중 에이전트 지원 — 각 전문 에이전트는 런타임에 mempalace_list_agents를 통해 발견 가능한 자체 윙과 다이어리를 가짐. 목적: 여러 에이전트가 서로의 컨텍스트나 시스템 프롬프트를 오염시키지 않고 메모리 시스템을 공유할 수 있도록 함.

4. 주요 하이라이트

  • 요약이 아닌 원문 그대로의 검색 — 검색 결과가 원본 텍스트를 반환하므로 그 과정에서 손실 압축으로 인해 아무것도 잃지 않습니다.
  • 로컬 우선 및 오프라인 가능 — 핵심 벤치마크 경로(LongMemEval에서 R@5 96.6%)는 어떤 단계에서도 API 키, 클라우드, LLM 호출이 필요하지 않습니다.
  • 벤치마크되고 재현 가능한 결과 — 공개된 모든 수치(LongMemEval, LoCoMo, ConvoMem, MemBench)는 저장소에서 재현할 수 있는 정확한 명령과 함께 제공됩니다.
  • 선택적 하이브리드 + LLM 재순위 파이프라인 — 키워드 부스팅, 시간 근접성 부스팅, 선호 패턴 추출로 재현율을 홀드아웃 기준 98.4%까지 끌어올리며, LLM 재순위 옵션은 99% 이상에 도달하고 모델에 구애받지 않습니다(Claude 및 Ollama Cloud를 통한 오픈 모델로 테스트됨).
  • 조용한 백그라운드 작동 — 현재 설계 기준으로 다이어리 쓰기와 팰리스 파일링은 눈에 보이는 채팅이 아닌 백그라운드 훅/하위 에이전트에서 실행되어 재전송되는 상태 업데이트로 인한 토큰 오버헤드를 줄입니다.
  • 다중 아키텍처 Docker 지원 — 게시된 컨테이너 이미지는 amd64와 arm64(Apple Silicon 포함) 모두에서 네이티브로 실행되며, GPU 워크로드를 위한 별도의 CUDA 빌드가 있습니다.

5. 역할별 사용 사례

  • 일반 개발자 — 압축이나 재시작 후마다 결정 사항을 다시 설명하지 않고 AI 코딩 어시스턴트의 프로젝트 컨텍스트를 세션 간에 유지.
  • 데이터/연구 과학자 — 과거 대화나 노트의 대량 볼륨을 시맨틱하게 마이닝하고 검색하며, 참조 구현으로 프로젝트 자체의 검색 벤치마크를 재현.
  • 프로젝트 관리자/팀 — 공유된 Claude Code 트랜스크립트를 공용 팰리스("공유 두뇌 허브")로 마이닝하여 팀 지식과 결정이 개별 채팅 기록에 흩어지지 않고 한곳에서 검색 가능하게 유지.

6. 시작하기

필요한 것 찾기 — 가이드와 참조 자료는 문서 사이트를 둘러보세요:

https://mempalaceofficial.com/guide/getting-started.html

설치/통합uv를 통한 격리 설치를 권장하며, 그런 다음 팰리스를 초기화합니다:

uv tool install mempalace
mempalace init ~/projects/myapp
mempalace mine ~/projects/myapp
mempalace search "why did we switch to GraphQL"

프로젝트 스킬을 설치하면 에이전트 안내 설정도 사용할 수 있습니다:

npx skills add MemPalace/mempalace

기여하기 — PR을 열기 전에 기여 가이드를 읽으세요:

https://github.com/MemPalace/mempalace/blob/main/CONTRIBUTING.md

7. 프로젝트 구조

mempalace/
├── backends/          # 교체 가능한 스토리지 백엔드 구현(chroma, qdrant, pgvector, ...)
├── data/              # 번들 데이터 자산
├── i18n/              # 국제화 리소스
├── instructions/      # 에이전트 대상 지침 세트
├── integrations/      # 서드파티 도구 통합
├── sources/           # 마이닝용 수집 소스
├── cli.py             # `mempalace` 명령줄 진입점
├── mcp_server.py       # MCP 서버 구현(도구 노출)
├── knowledge_graph.py  # 시간적 개체-관계 그래프
├── palace.py           # 핵심 팰리스 읽기/쓰기 로직
├── miner.py / convo_miner.py  # 콘텐츠 및 대화 마이닝 파이프라인
├── searcher.py         # 시맨틱 검색/검색 로직
└── onboarding.py        # 최초 실행 설정 및 임베딩 모델 선택

알아둘 만한 다른 최상위 디렉터리: benchmarks/(재현 가능한 벤치마크 스크립트 및 결과), hooks/(지원되는 편집기/에이전트용 자동 저장 훅 구현), skills/(설치 가능한 에이전트 스킬), website/(문서 사이트 소스).

8. 관련 생태계

  • 업스트림 의존성: ChromaDB(기본 벡터 저장소), Milvus, Qdrant, pgvector 선택 지원. 로컬 임베딩용 ONNX Runtime 및 임베딩 모델(all-MiniLM-L6-v2, embeddinggemma-300m).
  • 에이전트/편집기 통합: Claude Code, Codex CLI, Cursor IDE, Gemini CLI, Antigravity. Model Context Protocol(MCP)을 통해 연결.
  • 보완 도구: 모든 OpenAI 호환 /v1/embeddings 엔드포인트(LM Studio, llama.cpp, vLLM, Ollama)를 로컬 계산 대신 원격 또는 GPU 가속 임베딩에 사용할 수 있습니다.

9. 라이선스

  • ✅ MIT 라이선스에 따라 상업적 사용, 수정, 배포, 개인적 사용이 허용됩니다.
  • ❌ 라이선스는 저자에 대한 보증과 책임 범위를 제공하지 않습니다.
  • ℹ️ 원본 저작권 및 라이선스 고지는 소프트웨어의 사본이나 상당 부분에 유지되어야 합니다.

10. FAQ

Q: MemPalace가 작동하려면 API 키나 클라우드 서비스가 필요한가요?
A: 아니요. LongMemEval에서 R@5 96.6% 원시 검색 점수를 포함한 핵심 벤치마크 경로는 기본 chroma 백엔드와 LLM 호출 없이 완전히 로컬에서 실행됩니다.

Q: MemPalace는 어떤 벡터 데이터베이스를 사용하나요?
A: 기본적으로 ChromaDB를 사용하며, sqlite_exact, milvus, qdrant, pgvector에 대한 교체 가능한 지원이 있고 --backend <name> 또는 MEMPALACE_BACKEND로 선택할 수 있습니다.

Q: MemPalace는 로컬 Python 환경 없이 실행할 수 있나요?
A: 네, 게시된 다중 아키텍처 Docker 이미지를 통해 가능합니다:

docker pull ghcr.io/mempalace/mempalace:latest

Q: 압축 후 Claude Code 세션의 컨텍스트를 어떻게 유지하나요?
A: Claude Code 보존 설정 체크리스트에 설명된 자동 저장 훅을 연결한 다음, 다음 명령으로 기존 트랜스크립트를 백필하세요:

mempalace mine ~/.claude/projects/ --mode convos

Q: GitHub 저장소 외에 공식 웹사이트가 있나요?
A: 유일한 공식 소스는 GitHub 저장소, PyPI 패키지(mempalace), mempalaceofficial.com의 문서입니다. 유사한 이름의 다른 도메인은 프로젝트와 관련이 없습니다.

11. 빠른 링크

12. 요약

MemPalace는 장시간 실행되는 AI 에이전트를 구축하거나 사용하는 모든 사람을 위한 실질적인 공백을 메웁니다. 모든 것을 저장할지 무엇이든 찾을지 선택을 강요하는 대신, 빠르고 정확하게 검색 가능한 전체 원문 그대로의 대화 기록을 유지합니다. Claude Code, Codex, Cursor와 같은 코딩 에이전트를 통합하는 개발자는 필수 클라우드 의존성 없이 지속적이고 재현 가능한 벤치마크 메모리를 얻을 수 있으며, 팀은 필요가 커짐에 따라 동일한 시스템을 개인 로컬 팰리스에서 공유 백엔드로 확장할 수 있습니다.