Graphiti:给 Agent 的时间知识图谱
Graphiti 是 Zep 开源的实时知识图谱框架:事实带时间窗、过期自动失效留史,Agent 可按语义、关系、时间三路召回。
项目资料
GitHub Ecosystem- 许可证
- Apache-2.0
- 主语言
- Python
- 星标
- 31,303
- 核查时间
- 2026-09-29
以上快照资料以核查当日为准,可能随版本或运营策略变化。
Agent 的记忆大多躺在向量库里:只会「相似度最近」,分不清「现在还成立吗」。用户上个月说喜欢 Adidas,这个月改投 Nike 了,普通 RAG 两条都会召回。Graphiti(getzep/graphiti)换了个存法——把事实、关系连同时间窗一起写进实时知识图谱,信息一变旧事实自动失效而不是删除,查的时候既能问「现在什么是真的」,也能问「某天那时候什么是真的」。它是 Zep 商业化上下文基础设施的开源核心,背后有论文 arXiv:2501.13956 撑着;视频号「钟老师AI实战」9 月 25 日推荐过它(查于 2026-09-29,31,303 星)。

核心功能
- 时间窗管理事实:每条事实(实体—关系—实体三元组)带生效区间,信息变化时旧事实被标记失效但保留历史,可查任意时点的状态。
- 增量构建不重算:新数据即刻并入图谱,不用像传统 RAG 那样跑批量重算,适合频繁变化的业务数据。
- 三路混合检索:语义向量 + 关键词(BM25)+ 图遍历一起上,低延迟出结果,查询时不依赖 LLM 摘要。
- episode 溯源:每个实体和关系都能追回产生它的原始数据(episode),从结论到出处全链路。
- 本体可控:实体和边的类型可以用 Pydantic 模型预先定义,也可以让结构从数据里自己长出来。
- MCP 服务器与 REST 服务:仓库自带
mcp_server/(episode、实体管理加混合检索,Docker + Neo4j 部署)和 FastAPI 服务,AI 助手可以直接通过 MCP 读写图谱。
与 GraphRAG 的差别
README 给了一张正面对比表:GraphRAG 面向静态文档摘要,靠 LLM 逐层总结出实体簇和社区摘要;Graphiti 面向动态变化的数据,用双时间轴(事件时间与入库时间)显式记录,矛盾出现时自动失效旧事实并保留完整历史,检索靠混合搜索而非顺序摘要。一句话:文档问答用 GraphRAG,跟着业务一起变的客户档案、项目状态用 Graphiti。
快速上手
要求 Python 3.10+,图后端选 Neo4j 5.26、FalkorDB 1.1.2 或 Amazon Neptune(Kuzu 已标记弃用),默认用 OpenAI 的 key 做 LLM 推理和嵌入,官方提示换用不支持结构化输出的小模型可能导致写入失败:
pip install graphiti-core
想不装图数据库也能跑,可以用 FalkorDB 的内嵌版 pip install graphiti-core[falkordblite](要求 Python 3.12+)。把对话或业务事件作为 episode 喂进去,图谱就边长边可查了。
小结
做客户上下文、长期记忆或任何「事实会变」的知识系统的后端开发者值得一看;只是想给静态文档做问答的,GraphRAG 类方案更省事。Apache-2.0 协议、Python 实现,2024 年 8 月创建、查于 2026-09-29 有 31,303 星,Zep 团队维护、昨天还在推送,成熟度不用担心。诚实的限制:它默认依赖 OpenAI 且对结构化输出挑剔,换模型要自己验证;跑起来必须先起一个图数据库服务,比纯向量库的运维重一些。和 OpenMausBot 把记忆装在每个 bot 里不同,Graphiti 把记忆外置成一层独立服务,多智能体共用一份会话历史时尤其合适。