在这里插入图片描述

最近在研究 Ontology、本体、知识图谱和 AI Agent 的时候,我发现了一个很值得关注的开源项目:

Graphiti。

GitHub:

https://github.com/getzep/graphiti

官方文档:

https://help.getzep.com/graphiti/

Graphiti 是 Zep 开源的一套 Temporal Knowledge Graph Framework,也就是时序知识图谱框架。它主要面向 AI Agent 场景,用来持续构建和查询会随时间变化的知识关系。

如果只看名字,你可能会觉得它就是一个普通的知识图谱项目。

但我觉得它真正有意思的地方是:

它不是只想告诉 AI“世界是什么样的”,而是还想告诉 AI“这个世界以前是什么样、现在又变成了什么样”。

这对于 Agent Memory 来说,非常重要。


一、为什么普通 RAG 不够用了?

现在我们做 AI 应用,最常见的架构基本就是:

用户问题
   ↓
Embedding
   ↓
Vector Database
   ↓
检索相关文档
   ↓
LLM
   ↓
回答

这就是典型的 RAG。

RAG 很好用。

但它有一个非常明显的问题:

它更擅长“找相关内容”,不太擅长理解动态关系。

比如用户告诉 AI:

2025 年:
我在 A 公司工作。

2026 年:
我离开 A 公司,加入了 B 公司。

如果直接把这两段话丢进向量数据库,那么数据库里面可能同时存在:

王仕宇 → worksFor → A 公司

王仕宇 → worksFor → B 公司

这时候 AI 就可能懵了。

到底在哪家公司?

如果继续往下:

2026 年 3 月加入 B 公司

2026 年 8 月离开 B 公司

事情就更复杂。

这类问题,本质上已经不是“文本相似度检索”的问题。

而是:

实体、关系和时间的问题。

Graphiti 就是在解决这一类问题。


二、Graphiti 到底是什么?

Graphiti 官方把它定义为:

用于构建 Temporal Knowledge Graph,也就是时序知识图谱的开源框架。

它会把不断进入系统的信息组织成:

Entity
Relationship
Fact
Episode
Time

这些结构。

你可以简单理解成:

聊天记录
业务数据
JSON
文档
外部信息
     ↓
   Graphiti
     ↓
实体抽取
关系抽取
事实抽取
时间建模
     ↓
Temporal Knowledge Graph
     ↓
Agent Memory

传统 Knowledge Graph 比较强调:

A → relation → B

而 Graphiti 进一步强调:

A
 ↓
relation
 ↓
B

Valid From: 2025-01-01
Valid To: 2026-03-01

也就是:

这个事实什么时候成立。


三、为什么要有“时间”?

我们举一个非常现实的例子。

假设一个销售 Agent 管理客户关系。

2025 年:

张三
 ↓ worksFor
阿里巴巴

2026 年:

张三
 ↓ worksFor
字节跳动

如果是普通 Knowledge Graph,最终可能同时出现:

张三 → worksFor → 阿里巴巴

张三 → worksFor → 字节跳动

这两个事实都是真实发生过的。

但:

它们不是同时成立的。

Graphiti 会把“时间”纳入事实本身。

于是就可以理解成:

2025

张三
 ↓
阿里巴巴

然后:

2026

张三
 ↓
字节跳动

这就非常适合 AI Agent。

因为 Agent 不只是需要“记住”。

它还需要知道:

什么时候发生过什么。


四、Graphiti 的核心:Context Graph

Graphiti 现在官方经常使用一个词:

Context Graph。

可以理解成:

为 AI Agent 服务的动态知识图谱。

Graphiti 会持续把新的信息添加进去,而不是每次都把整个知识库重新计算一遍。官方特别强调,它支持实时增量更新,新数据可以持续加入已有的 Context Graph。

因此:

旧方式

10000 条数据
 ↓
重新构建
 ↓
10001 条数据

Graphiti 更希望做到:

10000 条数据
 ↓
新增 1 条 Episode
 ↓
增量更新 Graph

这件事情对于长期运行的 Agent 非常重要。

因为一个 Agent 的 Memory 不可能永远不变。


五、Episode 是什么?

Graphiti 里面有一个非常重要的概念:

Episode。

可以简单理解成:

一次进入 Agent 世界的信息事件。

比如:

用户:

我最近开始学习 Solana。

这是一个 Episode。

再比如:

CRM:

客户 A 的合同状态变成已签约。

也是一个 Episode。

甚至:

{
  "customer": "A",
  "status": "paid",
  "amount": 10000
}

