Graphiti는 AI 에이전트의 메모리·컨텍스트를 시간 인식 그래프(temporal context graph)로 구축·쿼리하는 오픈소스 프레임워크다. 사실(fact)이 언제 참이었고 언제 바뀌었는지를 그래프 엣지에 저장해, 에이전트가 단순 채팅 기록이나 문서 청크가 아닌 구조화된 지식을 활용할 수 있게 한다. Zep의 에이전트 메모리 인프라 핵심 엔진으로 개발됐으며, arXiv 논문(2501.13956)으로도 발표됐다. GitHub ★25.6k.
컨텍스트 그래프란
기존 지식 그래프가 “A는 B이다”를 정적으로 저장하는 반면, 컨텍스트 그래프는 “A는 B였다(2026년 3월 기준)”처럼 유효 기간(validity window)을 갖는 사실을 저장한다. 현실 세계의 변화를 추적하고, 모든 파생 사실을 원본 데이터(에피소드)로 소급할 수 있다.
| 구성 요소 | 저장 내용 |
|---|---|
| 엔티티(Entities) | 사람·제품·정책·개념 — 시간에 따라 요약이 진화 |
| 사실/관계(Facts/Edges) | 엔티티 삼중쌍(A→관계→B) + 시간적 유효 범위 |
| 에피소드(Episodes) | 원본 데이터 스트림 — 모든 파생 사실의 출처 |
| 커스텀 타입 | Pydantic 모델로 정의한 개발자 정의 온톨로지 |
Graphiti가 기존 RAG와 다른 점
- 정적 청크 대신 관계와 시간 축을 함께 인덱싱한다
- 새 데이터 입력 시 그래프 전체를 재계산하지 않고 증분 업데이트한다
- 검색 시 의미 검색 + 키워드 검색 + 그래프 순회를 하이브리드 결합한다
- 과거 상태를 기준으로 시점 쿼리가 가능하다 (“3월 기준으로 A의 역할은?”)
주요 활용 사례
에이전트 메모리: 매 인터랙션마다 컨텍스트 그래프가 업데이트되어, 에이전트가 사용자의 과거 선호·결정·변경 사항을 구조적으로 기억한다.
엔터프라이즈 데이터 통합: 비정형·정형 엔터프라이즈 데이터를 지속적으로 그래프에 통합해 최신 상태를 유지한다.
복잡한 멀티홉 질문: 단순 키워드 검색으로 답하기 어려운 다단계 관계 질문에 그래프 순회로 답한다.
Graphiti vs Zep
Graphiti는 오픈소스 엔진, Zep은 Graphiti를 기반으로 한 관리형 SaaS다.
| 항목 | Zep (관리형) | Graphiti (오픈소스) |
|---|---|---|
| 배포 | 완전 관리형 / 고객 클라우드 | 셀프호스팅 |
| 성능 | 200ms 미만 검색, 프로덕션 최적화 | 직접 구현 필요 |
| 거버넌스 | 대시보드·API 로그·SDK 포함 | 직접 구축 |
| 기업 지원 | SLA·보안 보증 | 없음 |
MCP 서버
Claude, Cursor 등 MCP 클라이언트가 Graphiti 컨텍스트 그래프를 직접 사용할 수 있는 MCP 서버를 공식 제공한다.
설치
pip install graphiti-corefrom graphiti_core import Graphiti
client = Graphiti("bolt://localhost:7687", "neo4j", "password")
await client.build_indices_and_constraints()
# 에피소드 추가
await client.add_episode(
name="대화 1",
episode_body="사용자: Adidas 신발 좋아해요",
source=EpisodeType.message,
)
# 검색
results = await client.search("사용자 선호 신발 브랜드")Neo4j 또는 FalkorDB가 그래프 데이터베이스로 필요하다.
- 라이선스: Apache 2.0
- 논문: arXiv:2501.13956
관련 문서
- graph-rag — 관계 인식 검색 RAG 패러다임
- lightrag — 지식 그래프 기반 RAG 시스템
- ai-agent-tips-memory — 에이전트 메모리 아키텍처 3단계
- rag — 검색 증강 생성 기술 개요