"어떤 메모리 프레임워크를 써야 하나?" 2026년 기준 선택지는 4개 이상으로 분화됐고, 각각 근본적으로 다른 아키텍처를 취한다. 잘못 고르면 3개월 후 마이그레이션이다. Mem0·Zep(Graphiti)·Letta(MemGPT)·LangMem — 어떤 게 내 에이전트에 맞는지 구조·벤치마크·비용·선택 기준을 전부 정리했다.
핵심 요약
→ Mem0 — 오픈소스, 48,000+ GitHub Star, 개인화 에이전트·챗봇 메모리 1순위, 가장 빠른 프로덕션 진입
→ Zep/Graphiti — 시간적 추론 특화, 변경되는 사실을 추적해야 할 때 LongMemEval 기준 Mem0보다 15점 높음
→ Letta(MemGPT) — 장기 자율 에이전트 전용, 수일~수주 실행 에이전트에 유일한 선택지, 자체 에이전트 런타임 포함
→ LangMem — LangGraph 네이티브, LangGraph 이미 쓰는 팀의 가장 쉬운 메모리 추가 경로, 단 LangGraph 외부에서는 불편
→ 2026년 5월 최신 동향: Anthropic "Dreaming"(5월 6일)·Google Memory Bank(5월 19일) 출시 — 플랫폼 레벨 메모리 인프라 등장
→ 결론: 단일 정답 없음 — 에이전트 실행 기간·변경 사실 추적 필요 여부·기존 프레임워크 스택에 따라 선택
1. 네 프레임워크의 근본적 차이
# 아키텍처 철학 비교
Mem0
├── 핵심: 대화 → LLM이 중요 사실 추출 → 벡터 DB 저장
├── 검색: 시맨틱 + BM25 + 엔티티 링킹 + 시간적 추론
├── 포지션: "범용 메모리 API" — 어떤 에이전트에도 꽂기 쉬움
└── 비유: 사용하기 쉬운 스마트 노트앱
Zep / Graphiti
├── 핵심: 모든 사실을 타임스탬프 + 유효 기간이 있는 그래프 노드로 저장
├── 검색: 시간 범위 쿼리, "2월에 사실이었던 것" 정확히 반환
├── 포지션: "시간적 지식 그래프" — 사실 변화 추적이 핵심
└── 비유: 타임라인이 있는 지식 데이터베이스
Letta (MemGPT 진화)
├── 핵심: MemGPT 아키텍처 — 에이전트가 자신의 메모리를 직접 관리
├── 검색: 에이전트 자율 결정 (무엇을 기억할지, 버릴지)
├── 포지션: "에이전트 OS" — 자체 런타임 + 메모리 티어링
└── 비유: 자체 메모리 관리 OS를 가진 에이전트
LangMem
├── 핵심: LangGraph 체크포인터와 통합된 네이티브 메모리 SDK
├── 검색: LangGraph 워크플로우 내에서 메모리 툴로 호출
├── 포지션: "LangGraph 메모리 확장" — 생태계 내 최소 마찰
└── 비유: LangGraph용 플러그인 메모리 모듈
2. 벤치마크 — 숫자로 보는 차이
# 2026년 주요 메모리 벤치마크 결과
LoCoMo (단일홉·멀티홉·시간적·오픈도메인 대화 기억)
Mem0 신알고리즘 (2026년 4월) 91.6점 ← SOTA
Zep/Graphiti ~85점
LangMem ~78점
OpenAI 내장 메모리 ~70점 (Mem0 대비 26% 낮음)
나이브 풀 컨텍스트 ~65점
LongMemEval (시간적 추론 특화)
Zep/Graphiti 63.8% ← 시간적 추론 1위
Mem0 ~52% ← 15점 차이
BEAM (1M 토큰 프로덕션 스케일)
Mem0 64.1점
기타 미발표
# 해석
→ 전반적 정확도: Mem0 1위
→ 시간적 추론: Zep 1위 (15점 차이 — 의미 있는 격차)
→ 토큰 효율: Mem0 (90% 절감)
→ 장기 자율 에이전트: Letta (벤치마크 외 기능 차별화)
3. Mem0 — 범용 메모리 API
# 장점
✅ 가장 빠른 프로덕션 진입 (5분 설정)
✅ 21개 프레임워크 공식 통합
✅ Anthropic SDK·OpenAI·Google ADK 동시 지원
✅ 자체 호스팅 가능 (Docker + Qdrant)
✅ HIPAA BAA (Enterprise 플랜)
✅ 2026년 4월 시간적 추론 추가
# 단점
❌ 복잡한 시간적 쿼리 ("3월에는 뭐였지?")는 Zep보다 약함
❌ 메모리 추출에 LLM 호출 → 쓰기 레이턴시
# 요금 (2026년 5월 기준)
Free: 1,000 메모리 저장 / 월
Pro: $49/월 (5만 메모리)
Enterprise: 문의
# 선택 기준
→ 챗봇·개인화 어시스턴트·고객 지원 봇
→ 빠른 프로토타입 후 프로덕션 전환
→ 다중 에이전트 스택을 운영 중인 팀
# 코드 복잡도: 낮음 (3줄이면 시작)
from mem0 import MemoryClient
client = MemoryClient(api_key="key")
client.add(messages, user_id="user_001")
results = client.search("query", user_id="user_001")
4. Zep / Graphiti — 시간적 지식 그래프
Zep의 핵심 기능은 시간적 지식 그래프다. 단순히 사실을 저장하는 게 아니라 타임스탬프와 관계 맵과 함께 저장한다. 사용자가 "예전에 뉴욕에 살았어요"라고 말하면 Zep은 유효 기간이 끝난 사실로 이전 거주지를 표시하고, 이를 '뉴욕'이라는 그래프 노드와의 관계로 저장한다.
# Zep/Graphiti 설치 및 기본 사용
pip install zep-python
from zep_python.client import AsyncZep
from zep_python.types import Message
client = AsyncZep(api_key="ZEP_API_KEY")
# 세션 생성
await client.memory.add_session(
session_id="session_001",
user_id="user_001"
)
# 메시지 추가 → Graphiti가 자동으로 지식 그래프 구성
messages = [
Message(role="user", content="저 지난달에 구글에서 Anthropic으로 이직했어요."),
Message(role="assistant", content="축하해요! Anthropic에서 잘 되시길 바랍니다.")
]
await client.memory.add(session_id="session_001", messages=messages)
# 시간적 쿼리 — Zep이 강한 부분
# "현재 직장"과 "이전 직장" 자동 구분
memory = await client.memory.get(session_id="session_001")
print(memory.facts)
# → [
# Fact(content="구글 근무", valid_at="...", invalid_at="2026-04-01"), ← 과거
# Fact(content="Anthropic 근무", valid_at="2026-04-01", invalid_at=None) ← 현재
# ]
# Zep 선택 기준
✅ 고객 상태가 자주 바뀌는 B2B SaaS (구독 플랜 변경, 담당자 교체)
✅ 금융·법률·의료 에이전트 (과거 이력 추적 필수)
✅ "X가 Y였던 시점"을 정확히 쿼리해야 하는 경우
✅ 엔터프라이즈 규모, Graphiti 오픈소스로 자체 호스팅 가능
❌ 단순 챗봇 개인화 → Mem0로 충분
❌ LangGraph 네이티브 워크플로우 → LangMem이 더 편함
# 요금
Free: 1,000 크레딧/월 (API 테스트 수준)
Pro: $49/월~
Graphiti 오픈소스: Apache 2.0 (자체 호스팅)
5. Letta (MemGPT) — 에이전트 OS
Letta는 에이전트가 독립적으로 수일 동안 운영해야 할 때 유일한 선택지다. 에이전트 자체 런타임을 포함한다.
# Letta 설치
pip install letta
from letta import create_client
from letta.schemas.memory import ChatMemory
client = create_client()
# 에이전트 생성 — 자체 메모리 관리
agent = client.create_agent(
name="my-long-running-agent",
memory=ChatMemory(
human="사용자 이름: 지수. 개발자.",
persona="나는 친절한 코딩 어시스턴트다."
),
# 코어 메모리 (항상 컨텍스트에 있음)
# 아카이브 메모리 (검색으로 불러옴)
# 리콜 메모리 (대화 히스토리)
)
# 에이전트와 대화 — 에이전트가 스스로 메모리 관리
response = client.send_message(
agent_id=agent.id,
role="user",
message="저 어제 말한 프로젝트 진행 상황 어떻게 됐어요?"
# 에이전트가 알아서 관련 아카이브 메모리 검색
)
print(response.messages[-1].text)
# Letta 메모리 3계층
┌─────────────────────────────────────┐
│ 코어 메모리 (Core Memory) │ ← 항상 컨텍스트에 있음
│ persona + human (제한된 크기) │
├─────────────────────────────────────┤
│ 아카이브 메모리 (Archival Memory) │ ← 벡터 DB, 무제한
│ 에이전트가 search_archival로 검색 │
├─────────────────────────────────────┤
│ 리콜 메모리 (Recall Memory) │ ← 대화 히스토리 DB
│ 에이전트가 search_conversation으로 │
└─────────────────────────────────────┘
# 핵심: 에이전트가 직접 메모리 읽기/쓰기 도구를 호출
# → 인간이 메모리 관리 로직 짤 필요 없음
# 선택 기준
✅ 수일~수주 실행하는 자율 에이전트
✅ 에이전트가 스스로 무엇을 기억할지 결정해야 하는 경우
✅ 복잡한 멀티스텝 프로젝트 관리 에이전트
✅ "나 내일 다시 이어서 해줄 수 있어?" 시나리오
❌ 단순 챗봇 → 오버엔지니어링
❌ 빠른 프로토타입 → 설정 복잡도 높음
6. LangMem — LangGraph 네이티브
LangMem은 LangGraph를 이미 쓰는 팀이 새 벤더 없이 메모리를 추가하는 가장 쉬운 경로다. 무료, 네이티브, 놀랍도록 유능하다 — 단 생태계 내에서만.
# LangMem 설치
pip install langmem
from langmem import create_memory_store_manager
from langgraph.store.memory import InMemoryStore
# 메모리 스토어 초기화
store = InMemoryStore() # 프로덕션: PostgresStore or RedisStore
# 메모리 매니저 생성
memory_manager = create_memory_store_manager(
"anthropic/claude-sonnet-4-6-20261022",
namespace=("user_memories",)
)
# LangGraph 노드에서 사용
from langgraph.graph import StateGraph, END
from langgraph.store.memory import InMemoryStore
def memory_node(state, config, *, store):
"""메모리 저장 노드"""
user_id = config["configurable"]["user_id"]
namespace = ("memories", user_id)
# 기존 메모리 검색
memories = store.search(namespace, query=state["messages"][-1]["content"])
# 새 메모리 저장
memory_manager.invoke(
{"messages": state["messages"]},
store=store,
namespace=namespace
)
return {"memories": [m.value for m in memories]}
# LangGraph 그래프에 노드 추가
workflow = StateGraph(...)
workflow.add_node("memory", memory_node)
# → LangGraph checkpointer(단기) + LangMem(장기) 자동 연동
# LangMem 선택 기준
✅ 이미 LangGraph 기반 에이전트 운영 중
✅ 새 외부 벤더 추가 없이 메모리 구현하고 싶을 때
✅ 프롬프트 최적화가 메모리만큼 중요한 경우
✅ MIT 라이선스, 완전 무료
❌ LangGraph 외 다른 프레임워크 사용 시 불편
❌ 시간적 추론 필요 → Zep이 더 적합
❌ 그래프 메모리 없음 → 복잡한 관계 추적 불가
7. 2026년 최신 동향 — 플랫폼 레벨 메모리
2026년 4월 23일부터 5월 24일까지 31일 사이에 4가지 메모리 관련 개발이 착지했다 — 이전 6개월을 합친 것보다 더 많은 메모리 인프라가 출시됐다.
# 2026년 5월 플랫폼 메모리 발표
Anthropic "Dreaming" (5월 6일)
→ Claude Managed Agents에 비동기 메모리 통합 프로세스
→ 세션 간 에이전트 메억기록을 검토·패턴 추출·중복 병합·stale 교체
→ 인간 뇌의 해마 메모리 통합 방식 모델링
Google Memory Bank (5월 19일, I/O 2026)
→ Gemini 앱·Spark에 아이덴티티 스코프 영속성 프리미티브
→ Gmail·Docs·Drive 등 Google 생태계 전반에 메모리 유지
의미:
→ 독립 메모리 프레임워크 vs 플랫폼 내장 메모리 구도 형성
→ 단일 플랫폼 에이전트: Dreaming/Memory Bank로 충분할 수 있음
→ 멀티 플랫폼·멀티 모델 에이전트: Mem0 같은 독립 레이어 여전히 필요
8. 전체 비교표 + 선택 가이드
항목 Mem0 Zep/Graphiti Letta LangMem
| 아키텍처 | 벡터+그래프 | 시간적 지식 그래프 | 티어드 메모리 OS | LangGraph 체크포인터 |
| 시간적 추론 | △ (2026.04 추가) | ✅ 1위 | △ | ❌ |
| LoCoMo | 91.6 (1위) | ~85 | 미발표 | ~78 |
| LongMemEval | ~52% | 63.8% (1위) | 미발표 | 미발표 |
| 장기 자율 실행 | △ | △ | ✅ 1위 | ❌ |
| 설정 난이도 | 낮음 | 중간 | 높음 | 낮음(LangGraph만) |
| 프레임워크 의존 | 없음 | 없음 | 자체 런타임 | LangGraph 전용 |
| 오픈소스 | ✅ | Graphiti만 | ✅ | ✅ MIT |
| 자체 호스팅 | ✅ Docker | ✅ Graphiti | ✅ | ✅ |
| GitHub Stars | 55,700+ | 미발표 | 12,000+ | 미발표 |
| 요금 시작 | Free/$49 | Free/$49 | Free/Pro | 무료 |
# 상황별 선택 가이드
단순 챗봇·개인화 어시스턴트
→ ✅ Mem0 (가장 쉽고 전반적 정확도 1위)
B2B SaaS·금융·법률 에이전트 (사실 변경 추적)
→ ✅ Zep/Graphiti (시간적 추론 1위)
수일~수주 실행 자율 에이전트
→ ✅ Letta (유일한 선택지)
이미 LangGraph 기반 팀
→ ✅ LangMem (가장 쉬운 통합)
멀티 플랫폼·멀티 모델 에이전트
→ ✅ Mem0 (Anthropic+OpenAI+Google ADK 동시 지원)
단일 플랫폼 Claude 에이전트 (Managed Agents)
→ △ Anthropic Dreaming 지켜보기 (플랫폼 내장)
예산 없는 스타트업
→ ✅ LangMem (완전 무료) 또는 Mem0 Free
✅ 결론
✅ Mem0 — 전반적 정확도 1위, 가장 넓은 통합, 빠른 시작 → 기본값으로 시작하기 좋음
✅ Zep — 시간적 추론 특화, 사실이 변하는 엔터프라이즈 환경에서 의미 있는 격차
✅ Letta — 장기 자율 에이전트의 유일한 선택지, 단 학습 곡선 있음
✅ LangMem — LangGraph 팀의 무료·최소 마찰 선택지
❌ "어디에나 맞는 1등 프레임워크"는 없음 — 에이전트 특성에 따라 다른 선택
❌ LangChain memory(BufferMemory 등) — 공식 deprecated, 아직 쓰면 지금 마이그레이션
❌ 플랫폼 메모리(Dreaming·Memory Bank)는 아직 성숙 중 — 멀티 플랫폼엔 독립 레이어 여전히 필요
관련 글
'AI Agent' 카테고리의 다른 글
| 에이전트와 실제로 일하는 법 — 아젠틱 엔지니어링 실무 완전 가이드 (0) | 2026.05.28 |
|---|---|
| 바이브 코딩은 끝났다 — 아젠틱 엔지니어링 시대의 개발자 생존 전략 (0) | 2026.05.27 |
| Mem0 가이드 2편: 프로덕션 설계와 토큰 최적화 (0) | 2026.05.27 |
| Mem0 개념과 기본 사용법 완전 가이드 1편 — AI 에이전트에게 기억을 심어라 (0) | 2026.05.27 |
| AI 에이전트는 아직 일상 업무를 못 한다 — ClawBench 완전 분석 (0) | 2026.05.27 |