# Graphiti: 为 AI 代理构建实时知识图谱的开源框架解析
Graphiti: 构建 AI 代理实时知识图谱的开源框架
在当今 AI 技术飞速发展的时代,知识图谱作为 AI 系统的"大脑记忆"变得越来越重要。今天为大家介绍一个非常有潜力的开源项目 —— Graphiti,这是一个专为 AI 代理构建实时知识图谱的强大框架。
Graphiti 是什么?
Graphiti 是一个用于构建和查询具有时间感知能力的知识图谱的框架,专为在动态环境中运行的 AI 代理定制。不同于传统的检索增强生成(RAG)方法,Graphiti 能够持续整合用户交互、结构化和非结构化企业数据以及外部信息,形成一个连贯、可查询的图谱。该框架支持增量数据更新、高效检索和精确的历史查询,无需重新计算整个图谱,使其特别适合开发交互式、上下文感知的 AI 应用程序。
Graphiti 的核心优势
与传统的 RAG 方法和 GraphRAG 相比,Graphiti 具有以下显著特点:
- 实时增量更新:无需批处理即可立即集成新数据
- 双时态数据模型:明确跟踪事件发生和摄取时间,实现精确的时间点查询
- 高效混合检索:结合语义嵌入、关键词(BM25)和图遍历,实现低延迟查询
- 自定义实体定义:通过简单的 Pydantic 模型支持开发人员自定义实体
- 可扩展性:通过并行处理有效管理大型数据集,适合企业环境
Graphiti vs GraphRAG 对比
方面 | GraphRAG | Graphiti |
---|---|---|
主要用途 | 静态文档摘要 | 动态数据管理 |
数据处理 | 批处理导向 | 连续增量更新 |
知识结构 | 实体集群和社区摘要 | 情景数据、语义实体、社区 |
检索方法 | 顺序 LLM 摘要 | 混合语义、关键词和基于图的搜索 |
适应性 | 低 | 高 |
时间处理 | 基本时间戳跟踪 | 显式双时态跟踪 |
矛盾处理 | LLM 驱动的摘要判断 | 时间边缘失效 |
查询延迟 | 秒到几十秒 | 通常亚秒延迟 |
自定义实体类型 | 否 | 是,可自定义 |
可扩展性 | 中等 | 高,针对大型数据集优化 |
安装指南
环境要求
- Python 3.10 或更高版本
- Neo4j 5.26 或更高版本(作为嵌入存储后端)
- OpenAI API 密钥(用于 LLM 推理和嵌入)
重要提示:Graphiti 最适合支持结构化输出的 LLM 服务(如 OpenAI 和 Gemini)。使用其他服务可能导致输出架构不正确和摄取失败,这在使用较小模型时尤为问题。
可选组件
- Google Gemini、Anthropic 或 Groq API 密钥(作为替代 LLM 提供商)
提示:安装 Neo4j 的最简单方法是通过 Neo4j Desktop,它提供了一个用户友好的界面来管理 Neo4j 实例和数据库。
安装命令
pip install graphiti-core
或使用 Poetry:
poetry add graphiti-core
您还可以安装可选的 LLM 提供商作为额外功能:
# 安装 Anthropic 支持
pip install graphiti-core[anthropic]
# 安装 Groq 支持
pip install graphiti-core[groq]
# 安装 Google Gemini 支持
pip install graphiti-core[google-genai]
# 安装多个提供商
pip install graphiti-core[anthropic,groq,google-genai]
快速开始
重要:Graphiti 使用 OpenAI 进行 LLM 推理和嵌入。请确保在您的环境中设置了
OPENAI_API_KEY
。也支持 Anthropic 和 Groq LLM 推理。其他 LLM 提供商可能通过 OpenAI 兼容 API 获得支持。
完整的入门示例位于 examples 目录的 Quickstart Example 中,该示例演示了:
- 连接到 Neo4j 数据库
- 初始化 Graphiti 索引和约束
- 将情节添加到图谱(文本和结构化 JSON)
- 使用混合搜索查找关系(边)
- 使用图距离重新排序搜索结果
- 使用预定义的搜索配方搜索节点
多种集成方式
1. 与 Azure OpenAI 一起使用
from openai import AsyncAzureOpenAI
from graphiti_core import Graphiti
from graphiti_core.llm_client import OpenAIClient
from graphiti_core.embedder.openai import OpenAIEmbedder, OpenAIEmbedderConfig
from graphiti_core.cross_encoder.openai_reranker_client import OpenAIRerankerClient
# Azure OpenAI 配置
api_key = "<your-api-key>"
api_version = "<your-api-version>"
azure_endpoint = "<your-azure-endpoint>"
# 创建 Azure OpenAI 客户端用于 LLM
azure_openai_client = AsyncAzureOpenAI(
api_key=api_key,
api_version=api_version,
azure_endpoint=azure_endpoint
)
# 使用 Azure OpenAI 客户端初始化 Graphiti
graphiti = Graphiti(
"bolt://localhost:7687",
"neo4j",
"password",
llm_client=OpenAIClient(
client=azure_openai_client
),
embedder=OpenAIEmbedder(
config=OpenAIEmbedderConfig(
embedding_model="text-embedding-3-small" # 使用您部署在 Azure 的嵌入模型名称
),
client=azure_openai_client
),
# 可选:使用 Azure OpenAI 配置 OpenAI 交叉编码器
cross_encoder=OpenAIRerankerClient(
client=azure_openai_client
)
)
2. 与 Google Gemini 一起使用
from graphiti_core import Graphiti
from graphiti_core.llm_client.gemini_client import GeminiClient, LLMConfig
from graphiti_core.embedder.gemini import GeminiEmbedder, GeminiEmbedderConfig
# Google API 密钥配置
api_key = "<your-google-api-key>"
# 使用 Gemini 客户端初始化 Graphiti
graphiti = Graphiti(
"bolt://localhost:7687",
"neo4j",
"password",
llm_client=GeminiClient(
config=LLMConfig(
api_key=api_key,
model="gemini-2.0-flash"
)
),
embedder=GeminiEmbedder(
config=GeminiEmbedderConfig(
api_key=api_key,
embedding_model="embedding-001"
)
)
)
MCP 服务器和 REST API
Graphiti 提供了两种服务器实现,方便与各种系统集成:
-
MCP 服务器:Model Context Protocol (MCP) 服务器实现,允许 AI 助手通过 MCP 协议与 Graphiti 的知识图谱功能交互。支持情节管理、实体管理、关系处理、语义搜索等功能。可通过 Docker 与 Neo4j 一起部署。
-
REST 服务:基于 FastAPI 构建的 API 服务,提供与 Graphiti API 交互的 RESTful 接口。
开发状态与路线图
Graphiti 正在积极开发中。团队致力于维持 API 稳定性,同时开发:
- 支持自定义图谱架构
- 增强检索功能,提供更强大和可配置的选项
- Graphiti MCP 服务器的改进
- 扩展测试覆盖范围以确保可靠性并捕获边缘情况
总结
Graphiti 作为一个专为 AI 代理设计的知识图谱框架,在处理动态数据和实时情境方面展现出了巨大的潜力。与传统 RAG 和 GraphRAG 相比,它的增量更新、时间感知能力和高效检索方法使它成为构建下一代 AI 应用的理想选择。
如果您正在开发需要持续更新知识库、处理复杂关系数据或需要精确历史查询的 AI 代理,Graphiti 无疑是一个值得考虑的强大工具。
相关链接
- 项目地址:GitHub - getzep/graphiti
- 文档:Graphiti 官方文档
- 支持:加入 Zep Discord 服务器 的 #Graphiti 频道
本文由 AI 技术专栏撰稿人整理,基于 Graphiti 官方资料编写。如有任何问题或建议,欢迎在评论区留言讨论。
- 原文作者:iamdev
- 原文链接:https://blog.iamdev.cn/post/2025/Graphiti_-%E4%B8%BA-AI-%E4%BB%A3%E7%90%86%E6%9E%84%E5%BB%BA%E5%AE%9E%E6%97%B6%E7%9F%A5%E8%AF%86%E5%9B%BE%E8%B0%B1%E7%9A%84%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6%E8%A7%A3%E6%9E%90/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止转载 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。