Graphiti:为AI智能体构建动态知识图谱的时序感知框架

【免费下载链接】graphiti Build Real-Time Knowledge Graphs for AI Agents 【免费下载链接】graphiti 项目地址: https://gitcode.com/GitHub_Trending/grap/graphiti

在当今快速发展的AI应用生态中,智能体如何理解和处理不断变化的世界信息?传统的知识图谱往往是静态的,难以适应动态环境中的信息演变。Graphiti应运而生,这是一个专为AI智能体设计的时序感知知识图谱框架,能够构建和查询随时间变化的上下文图谱,为智能体提供动态、结构化的记忆能力。

Graphiti知识图谱动态构建演示 Graphiti知识图谱的动态构建过程,展示了节点和关系的实时演变

什么是时序感知知识图谱?

传统知识图谱记录了实体之间的静态关系,但现实世界的信息是不断变化的。Graphiti的核心创新在于引入了时序感知能力——每个事实(fact)都带有时间窗口,记录了它何时成立、何时被取代。这种设计让AI智能体能够理解信息的时效性,知道"现在什么是真实的"以及"过去什么是真实的"。

一个Graphiti上下文图谱包含四个核心组件:

  1. 实体(Entities):代表人员、产品、概念等,其摘要会随时间演变
  2. 事实/关系(Facts/Relationships):实体间的三元组关系,带有时间有效性窗口
  3. 事件(Episodes):原始数据源,所有衍生事实都能追溯到源头
  4. 自定义类型(Custom Types):通过Pydantic模型定义的实体和边类型

这种设计使得Graphiti能够自主地从结构化和非结构化数据中构建上下文图谱,处理变化的关系同时保留完整的时间历史。

Graphiti与传统RAG的对比分析

当大多数AI系统还在使用检索增强生成(RAG)技术时,Graphiti提供了更先进的解决方案。传统RAG方法通常依赖批量处理和静态数据摘要,难以应对频繁变化的数据环境。

Graphiti结构化与非结构化数据整合演示 Graphiti如何整合结构化和非结构化数据的动态过程

Graphiti与传统RAG的关键区别在于:

  • 动态更新:RAG是批量导向的处理,而Graphiti支持连续、增量更新
  • 时间感知:RAG只有基本的时间戳跟踪,Graphiti提供明确的双时间跟踪和自动事实失效
  • 检索方式:RAG依赖顺序LLM摘要,Graphiti使用混合语义、关键词和图遍历搜索
  • 查询延迟:RAG通常需要数秒到数十秒,Graphiti通常实现亚秒级延迟
  • 可扩展性:RAG适中,Graphiti针对大规模数据集进行了优化

Graphiti的核心架构与工作原理

多后端支持的设计哲学

Graphiti的一个显著特点是其灵活的后端架构。它支持多种图数据库后端,包括:

  • Neo4j:成熟的企业级图数据库
  • FalkorDB:基于Redis的高性能图数据库
  • Amazon Neptune:AWS托管的图数据库服务
  • Kuzu:轻量级嵌入式图数据库(已弃用,推荐使用Neo4j或FalkorDB)

这种多后端设计让开发者可以根据具体需求选择最适合的数据库解决方案。例如,对于需要高性能内存操作的场景,FalkorDB可能是更好的选择;而对于需要企业级支持和成熟生态的应用,Neo4j则更为合适。

混合检索机制

Graphiti的检索系统结合了三种不同的搜索策略:

  1. 语义嵌入搜索:基于向量相似度的深度语义匹配
  2. 关键词(BM25)搜索:传统的文本匹配,适合精确关键词查询
  3. 图遍历搜索:利用图结构特性,发现相关实体和关系

这种混合方法确保了在各种查询场景下都能获得高精度、低延迟的结果,而不需要依赖LLM摘要。

增量图构建

与需要重新计算整个图的传统系统不同,Graphiti采用增量构建策略。当新数据(事件)被摄入时,系统会立即更新图结构,无需批量重新计算。这使得Graphiti特别适合实时应用场景,如聊天机器人、监控系统或实时分析平台。

实际应用场景探索

AI智能体的长期记忆管理

Graphiti最初是为Zep的AI智能体上下文基础设施而开发的。在AI智能体应用中,Graphiti充当"长期记忆引擎",帮助智能体跨会话保持上下文一致性。

AI智能体知识图谱应用示例 在LangGraph框架中使用Graphiti构建的AI智能体知识图谱,展示了实体间的复杂关系网络

通过examples/langgraph-agent/中的示例,我们可以看到如何构建一个基于Graphiti的销售智能体。这个智能体能够:

  • 将新的对话轮次持久化到Graphiti中
  • 基于最新消息回忆相关事实
  • 查询Graphiti获取产品信息
  • 基于先前对话个性化响应

企业知识管理

对于企业应用,Graphiti可以帮助解决信息孤岛问题。通过构建组织架构知识图谱,企业可以:

  1. 动态组织架构:跟踪人员、部门和职责随时间的变化
  2. 业务流程映射:理解不同业务流程之间的关系和依赖
  3. 决策支持:基于历史数据和当前上下文做出更明智的决策
  4. 知识传承:保留组织知识,即使人员变动也不会丢失