也可以成为 Episode。

Graphiti 会进一步从 Episode 中抽取:

Entity Node
Entity Edge
Fact

Graphiti / Zep 的图数据结构主要包含实体节点、实体关系边以及 Episode 节点;其中关系边可以携带语义事实。

例如:

Episode:

张三加入了 OpenAI。

最终可能变成:

Entity

张三
OpenAI

以及:

张三
 ↓ worksFor
OpenAI

六、Graphiti 最有意思的能力:Fact Invalidation

这是我觉得 Graphiti 非常有价值的一个设计。

假设:

1 月:

张三住在北京。

Graph:

张三 → livesIn → 北京

到了 8 月:

张三:

我搬到上海了。

普通系统可能直接再加:

张三 → livesIn → 上海

最终:

北京
 ↖
  张三
 ↙
上海

不知道哪个是真的。

Graphiti 则会处理事实变化。

类似:

张三 → livesIn → 北京

Valid Until:
2026-08

然后:

张三 → livesIn → 上海

Valid From:
2026-08

也就是说:

旧事实没有被简单删除。

而是:

它曾经正确,但现在已经失效。

Zep 的相关文档也明确描述了 Fact Invalidation:当新的信息使旧事实失效时,系统会记录该事实何时失效。

这个设计非常适合:

CRM
ERP
用户画像
企业组织架构
项目管理
金融信息
个人 AI 助手
Agent Memory

因为这些东西全部都会变化。


七、Bi-Temporal:Graphiti 不只记录一个时间

Graphiti 还有一个更专业的概念:

Bi-Temporal Data Model。

也就是:

双时态模型。

它区分两种时间:

事件实际发生时间

系统知道这件事的时间

举个例子。

今天是:

8 月 21 日

用户告诉 Agent:

我 8 月 1 日就离职了。

那么:

事件发生时间:
8 月 1 日

系统知道时间:
8 月 21 日

这是两件完全不同的事情。

这就是 Bi-Temporal。

对于历史查询非常重要。

比如你问:

8 月 10 日的时候,
系统认为张三在哪家公司?

和:

张三 8 月 10 日实际上在哪家公司?

答案可能完全不同。

Graphiti 的设计中明确包含这类双时态建模,用于区分事实有效时间和系统记录时间。


八、Graphiti 不只是图查询

如果只是 Knowledge Graph:

很多人第一反应是:

Neo4j
Cypher
Graph Traversal

但 Graphiti 并不是只做 Graph Search。

它同时支持:

Semantic Search

Keyword Search

Graph Search

Temporal Search

官方的搜索文档里提到,它的 Hybrid Search 会结合语义相似度和 BM25,然后使用 Reciprocal Rank Fusion 做结果融合;还可以基于某个实体节点的图距离重新排序。

所以查询流程更像:

             Query
               │
      ┌────────┼────────┐
      ↓        ↓        ↓
  Semantic   BM25     Graph
      │        │        │
      └────────┼────────┘
               ↓
            Rerank
               ↓
             Facts

这比单纯:

Vector Search

丰富很多。


九、为什么 Graphiti 特别适合 Agent Memory?

现在做 Agent Memory,最简单的方法就是:

聊天记录
 ↓
数据库

稍微高级一点:

聊天记录
 ↓
Embedding
 ↓
Vector DB

再高级一点:

聊天记录
 ↓
LLM Summary
 ↓
Memory

但这些方案都有问题。

比如:

用户喜欢苹果电脑

过了一段时间:

用户开始使用 Windows。

又过一段时间:

用户现在主要使用 Linux。

Agent Memory 不能简单变成:

喜欢 Mac
喜欢 Windows
喜欢 Linux

真正有意义的 Memory 应该是:

2024
Mac

 ↓

2025
Windows

 ↓

2026
Linux

这正是 Temporal Knowledge Graph 擅长处理的东西。

因此 Graphiti 的一个核心应用场景就是:

长期 Agent Memory。


十、Graphiti 和 Ontology 有什么关系?

严格来说:

Graphiti 不是 Protégé 那种传统 OWL Ontology 工具。

但它非常值得放到 Ontology 体系里讨论。

因为 Graphiti 支持开发者定义自己的 Entity 类型。

比如一个电商系统:

User

Product

Order

Supplier

Payment

并定义它们可能存在的业务结构。

这实际上已经在做:

Domain Ontology。

例如:

User
 │
 ├─ creates → Order
 │
 └─ owns → Account

