我一直覺得很神奇:大多數 AI 系統只要你一停止和它們對話,就會把一切都忘光。你餵給它們 facts、context、chat logs——會話一結束,噗的一下,全沒了。這一直是“intelligent” agents 的最大瓶頸。
後來我發現了 Graphiti,感覺終於有人把 knowledge graphs 和 AI memory 連接到了一起。
如果這聽起來有點高深,別擔心,我們一步步來。
Graphiti 是什麼
把 Graphiti 想象成一個創建並維護動態知識網絡的工具。
每一條小事實——比如“Kendra 喜歡 Adidas 鞋”——都會變成一個由信息相互連接構成的小三角(類似一個三元關係)。
Kendra -[loves]→ Adidas shoes
每個 node 代表一個“thing”(比如人或物品),每條 edge 表示一種 relationship(比如“loves”或“bought”)。這就是所謂的 knowledge graph。
和常見的 RAG(Retrieval-Augmented Generation)不同,Graphiti 不只是一次性把圖構建出來然後就放着不管;它讓圖“活着”。隨着新信息的進入(用户對話、數據庫記錄、外部更新等等),graph 會持續自我更新。
如果明天 Kendra 改愛 Nike,Graphiti 會自動更新那條 relationship,同時還會記得她曾經喜歡過 Adidas。這就像帶上了 timeline 的 memory。
為什麼這很重要
大多數 RAG 系統是靜態的。它們批量處理數據、做 summarise,然後把信息“定格”。對 research bot 或 FAQ assistant 還行,但對任何快速變化的東西都很差——比如 CRM、real-time analytics dashboard,甚至是 personal AI companion。
Graphiti 顛覆了這個模式。
它帶來:
- Instant updates:新數據進來就能即時更新
- Bi-temporal tracking:既知道事情發生的時間,也知道被記錄的時間
- Hybrid retrieval:融合 semantic search(看語義)、keyword search(看精準關鍵詞)和 graph traversal(看關係結構)
簡而言之:更快、更貼心、更精準的響應——往往不到一秒。
設置 Graphiti
你需要 Python 3.10+,以及一個數據庫(比如 Neo4j 或 FalkorDB)。為了簡單起見,這裏選 Neo4j。
安裝依賴:
pip install graphiti-core
如果你用 uv(非常適合做依賴管理):
uv add graphiti-core
然後連接 Neo4j:
from graphiti_core import Graphiti
from graphiti_core.driver.neo4j_driver import Neo4jDriver
driver = Neo4jDriver(
uri="bolt://localhost:7687",
user="neo4j",
password="password",
database="graphiti_demo"
)
graphiti = Graphiti(graph_driver=driver)
現在,給它一條數據——Graphiti 把這種數據稱為一個 “episode”:
episode = {
"event": "purchase",
"user": "Kendra",
"item": "Adidas Ultraboost",
"timestamp": "2025-10-16T09:00:00Z"
}
graphiti.add_episode(episode)
你可以這樣查詢:
results = graphiti.search("Who bought Adidas shoes?")
print(results)
就這麼簡單。不用 retraining,不用 recomputation。數據是“活的”,會不斷演化。
幕後:一切如何串聯起來
Graphiti 是 Zep 的核心組件,Zep 是一個很酷的 “context engineering platform”,為 AI agents 提供 long-term memory。
所以當你看到 Zep 在像變魔術一樣處理動態數據、維持上下文時——其實是 Graphiti 在幕後默默乾重活。
它也能很好地對接多家 AI providers:
- OpenAI(默認)
- Google Gemini
- Anthropic
- Groq
- 甚至 Ollama(如果你想把一切都本地化)
如果你在做 privacy-focused 的項目,Ollama 的集成非常香。你可以拉取像 deepseek-r1:7b(做 reasoning)和 nomic-embed-text(做 embeddings)這樣的模型,全程不碰雲端。
它與眾不同的感覺
我用過不少號稱 “real-time” 或 “context-aware” 的框架,但 Graphiti 確實做到了。你能直觀看到 relationships 的發展變化;你可以讓它回放某個時刻“世界”的樣子。而且它使用 hybrid retrieval,而不是隻靠 LLM summarisation,所以它很快——經常在一秒內返回。
如果你被傳統 RAG 在應對動態數據時的捉襟見肘折磨過,Graphiti 會讓人耳目一新。
使用前的小提醒
- Graphiti 使用 structured LLM output,因此像 OpenAI 或 Gemini 這樣的模型效果最佳。
- 默認的 concurrency 比較低,以避免觸發 API 限額;如果你的 API 允許更高吞吐,可以調高
SEMAPHORE_LIMIT。 - 需要為你使用的 LLM provider 設置 environment variables(如
OPENAI_API_KEY、ANTHROPIC_API_KEY等)。
最後的想法
Graphiti 像是 memory 與 reasoning 之間那塊缺失的拼圖。它不只是存 facts——更是去理解這些事實如何隨時間演變。
如果你在打造需要記憶、推理、適應(而不是隻檢索靜態信息)的 AI agents,這個框架值得一試。
説真的,那種查詢數據像是在讀一部自己不斷續寫的故事的感覺,太自然了。
如果覺得有用請關注微信公眾號,獲取更多資訊。