学术研究支持

Graphiti的时序感知能力在学术研究领域也有重要应用。通过arxiv-screenshot.png可以看到,Cornell University的研究团队已经将Graphiti应用于"Zep: A Temporal Knowledge Graph Architecture for Agent Memory"的研究中,证明了其在AI代理记忆管理方面的技术价值。

快速开始指南

环境搭建

要开始使用Graphiti,首先需要安装核心库:

pip install graphiti-core

对于特定的数据库后端,可以安装相应的额外组件:

# 使用FalkorDB后端
pip install graphiti-core[falkordb]

# 使用Amazon Neptune后端  
pip install graphiti-core[neptune]

# 支持多种LLM提供商
pip install graphiti-core[anthropic,groq,google-genai]

基本使用示例

通过examples/quickstart/中的快速开始示例,你可以学习到:

  1. 连接数据库:初始化与Neo4j、FalkorDB或Amazon Neptune的连接
  2. 添加事件:将文本内容转换为知识图谱的节点和边
  3. 执行搜索:使用混合检索策略查询图谱
  4. 结果重排:基于图距离对搜索结果进行重排

Docker快速部署

对于想要快速体验的用户,Graphiti提供了Docker Compose配置:

# 使用Neo4j
docker compose up

# 使用FalkorDB
docker compose --profile falkordb up

Graphiti与Zep的关系

Graphiti是Zep的时序上下文图谱引擎的开源核心。Zep提供了企业级的上下文图谱基础设施,而Graphiti则专注于构建和查询单个上下文图谱。

选择Zep的场景

  • 需要即用型、企业级平台
  • 需要内置的安全、性能和支持保障
  • 需要管理大量用户/实体的上下文图谱

选择Graphiti的场景

  • 需要灵活的开放源码核心
  • 愿意自行构建和运维周边系统
  • 需要对技术栈有完全控制权

技术实现深度解析

事件驱动的架构

Graphiti采用事件驱动的设计哲学。每个"事件"代表一段原始数据输入,系统会自动从中提取实体和关系。这种设计确保了数据的完整溯源能力——每个衍生事实都能追溯到产生它的原始事件。

自定义本体支持

开发者可以通过Pydantic模型定义自己的实体和边类型。这种"规定性本体"与"学习性本体"的结合,让系统既可以从预定义的结构开始,又能随着数据模式的出现而演进。

性能优化策略

Graphiti在大规模场景下实现了低于200毫秒的检索性能,这得益于:

  • 并行处理:高效管理大型数据集
  • 可插拔后端:支持多种图数据库优化
  • 混合索引:结合向量索引和全文搜索索引

实际部署建议

并发控制

Graphiti的摄入管道设计支持高并发,但默认设置为较低的并发度以避免LLM提供商的429速率限制错误。可以通过SEMAPHORE_LIMIT环境变量控制并发级别:

export SEMAPHORE_LIMIT=20  # 提高并发度以提升性能

与本地LLM集成

Graphiti支持通过OpenAI兼容的端点与本地LLM服务器集成,如Ollama、vLLM等:

from graphiti_core.llm_client.openai_generic_client import OpenAIGenericClient

llm_config = LLMConfig(
    api_key="ollama",
    model="deepseek-r1:7b",
    base_url="http://localhost:11434/v1",
)

遥测与隐私

Graphiti收集匿名使用统计数据以改进框架,但严格遵守隐私保护原则:

  • 不收集个人身份信息、API密钥或实际数据
  • 不收集IP地址、主机名或文件路径
  • 所有遥测操作设计为静默失败,不会中断应用

如需禁用遥测,可设置环境变量:

export GRAPHITI_TELEMETRY_ENABLED=false

未来发展方向

Graphiti作为时序感知知识图谱框架,在以下领域有广阔的发展前景:

  1. 多模态支持:扩展支持图像、音频等非文本数据的知识提取
  2. 联邦学习:在保护隐私的前提下,支持跨组织知识共享
  3. 实时流处理:与流处理框架集成,支持实时数据摄入和分析
  4. 自动化本体演化:基于机器学习自动发现和演化本体结构

学习资源与社区支持

要深入了解Graphiti,可以参考以下资源:

  • 官方文档:包含详细的API参考和使用指南
  • 核心模块:了解Graphiti的内部架构
  • 示例目录:查看实际应用案例
  • 测试套件:学习如何测试Graphiti应用

加入Graphiti社区,参与Discord讨论,或通过GitHub Issues贡献代码和反馈。无论是技术问题、功能建议还是使用经验分享,社区都欢迎你的参与。

通过Graphiti,开发者可以为AI智能体构建真正理解时间维度的知识系统,让智能体不仅知道"是什么",还知道"何时是"以及"如何变化"。这种时序感知能力是构建下一代智能应用的关键技术基础。

【免费下载链接】graphiti Build Real-Time Knowledge Graphs for AI Agents 【免费下载链接】graphiti 项目地址: https://gitcode.com/GitHub_Trending/grap/graphiti

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