Order
 │
 ├─ contains → Product
 ├─ paidBy → Payment
 └─ suppliedBy → Supplier

传统 Ontology 更强调:

世界有什么东西?

Graphiti 更进一步:

这些东西之间现在是什么关系?

这些关系以前是什么?

这些关系什么时候发生变化?

所以我更愿意把它理解成:

面向 AI Agent 的动态 Ontology / Context Graph。


十一、自定义 Entity:让 Agent 理解你的业务

Graphiti 支持自定义实体类型,这一点特别有意思。

官方文档将 Custom Entities 作为核心能力之一,可以通过开发者定义的实体类型来约束和改善知识表示。

比如做一个 CRM Agent。

你可以定义:

Customer

Company

Salesperson

Contract

Product

然后让 Graphiti 从:

邮件

CRM

聊天记录

合同

会议纪要

里面不断抽取这些实体。

最终:

Salesperson
     │
     ↓ manages
 Customer
     │
     ↓ worksFor
 Company
     │
     ↓ signed
 Contract
     │
     ↓ contains
 Product

这就已经不是简单的 RAG。

而是在逐渐形成一个:

业务世界模型。


十二、安装 Graphiti

Graphiti 主要使用 Python。

官方当前 Quick Start 的基础要求包括:

Python 3.10+

Neo4j 5.26+
或 FalkorDB 1.1.2+

LLM / Embedding Provider

默认可以使用 OpenAI,同时文档也列出了 Azure OpenAI、Gemini、Anthropic、Groq,以及通过 Ollama 使用本地模型等选择。

安装非常简单:

pip install graphiti-core

如果使用 uv:

uv add graphiti-core

十三、为什么需要 Neo4j?

因为 Graphiti 最终构建的是:

Graph

而不是纯文本。

假设:

王仕宇
 ↓ develops
 Project A

然后:

Project A
 ↓ uses
 PostgreSQL

再:

PostgreSQL
 ↓ belongsTo
 Database

这类关系非常适合使用图数据库存储。

于是 Agent 可以进行:

王仕宇
 ↓
开发了哪些项目?
 ↓
这些项目使用哪些数据库?

甚至进一步:

使用 PostgreSQL 的项目有哪些?

这就属于典型 Graph Traversal。


十四、一个最简单的 Graphiti 思路

一个应用可以这样设计:

                User
                  │
                  ↓
             AI Agent
                  │
          ┌───────┴───────┐
          ↓               ↓
        LLM            Graphiti
                          │
                          ↓
                    Knowledge Graph
                          │
                    ┌─────┴─────┐
                    ↓           ↓
                 Neo4j       Embedding

用户说:

我最近正在开发一个支付平台。

Graphiti 记录:

User
 ↓ develops
Payment Platform

后来:

支付平台现在使用 PostgreSQL。

Graph:

Payment Platform
 ↓ uses
PostgreSQL

再后来:

数据库换成 MySQL 了。

于是:

PostgreSQL
Valid Until: XXX

MySQL
Valid From: XXX

Agent 下一次再回答时,就不是简单地从聊天记录里“猜”。

而是在读取:

当前有效的事实。


十五、Graphiti + MCP 会非常有意思

Graphiti 官方现在也提供了 MCP Server。

这意味着:

Claude Code
Cursor
Codex
AI Agent

理论上都可以通过 MCP 接入知识图谱能力。Graphiti 官方文档也专门提供了 Graphiti MCP Server 的入口,用于让 Claude Desktop、Cursor 等 AI 工具连接到 Graphiti。

整个架构可以变成:

Codex / Claude Code
         │
         ↓
        MCP
         │
         ↓
      Graphiti
         │
         ↓
Temporal Knowledge Graph

然后 Coding Agent 可以真正拥有:

项目历史

架构变化

技术决策

Bug 记录

开发习惯

业务知识

而不只是读取当前目录里的几个 Markdown 文件。

这个方向我觉得非常值得研究。


十六、Graphiti vs 普通 Vector RAG

可以简单对比一下。

能力 Vector RAG Graphiti
文本语义检索 支持
Keyword Search 部分 支持
实体关系
Graph Traversal 不擅长 支持
时间变化 核心能力
历史状态 很难 支持
Fact Invalidation 通常没有 支持
Agent Memory 可以 非常适合
动态业务数据 一般 很适合
Context Graph 没有 核心概念

所以它不是完全取代 RAG。

更准确地说:

Graphiti
=
Graph
+
Semantic Retrieval
+
Temporal Memory
+
Agent Context

