graphiti

graphiti: 這是什麼、解決什麼問題以及為什麼它正受到關注

解決的問題

Graphiti 為 AI agent 提供了一種建立「時序上下文圖譜 (temporal context graphs)」的方法,解決了靜態知識圖譜和扁平化 RAG (Retrieval-Augmented Generation) 系統無法處理演進中數據的問題。它允許 agent 追蹤事實如何隨時間變化,維護何種事實在何時為真,並避免在有新資訊進入時需要重新計算整個圖譜的需求。

運作方式

Graphiti 能從結構化和非結構化數據中自主建立實體、關係和事實的圖譜。它使用「episodes」作為來源數據以確保溯源性 (provenance)。圖譜中的每個事實都被分配了一個有效性窗口 (validity window)(即何時變為真,以及何時被取代),從而實現雙時序追蹤 (bi-temporal tracking)。該系統同時支持預定義的本體論 (ontologies)(透過 Pydantic models 定義)和從數據中自然生成的學習型本體論。檢索 (Retrieval) 則透過結合語義嵌入 (semantic embeddings)、關鍵字搜索 (BM25) 和圖遍歷 (graph traversal) 的混合方法來處理。

對象

它專為開發者設計,旨在構建能夠處理現實世界中頻繁變化的數據,並需要精確歷史查詢的互動式、具備上下文感知能力的 AI agent。

重點特性

  • 時序事實管理 (Temporal Fact Management): 追蹤事實的有效性窗口,在不刪除舊資訊的情況下使舊資訊失效。
  • 溯源性 (Provenance): 每個衍生事實都能追溯回原始的「episodes」數據。
  • 增量構建 (Incremental Construction): 新數據可以即時整合,無需進行批次重新處理。
  • 混合檢索 (Hybrid Retrieval): 結合語義、關鍵字和基於圖譜的搜索,以實現低延遲、高精度的上下文。
  • 靈活的後端 (Flexible Backends): 支持多種圖數據庫,包括 Neo4j, FalkorDB, 和 Amazon Neptune。

Sources