Graphiti:面向AI代理的时序知识图谱引擎
构建随时间演变的上下文图谱,让AI代理掌握事实的时效性变化。
证据显示:项目使用Apache-2.0许可证,有SECURITY.md说明安全更新支持0.x版本,并指引通过GitHub私有漏洞报告机制。依赖项在pyproject.toml中列出,但未提供依赖安全审计或漏洞扫描证据。数据流方面,README说明了数据如何被摄取到图数据库,但未明确数据流向或用户确认机制。外部效果方面,项目会调用外部LLM和数据库服务,但未说明权限最小化或用户确认。回滚机制未提及。来源归属方面,有作者信息,但发布者未验证。扣分原因:缺乏用户确认、数据流透明性不足、依赖安全证据薄弱、外部效果未明确权限、无回滚机制。
证据显示:README和代码示例在功能描述上基本一致,但未提供执行测试的证据。依赖项在pyproject.toml中列出,但未验证其可用性。失败消息方面,代码中可能有错误处理,但未提供具体示例。扣分原因:未执行测试,依赖可用性未验证,失败消息证据不足。
证据显示:README明确了目标受众(AI代理开发者)和使用场景(构建时间上下文图)。能力边界通过Zep vs Graphiti对比和GraphRAG对比有所说明。触发精度方面,提供了API使用示例,但未明确触发条件。环境适配方面,支持多种数据库和LLM提供商,但未说明所有环境配置。扣分原因:触发精度不明确,环境适配未全面覆盖。
证据显示:README结构清晰,包含安装、快速开始、示例等。安装说明详细,支持多种安装方式。命名方面,项目名称和包名一致。示例和FAQ部分有快速开始和MCP服务器说明。已知限制方面,提到了Kuzu弃用和LLM结构化输出问题。许可证为Apache-2.0,版本号在pyproject.toml中。维护责任方面,有作者和贡献指南。扣分原因:缺少明确的变更日志,版本历史不完整。
证据显示:输出可用性方面,提供了API和MCP服务器,输出为图数据,但未提供实际输出示例。边际价值方面,与GraphRAG对比突出其时间感知和增量更新优势。成本效益方面,开源免费,但需要自托管数据库和LLM API成本。扣分原因:输出示例不足,成本效益未量化。
证据显示:README中的声明(如时间感知、增量更新)有代码和文档支持,但未提供独立验证。跨来源佐证方面,有arXiv论文链接,但未提供其他独立来源。事实与推断分离方面,README区分了功能描述和性能声明,但未明确标注哪些是推断。扣分原因:跨来源佐证不足,事实与推断分离不明确。
- 发布者身份未验证,需谨慎对待供应链风险。
- 依赖项未提供安全审计证据,建议检查依赖漏洞。
- 项目会调用外部LLM和数据库服务,需确保数据隐私和权限最小化。
- Kuzu后端已弃用,使用前需注意。
- 未提供回滚机制,数据操作需谨慎。
这个 Agent 能做什么,适合哪些场景?
Graphiti是一个开源框架,用于构建和查询面向AI代理的时序知识图谱。与静态知识图谱不同,Graphiti能够追踪事实随时间的变化、保留数据来源,并支持预设和自学习本体。它持续整合用户交互、结构化与非结构化企业数据及外部信息,形成可查询的图谱。采用增量更新,无需全量重算,适用于交互式、上下文感知的AI应用。Graphiti提供混合检索(语义+关键词+图遍历),支持跨时间的精准查询,并具备亚秒级查询延迟。作为Zep的核心引擎,Graphiti在Zep的上下文中证明了其在高性能代理记忆方面的有效性。
Graphiti建立时序上下文图谱:从原始数据(episodes)中提取实体和关系,赋予时间有效性窗口,并自动处理矛盾信息。核心操作包括:通过Graphiti类初始化,添加episodes(文本或结构化JSON),使用混合搜索(语义+BM25+图遍历)检索边和节点,利用图距离重排序结果,以及通过Graphiti的驱动接口(如Neo4jDriver、FalkorDriver)连接Neo4j、FalkorDB等图数据库。支持增量图构建,实时整合新数据。
- 需要从对话历史中提取持续更新的用户画像(如偏好、关系)的客服代理。
- 需要精准回答“某事实在特定时间是否成立”的金融或法律分析人员。
- 需要动态知识整合的推荐系统,根据用户最新行为实时调整推荐。
- 需要从多源数据(邮件、文档、数据库)构建统一知识图谱的企业。
- 希望自托管图谱引擎,避免供应商锁定,同时支持多种LLM提供商(OpenAI、Anthropic等)的开发团队。
这个 Agent 有哪些优点和局限?
- 时序事实管理:自动失效旧事实,保留历史,支持任意时点查询。
- 混合检索:结合语义、关键词和图遍历,亚秒级延迟。
- 增量构建:新数据实时整合,无需批量重算。
- 支持多种图数据库后端:Neo4j、FalkorDB、Amazon Neptune等。
- 对LLM依赖较强,需要支持结构化输出的服务(如OpenAI),否则可能失败。
- 需要自备图数据库(如Neo4j),增加了运维成本。
- 高级功能如用户管理、仪表盘需自行构建,或使用Zep平台(商业)。
- Kuzu后端已弃用。
如何安装或部署这个 Agent?
安装要求:Python 3.10+,Neo4j 5.26或FalkorDB等图数据库,以及OpenAI API密钥(默认)。使用pip安装:pip install graphiti-core,或使用uv:uv add graphiti-core。若使用FalkorDB,需安装:pip install graphiti-core[falkordb]。可选LLM提供商:如Anthropic(pip install graphiti-core[anthropic])。
如何使用这个 Agent?
快速开始:1. 设置OPENAI_API_KEY环境变量。2. 连接数据库:使用Graphiti类,传入URI、用户名、密码(如bolt://localhost:7687)。3. 初始化索引和约束。4. 添加episodes:使用add_episode方法,传入文本或JSON。5. 检索:调用search方法进行混合搜索。完整示例见examples/quickstart目录。
这个 Agent 与同类方案有什么区别?
Graphiti可与GraphRAG对比:GraphRAG适用于静态文档摘要,批处理,查询延迟高(秒级);Graphiti面向动态上下文,增量更新,亚秒级查询,支持时间追踪和矛盾自动失效。