微信扫码
添加专属顾问
我要投稿
Graphiti框架,为AI代理打造动态知识图谱,开启交互式AI应用新篇章。核心内容:1. Graphiti框架的核心功能与应用场景2. Graphiti与传统RAG方法的区别及优势3. Graphiti在Zep AI代理记忆层中的应用与开源意义
⭐小贴士
查看Graphiti的新MCP服务器[1]!为Claude、Cursor和其他MCP客户端提供强大的基于知识图谱的记忆功能。
Graphiti是一个构建和查询时间感知知识图谱的框架,专门为在动态环境中运行的AI代理量身定制。与传统的检索增强生成(RAG)方法不同,Graphiti不断将用户交互、结构化和非结构化的企业数据以及外部信息整合到一个连贯的、可查询的图谱中。该框架支持增量数据更新、高效检索和精确的历史查询,而无需重新计算整个图谱,使其非常适合开发交互式、上下文感知的AI应用。
•集成并维护动态的用户交互和业务数据。•促进基于状态的推理和任务自动化。•使用语义、关键词和基于图谱的搜索方法查询复杂且不断发展的数据。
知识图谱是一个由互联事实构成的网络,例如“Kendra喜欢Adidas鞋子”。每个事实都是一个由两个实体或节点(“Kendra”,“Adidas鞋子”)以及它们的关系或边(“喜欢”)组成的“三元组”。知识图谱在信息检索中已经得到了广泛的探索。Graphiti的独特之处在于,它能够在处理变化关系并保持历史上下文的同时,自动构建一个知识图谱。
Graphiti为Zep的AI代理记忆层提供核心支持。
通过使用Graphiti,我们证明了Zep是AI代理记忆领域的最先进技术[2]。
阅读我们的论文:Zep: 一种用于代理记忆的时间知识图谱架构[3]。
我们很高兴开源Graphiti,并相信它的潜力远超AI记忆应用。
Agent Memory" class="rich_pages wxw-img" data-imgfileid="100000766" data-type="png" style="height: auto !important;" data-ratio="0.42962962962962964" data-w="1080" src="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=110728&url=aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9LNTlSWlAyYkhpYUR1VjFFYkx6UFloOWdVeTEzNmFVZEZzSENnMHhQd1BuTHBEalhsTDB5dllaMW01TGMwYW5HdlZoWm5zSUtVTlQ1UXlGQ2FzaWJlUEh3LzY0MD93eF9mbXQ9cG5nJmFtcA==;from=appmsg">
传统的RAG方法通常依赖于批处理和静态数据摘要,这使得它们在处理频繁变化的数据时效率较低。Graphiti通过提供以下功能来解决这些挑战:
•实时增量更新:无需批量重新计算,能够即时集成新的数据片段。•双时间模型:明确跟踪事件发生和摄取的时间,允许进行精确的时间点查询。•高效的混合检索:结合语义嵌入、关键词检索(BM25)和图遍历,实现低延迟查询,而无需依赖LLM摘要。•自定义实体定义:通过简单的Pydantic模型支持灵活的本体创建和开发者定义的实体。•可扩展性:通过并行处理高效管理大数据集,适用于企业环境。
主要用途 | ||
数据处理 | ||
知识结构 | ||
检索方法 | ||
适应性 | ||
时间处理 | ||
矛盾处理 | ||
查询延迟 | ||
自定义实体类型 | ||
可扩展性 |
Graphiti专门设计用于解决动态和频繁更新的数据集所面临的挑战,使其特别适用于需要实时交互和精确历史查询的应用。
•Python 3.10 或更高版本•Neo4j 5.26 或更高版本(作为嵌入存储后端)•OpenAI API 密钥(用于LLM推理和嵌入)
Graphiti 最适用于支持结构化输出的LLM服务(如 OpenAI 和 Gemini)。使用其他服务可能会导致输出模式错误和数据摄取失败。尤其是在使用较小模型时,这个问题更加明显。
•Google Gemini、Anthropic 或 Groq API 密钥(用于其他LLM提供商)
安装 Neo4j 的最简单方法是通过 Neo4j Desktop[4]。它提供了一个用户友好的界面来管理 Neo4j 实例和数据库。
pip install graphiti-core
或者
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 示例[5]。该示例展示了:
1.连接到 Neo4j 数据库2.初始化 Graphiti 索引和约束3.向图谱中添加事件(包括文本和结构化 JSON)4.使用混合搜索查找关系(边)5.使用图距离重新排序搜索结果6.使用预定义搜索配方查找节点
该示例有完整文档,清晰解释每项功能,并包含详细的 README,提供了设置说明和后续步骤。
mcp_server
目录包含 Graphiti 的模型上下文协议(MCP)服务器实现。该服务器允许 AI 助手通过 MCP 协议与 Graphiti 的知识图谱功能进行交互。
MCP 服务器的关键功能包括:
•事件管理(添加、检索、删除)•实体管理和关系处理•语义和混合搜索功能•用于组织相关数据的组管理•图谱维护操作
MCP 服务器可以使用 Docker 和 Neo4j 部署,使得将 Graphiti 集成到您的 AI 助手工作流中变得更加简便。
有关详细的设置说明和使用示例,请参见 MCP 服务器的 README 文件[6]。
server
目录包含与 Graphiti API 交互的 API 服务。该服务是使用 FastAPI 构建的。
更多信息,请参见服务器的 README 文件。
除了 Neo4j 和兼容 OpenAI 的凭证外,Graphiti 还具有一些可选的环境变量。如果您使用的是我们支持的模型,如 Anthropic 或 Voyage 模型,必须设置必要的环境变量。
•USE_PARALLEL_RUNTIME 是一个可选的布尔变量,如果您希望为我们的多个搜索查询启用 Neo4j 的并行运行时功能,可以将其设置为 true
。请注意,该功能不支持 Neo4j 社区版或较小的 AuraDB 实例,因此默认情况下该功能是关闭的。
Graphiti 支持 Azure OpenAI 进行 LLM 推理和嵌入。要使用 Azure OpenAI,您需要使用您的 Azure OpenAI 凭证配置 LLM 客户端和嵌入器。
from openai importAsyncAzureOpenAI
from graphiti_core importGraphiti
from graphiti_core.llm_client importOpenAIClient
from graphiti_core.embedder.openai importOpenAIEmbedder,OpenAIEmbedderConfig
from graphiti_core.cross_encoder.openai_reranker_client importOpenAIRerankerClient
# 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
)
)
# 现在您可以使用 Azure OpenAI 与 Graphiti 进行集成
确保用您实际的 Azure OpenAI 凭证替换占位符值,并指定在 Azure OpenAI 服务中部署的正确嵌入模型名称。
Graphiti 支持 Google 的 Gemini 模型进行 LLM 推理和嵌入。要使用 Gemini,您需要使用您的 Google API 密钥配置 LLM 客户端和嵌入器。
poetry add "graphiti-core[google-genai]"
# or
uv add "graphiti-core[google-genai]"
from graphiti_core importGraphiti
from graphiti_core.llm_client.gemini_client importGeminiClient,LLMConfig
from graphiti_core.embedder.gemini importGeminiEmbedder,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"
)
)
)
# 现在您可以使用 Google Gemini 与 Graphiti 进行集成
•指南和 API 文档[7]•快速开始[8]•使用 LangChain 的 LangGraph 和 Graphiti 构建代理[9]
我们鼓励并感谢所有形式的贡献,无论是代码、文档、解决 GitHub 问题,还是在 Graphiti Discord 频道中回答问题。有关代码贡献的详细指南,请参见 CONTRIBUTING[10]。
本文由笔者翻译整理自:https://github.com/getzep/graphiti?tab=readme-ov-file,如对您有帮助,请点赞、转发,谢谢!
[1]
Graphiti的新MCP服务器:https://github.com/getzep/graphiti/blob/main/mcp_server/README.md[2]
AI代理记忆领域的最先进技术:https://blog.getzep.com/state-of-the-art-agent-memory/[3]
Zep: 一种用于代理记忆的时间知识图谱架构:https://arxiv.org/abs/2501.13956[4]
Neo4j Desktop:https://neo4j.com/download/[5]
Quickstart 示例:https://github.com/getzep/graphiti/blob/main/examples/quickstart/README.md[6]
README 文件:https://github.com/getzep/graphiti/blob/main/mcp_server/README.md[7]
指南和 API 文档:https://help.getzep.com/graphiti/graphiti/overview[8]
快速开始:https://help.getzep.com/graphiti/graphiti/quick-start[9]
使用 LangChain 的 LangGraph 和 Graphiti 构建代理:https://help.getzep.com/graphiti/graphiti/lang-graph-agent[10]
CONTRIBUTING: https://github.com/getzep/graphiti/blob/main/CONTRIBUTING.md
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-07
又一开源项目:用 LLM 将非结构化文本转为知识图谱
2025-05-06
LLM 写不出靠谱 SQL?试试加个知识图谱,准确率提升 60%!
2025-05-06
千万级向量数据库实战对比:Milvus,Qdrant,Chroma,Weaviate
2025-04-30
GraphRAG:基于知识图谱+大模型技术构建的AI知识库系统
2025-04-28
DeepSeek本地部署(局域网+异地访问)数据库(保姆教程)
2025-04-28
milvus 三种部署方式说明
2025-04-28
使用CAMEL实现Graph RAG过程记录
2025-04-28
Graphiti-构建适用于 AI 智能体的实时知识图谱
2024-07-17
2025-01-02
2024-08-13
2024-08-27
2025-01-03
2024-07-11
2024-06-24
2024-07-13
2024-07-12
2024-06-10
2025-04-20
2025-04-15
2025-04-09
2025-03-29
2025-02-13
2025-01-14
2025-01-10
2025-01-06