十七、Graphiti 和 Zep 是什么关系?

很多人看到 Graphiti 之后,会同时看到:

Zep

两者不要混淆。

可以简单理解:

Graphiti

开源框架

而:

Zep

商业化、托管化、企业级 Agent Memory 平台

官方现在的定位也非常清楚:

Graphiti 负责构建 Temporal Context Graph;Zep 则把这套能力做成可以大规模运行的 Agent Memory 系统。

因此如果你只是研究原理、自己部署:

Graphiti 更值得看。

如果你希望快速做生产系统:

Zep 更省事。


十八、我觉得它真正有价值的地方

我觉得 Graphiti 最值得关注的,并不是:

又多了一个知识图谱框架

而是它体现了一个越来越明显的趋势:

Agent Memory 正在从“保存聊天记录”,走向“维护一个不断变化的世界模型”。

第一代:

Conversation History

第二代:

Vector Memory

第三代:

Structured Memory

再往后:

Temporal Knowledge Graph

最终可能变成:

Context Graph

也就是说:

Agent 不再只是“记住几句话”。

而是拥有:

Entity

Relationship

Fact

Time

History

State

这样一个持续变化的世界。


十九、Ontology + Graphiti + Agent

如果进一步往 Ontology 方向走,我觉得一个非常值得研究的架构是:

                    Ontology
                       │
           定义领域概念、关系和规则
                       │
                       ↓
                  Graphiti
                       │
                动态事实与时间
                       │
                       ↓
             Temporal Knowledge Graph
                       │
          ┌────────────┼────────────┐
          ↓            ↓            ↓
        RAG          Memory      Reasoning
          │            │            │
          └────────────┼────────────┘
                       ↓
                    Agent

Ontology 定义:

世界应该是什么样。

Graphiti 维护:

世界现在是什么样。

LLM 负责:

根据这个世界做推理。

Agent 负责:

在这个世界里采取行动。

我觉得这个组合非常有想象空间。


二十、一个更现实的应用:企业 AI Agent

假设未来做一个企业 Agent。

企业里面有:

员工

客户

订单

产品

项目

合同

付款

供应商

文档

系统

传统 RAG:

全部切 Chunk
 ↓
Embedding
 ↓
Vector DB

Ontology + Graphiti:

                    企业 Ontology
                         │
                         ↓
        ┌────────────────┼────────────────┐
        ↓                ↓                ↓
      CRM              ERP            Documents
        │                │                │
        └────────────────┼────────────────┘
                         ↓
                      Graphiti
                         ↓
               Temporal Knowledge Graph
                         ↓
                     AI Agent

于是 Agent 不仅知道:

合同里写了什么。

还知道:

合同属于哪个客户

客户属于哪个公司

哪个公司由哪个销售负责

这个合同什么时候签署

合同现在是否有效

付款状态什么时候改变

当前负责人是谁

这才真正开始接近:

Enterprise AI Agent。


总结

如果只用一句话介绍 Graphiti:

Graphiti 是一个面向 AI Agent 的开源时序知识图谱框架,它试图让 AI 不只是记住事实,还能够理解事实之间的关系以及这些事实如何随时间变化。

我认为值得重点关注的几个关键词是:

Temporal Knowledge Graph

Context Graph

Agent Memory

GraphRAG

Fact Invalidation

Bi-Temporal Model

Ontology

MCP

AI Agent

传统 RAG 解决的是:

帮 AI 找到相关信息。

知识图谱解决的是:

帮 AI 理解信息之间的关系。

Temporal Knowledge Graph 更进一步解决:

帮 AI 理解这些关系如何随时间发生变化。

而 Ontology 则负责:

告诉 AI,这个世界从结构上应该怎么被理解。

所以如果把这些技术串起来:

Ontology
 ↓
Knowledge Graph
 ↓
Temporal Knowledge Graph
 ↓
Agent Memory
 ↓
Context Graph
 ↓
AI Agent

我觉得这可能会是未来几年非常值得关注的一条技术路线。


现在是最好的时代。中国有全世界最高性价比的制造业,有发达的网络和全球物流。

只要你愿意,你几乎可以买到这个世界上任何地方生产的、任何你想要的商品。你可以用很低的成本,撬动全球的资源为你服务。

不过,真正稀缺的,从来不是商品,而是注意力、判断力,以及把事情做成的能力。

所以,这是最好的时代,也是最坏的时代。

我是王仕宇,关注 AI、Web3 与开源,持续探索如何把技术做成产品,把产品转化为真实价值。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