🔥 요약하지 않았는데 96.6%가 나왔다, 원문 메모리가 이긴다

#mempalace#ai-memory#rag#claude-code#오픈소스
818자
10분

원문을 그대로 보관하는 메모리와 미리 요약한 메모리, 같은 검색이 어디서 다른 결과로 갈리는지 비교한 그림

어제 Claude Code 문서에서 기본 보관 기간이 30일이라는 문장을 읽고, ls ~/.claude/projects/를 쳐서 남아 있는 세션 폴더를 다시 셌다. 로컬에 쌓여 있으니 안전하다고 막연히 생각했는데, 기본값을 그대로 두면 30일이 지난 세션은 다음 시작 시점에 정리될 수 있다는 뜻이었다. 그 뒤로 나는 대화 기록을 옮길 도구를 찾기 시작했다.

그때 MemPalace README 첫 문장이 바로 눈에 들어왔다. 원문을 줄이지 않고, 의미 검색만으로, LongMemEval R@5에서 96.6%를 냈다는 설명이었다. 메모리 도구가 보통 요약 품질이나 LLM 후처리를 먼저 내세우는 관행에서, 이 저장소는 반대로 원문 보관을 전면에 놓았다. 나는 그 선택이 숫자로 어디까지 버티는지부터 확인했다.

무엇이 새로운가

MemPalace의 wing — room — drawer 3단 구조와 mempalace mine 명령으로 그 안에 원문을 적재하는 흐름을 한 장으로 정리한 다이어그램

MemPalace의 새 점은 요약을 늦춘 정도가 아니다. 저장 단계에서 요약, 추출, 재작성을 아예 하지 않는다. README도 이 원칙을 앞에 둔다.

"It does not summarize, extract, or paraphrase."

요약하지 않고, 정보만 뽑아내지도 않고, 다시 바꿔 쓰지도 않는다는 뜻이다.

구조는 세 단계다. README는 wings, rooms, drawers라는 이름을 쓰고, 사람과 프로젝트를 동으로, 주제를 방으로, 원문 조각을 서랍으로 나눈다. 기본 검색 백엔드는 ChromaDB이고, 지식 그래프는 로컬 SQLite에 둔다. API 키 없이 시작할 수 있고, 사용자가 따로 고르지 않으면 데이터도 외부로 보내지 않는다.

96.6% 라는 숫자는 어떻게 측정됐나

100% R@5 출시 주장 → 커뮤니티 검증 → 96.6%와 98.4%로 공개 정정한 타임라인

이 숫자는 LongMemEval에서 나왔다. Wu 등의 ICLR 2025 논문은 500문제로 장기 메모리를 재고, 정보 추출, 여러 세션 추론, 시간 추론, 지식 갱신, 답 보류까지 같이 평가한다. MemPalace README 표는 의미 검색만 쓴 96.6% R@5, 450문제를 따로 떼어 잰 98.4%, LLM 재정렬을 포함한 99% 이상을 따로 적는다.

내가 더 무겁게 본 값은 처음의 100% 문구가 아니라 96.6%와 98.4%다. 저장소는 특정 오답을 보고 손을 댄 부분이 일부 있다고 직접 공개했고, 50개 개발 문제를 따로 두고 남은 450개로 다시 잰 98.4%를 가장 정직한 수치로 적는다. Danilchenko의 리뷰도 100% 문구를 96.6%로 고친 결정을 정정의 핵심으로 짚는다.

요약하지 않는 디자인이 왜 이기는가

요약 우선 메모리는 검색에서 빠진 사실을 요약 단계가 못 살리는 반면, 원문 보관 메모리는 같은 질문이 원문 표현 그대로 닿는 경로를 보여주는 비교 시퀀스

요약 중심 메모리는 먼저 검색을 돌리고, 그 결과만 다시 압축한다. 첫 검색에서 빠진 사실은 뒤 단계가 다시 살리지 못한다. LongMemEval처럼 질문 표현과 원문 표현이 어긋나는 평가에서는 이 한계가 그대로 점수로 나온다.

