AI 에이전트가 매 세션마다 모든 것을 잊어버린다면? Graphiti가 해결합니다.
요약
Graphiti는 AI 에이전트의 메모리 문제를 해결하기 위해 시계열 지식 그래프를 구축하는 오픈 소스 프레임워크입니다. 기존 RAG 방식의 토큰 비용과 지연 시간 문제를 해결하며, 엔티티와 관계를 실시간으로 추적하여 에이전트에게 지속적인 맥락을 제공합니다.
핵심 포인트
- 시계열 지식 그래프를 통해 엔티티, 관계, 사실의 유효 기간을 관리함
- 기존 방식 대비 토큰 사용량을 약 2% 수준으로 절감하고 지연 시간을 90% 단축
- 정적인 문서 중심의 GraphRAG와 달리 변화하는 실시간 데이터 처리에 최적화
- 정보의 무효화(Invalidation) 메커니즘을 통해 과거 상태 복원 가능
AI 에이전트를 구축하는 모든 개발자가 직면하는 문제가 있습니다. 바로 에이전트가 정확히 단 한 번의 세션 동안만 똑똑하다는 점입니다. 채팅을 종료하고 다음 날 돌아오면, 에이전트는 당신이 누구인지, 무엇을 작업하고 있었는지, 혹은 이미 무엇을 말했는지 전혀 알지 못합니다.
표준적인 해결책은 채팅 기록을 컨텍스트 윈도우 (context window)에 다시 쏟아붓는 것입니다. 하지만 이는 한계가 있습니다. 컨텍스트 윈도우가 가득 차고, 지연 시간 (latency)이 급증하며, 비용이 폭증하게 됩니다. 게다가 에이전트는 여전히 사건이 '언제' 발생했는지, 혹은 '무엇이' 변했는지에 대해 추론할 수 없습니다.
Graphiti는 근본적으로 다른 접근 방식을 취합니다. 가공되지 않은 전사 기록 (raw transcripts)을 컨텍스트 윈도우에 밀어 넣는 대신, 엔티티 (entities), 관계 (relationships), 그리고 사실 (facts)을 추적하는 시계열 지식 그래프 (temporal knowledge graph)를 구축합니다. 여기에는 해당 사실이 언제 참이 되었는지와 언제 대체되었는지에 대한 정보도 포함됩니다.
Graphiti의 실체
Graphiti는 AI 에이전트를 위한 시계열 컨텍스트 그래프 (temporal context graphs)를 구축하고 쿼리하기 위한 Zep의 오픈 소스 프레임워크입니다. 이는 Zep의 관리형 메모리 플랫폼의 엔진이지만, 단독으로도 완전히 사용 가능합니다.
핵심 아이디어는 다음과 같습니다. 메모리를
컨텍스트 윈도우 세금 (The context window tax). 전체 채팅 기록을 컨텍스트 윈도우 (context window)에 밀어 넣는 것은 에이전트 메모리에 대한 무차별 대입 (brute-force) 방식입니다. 짧은 대화에는 효과적이지만, 115K 토큰에 달하면 응답 시간이 30초까지 늘어나고 막대한 API 비용이 발생합니다. Zep의 벤치마크에 따르면, 이들의 그래프 기반 접근 방식은 동일한 쿼리에 대해 약 1.6K 토큰을 사용하며 — 이는 기준점의 약 2% 수준입니다 — 지연 시간 (latency)은 90% 더 낮습니다.
**"그것을 잊어버렸다"는 문제 (
그래프 내의 모든 사실(fact)은 유효 기간(validity window)을 가집니다. 새로운 정보가 기존의 사실과 모순될 때, 오래된 사실에는 종료 타임스탬프(end timestamp)가 부여됩니다. 이는 삭제되는 것이 아니라, 무효화(invalidated)되는 것입니다. 즉, 어느 시점에서든 그래프를 쿼리하여 당시의 세계 상태를 얻을 수 있음을 의미합니다.
이는 단순히 "이 정보가 저 정보를 대체했다"는 개념 없이 청크(chunks)에 대해 유사도 검색(similarity search)만을 수행하는 벡터 기반 RAG (Retrieval-Augmented Generation)와는 근본적으로 다른 모델입니다.
Graphiti vs. GraphRAG vs. Standard RAG
| 측면 | Standard RAG | GraphRAG | Graphiti |
|---|---|---|---|
| 데이터 업데이트 | 배치 재인덱싱 (Batch reindex) | 배치 재계산 (Batch recompute) | 증분형, 실시간 (Incremental, real-time) |
| ... |
실질적인 차이점: GraphRAG는 정적인 문서 코퍼스(corpora)를 위해 설계되었습니다. 고정된 문서 세트를 요약하는 데 매우 유용합니다. 반면 Graphiti는 사용자 선호도, 비즈니스 상태, 진행 중인 대화, 현실 세계의 이벤트와 같이 변화하는 데이터를 위해 설계되었습니다.
시작하기 (생각보다 훨씬 간단합니다)
pip install graphiti-core
그래프 데이터베이스 (Neo4j, FalkorDB 또는 Amazon Neptune)와 LLM API 키 (OpenAI, Anthropic 또는 Gemini 모두 작동함)가 필요합니다.
가장 빠르게 시도해보는 방법:
# FalkorDB를 로컬에서 시작
docker run -p 6379:6379 -p 3000:3000 -it --rm falkordb/falkordb:latest
from graphiti_core import Graphiti
from graphiti_core.driver.falkordb_driver import FalkorDriver
...
끝입니다. Graphiti는 엔티티 추출 (entity extraction), 관계 매핑 (relationship mapping), 그리고 시간적 추적 (temporal tracking)을 자동으로 처리합니다. 데이터를 추가하고 검색하기만 하면 됩니다 — 그래프가 스스로 구축됩니다.
MCP 서버 (여기서부터 흥미로워집니다)
Graphiti는 Claude, Cursor 및 기타 MCP 호환 도구들이 Graphiti를 메모리 백엔드로 직접 사용할 수 있게 해주는 MCP 서버를 함께 제공합니다. Docker와 Neo4j로 배포하기만 하면, 별도의 커스텀 메모리 관리 코드를 작성하지 않고도 AI 어시스턴트가 지속적이고 시간적 맥락을 인식하는 메모리 (temporally-aware memory)를 갖게 됩니다.
이는 여러 세션에 걸쳐 지속되는 에이전트 워크플로우 (agent workflows)를 구축하는 경우에 매우 유용합니다. 파일 기반의 메모리를 임시방편으로 구현하거나 컨텍스트 윈도우 (context window)가 모든 것을 담아주길 기대하는 대신, 시간 인식 (time awareness) 기능이 내장된 구조화되고 쿼리 가능한 (queryable) 메모리를 얻을 수 있습니다.
벤치마크가 보여주는 명확한 결과
Zep (Graphiti 기반)는 Deep Memory Retrieval에서 MemGPT의 93.4%를 상회하는 **94.8%**를 기록했습니다. 더욱 인상적인 점은, 500개의 인간이 큐레이션한 시간적 추론 (temporal reasoning) 질문이 포함된 훨씬 더 어려운 벤치마크인 LongMemEval에서, Zep은 GPT-4o-mini를 사용한 전체 컨텍스트 베이스라인 (full-context baseline)의 55.4%를 넘어 **63.8%**의 정확도를 달성했다는 것입니다. 게다가 이는 토큰의 2%만을 사용하고 지연 시간 (latency)을 90% 줄이면서 이뤄낸 결과입니다.
동일한 벤치마크에서 GPT-4o를 사용한 전체 컨텍스트 접근 방식 (모든 것을 컨텍스트 윈도우에 쏟아붓는 방식)은 60.2%를 기록했습니다. 반면 Zep은 71.2%를 기록했습니다. 이는 미미한 개선이 아닙니다. 어설프게 기억하는 에이전트와 무엇이 언제 일어났는지 실제로 추적하는 에이전트 사이의 차이입니다.
사용해야 할 때 (그리고 사용하지 말아야 할 때)
다음과 같은 경우 Graphiti를 사용하세요:
- 에이전트가 세션 전반에 걸쳐 정보를 기억해야 할 때
- 사실 관계가 시간이 지남에 따라 변하며 무엇이 변했는지 추적해야 할 때
- 사용자 상태 (user state)가 중요한 개인화된 경험을 구축할 때
- 시간적 추론 ("X 이전에 무슨 일이 있었나요?")이 필요할 때
- 컨텍스트 윈도우 비용이 문제가 되고 있을 때
다음과 같은 경우에는 표준 RAG를 유지하세요:
- 정적인 문서 코퍼스 (document corpus)를 검색할 때
- 데이터가 빈번하게 변경되지 않을 때
- 시간 기반의 추론이 필요하지 않을 때
- 단순한 시맨틱 검색 (semantic search)만으로도 사용 사례에 충분할 때
더 큰 그림
AI 에이전트 메모리 분야가 뜨거워지고 있습니다. Mem0, Letta (MemGPT), 그리고 Zep/Graphiti는 모두 서로 다른 각도에서 이 문제에 접근하고 있습니다. Anthropic은 2026년 4월 Claude Managed Agents를 위한 지속적 메모리 (persistent memory)를 출시했습니다. 업계는 단순한 질의응답 (Q&A) 이상의 모든 작업에서 상태가 없는 (stateless) 에이전트는 막다른 길이라는 점을 집단적으로 깨달았습니다.
Graphiti의 가설은 에이전트의 작업이 더 복잡해짐에 따라 그래프 기반의 시계열 추론 (temporal reasoning)이 평면적 메모리 (flat memory) 접근 방식보다 더 뛰어난 성능을 발휘할 것이라는 점입니다. 벤치마크 결과가 이를 뒷받침하고 있으며, 특히 표준적인 접근 방식들이 한계에 부딪히는 시계열 추론 작업에서 더욱 그러합니다.
이 프레임워크는 오픈 소스 (open source)이며, 활발하게 유지 관리되고 있고 커뮤니티도 성장하고 있습니다. 만약 무언가를 기억하고 시간에 대해 추론해야 하는 에이전트를 구축하고 있다면, 오후 시간을 할애하여 살펴볼 가치가 있습니다.
Graphiti나 다른 에이전트 메모리 프레임워크를 사용해 보셨나요? 세션 간 메모리를 처리하기 위해 현재 어떤 방식을 사용하고 계신가요? 프로덕션 환경에서 무엇이 잘 작동하고 (또는 작동하지 않는지) 여러분의 의견을 듣고 싶습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기