Graphiti 시간 지식 그래프 — 사실 무효화와 하이브리드 검색
Graphiti 시간 지식 그래프
Graphiti가 특히 강점을 보이는 부분은 사실이 시간에 따라 어떻게 변하는지를 다루는 일이에요. "Mike가 CEO다"라는 사실이, 3월에 "Sarah가 CEO다"로 바뀌었다고 가정해 보죠. 일반 그래프라면 낡은 사실을 지우거나, 새 사실과 섞어 오염시키기 마련이에요. Graphiti는 둘 다 하지 않아요.
사실의 유효 기간
모든 사실은 시간 경계를 가진 엣지로 저장돼요. created_at(참이 된 시점)과 invalidated_at(무효화된 시점)을 함께 기록하죠. 모순되는 정보가 들어오면 낡은 사실은 사라지지 않고, 그것을 대체한 원시 에피소드를 가리키는 프로비넌스와 함께 명시적으로 무효화돼요.
이 덕분에 "2월에 CEO는 누구였지?" 같은 과거 질의는 Sarah를, 현재 질의는 Mike를 반환해요.
에피소드 섭취
에피소드를 넣으면 세 가지 작업이 동시에 벌어져요.
- 엔티티 추출 — LLM 구조화 출력 (Pydantic 모델이 스키마 강제)
- 임베딩 생성 — 의미 검색용
- 엔티티 해소 — 코사인 유사도 클러스터링
추출된 엔티티는 노드, 관계는 시간 경계를 가진 엣지, 에피소드 자체는 프로비넌스 노드로 남아 "Mike is CEO"를 만든 회의록까지 추적할 수 있어요.
하이브리드 검색
검색은 의미 임베딩, BM25 키워드, 그래프 탐색을 융합해요. LLM 요약에 의존하지 않아 지연이 낮고 정밀도가 높아요. GraphRAG가 순차 LLM 요약으로 수 초~수십 초가 걸리는 반면, Graphiti는 보통 sub-second 지연을 목표로 해요.