원문을 그대로 두면 모델은 요약문을 다시 해석하지 않아도 된다. 의미 검색이 비슷한 문장을 가져오면, 답에 필요한 표현과 수치가 그대로 남는다. 96.6%가 흥미로운 이유도 같은 맥락이다. LLM 후처리 없이도 의미 검색만으로 raw R@5 96.6%를 보고할 수 있었다는 뜻이다.

그럼 Mem0 / Zep 은 끝났나

MemPalace의 R@5, Mem0의 LongMemEval 합산 점수, Zep의 baseline 대비 향상 — 단위가 다른 세 숫자를 한 표에 놓을 수 없다는 한계를 보여주는 비교 차트

MemPalace 점수만으로 Mem0나 Zep이 끝났다고 말할 수는 없다. Mem0 연구 페이지는 LongMemEval 93.4를 적고 있고, Zep 논문에서 인용되는 수치도 다른 구성에서 나왔다. README가 나란한 비교표를 거부한 이유도 여기에 있다. 상위 5개 안 회수율과 최종 응답 정확도를 한 표에 놓으면 공정한 비교가 아니기 때문이다.

더 중요한 변화는 출발점이다. 메모리 시스템은 오랫동안 요약을 앞단에 뒀다. MemPalace는 원문 보관을 앞단에 두고도 raw R@5 96.6%를 받아 적었다. 그래서 다른 도구의 출발점도 다시 보게 된다.

어디에 쓸 수 있나

~/.claude/projects/ 의 30일 정리 주기를 가리키는 시계 위에서, mempalace mine 으로 그 기록을 wing/room/drawer 인덱스로 옮기고 search 와 wake-up 두 갈래로 다시 꺼내는 흐름

내가 바로 떠올린 곳은 Claude Code 세션 보관이었다. 문서 기준 기본 보관 기간은 30일이고, 세션 기록은 ~/.claude/projects/ 아래 평문으로 남는다. 한 달 뒤 사라질 기록이라면, 작업이 끝나기 전에 원문째 옮겨 둘 이유가 충분하다.

bash
uv tool install mempalace
mempalace init ~/projects/myapp
bash
uv tool install mempalace
mempalace init ~/projects/myapp
bash
mempalace mine ~/.claude/projects/ --mode convos
bash
mempalace mine ~/.claude/projects/ --mode convos
bash
mempalace search "why did we switch to GraphQL"
bash
mempalace search "why did we switch to GraphQL"
bash
mempalace wake-up
bash
mempalace wake-up

README는 29개 MCP 도구도 함께 둔다고 적는다. 세션 기록을 먼저 넣고, 새 세션에서 wake-up을 호출해 필요한 문맥을 다시 불러오는 식이다.

그래서

대화가 길고, 나중 질문이 처음 표현과 수치를 다시 써야 하는 일이라면 원문 보관이 맞다. 반대로 짧은 업무 메모나 최종 결정만 남기면 되는 기록이라면 요약이 더 싸고 간단하다. MemPalace가 보여 준 96.6%는 요약이 항상 출발점일 필요는 없다고 말한다.

참고 자료

YouTube 영상

채널 보기
투영과 예측, 그리고 선형 결합 | 선형대수학
숫자 하나가 AI 모델의 운명을 바꾼다? | 선형대수학
트라이(Trie)에서 단어를 삭제하는 방법 | Trie 자료구조 이야기
직교성과 벡터 투영 | 선형대수학
트라이(Trie)를 이용한 자동 완성 알고리즘 | Trie 자료구조 이야기
내적의 기하학적 의미와 코사인 유사도 원리 | 선형대수학
벡터의 정의와 덧셈 연산 | 선형대수학
AI 추천 시스템의 원리, 벡터 사이의 각도와 코사인 유사도 | 선형대수학