> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://help.getzep.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://help.getzep.com/_mcp/server.

# Overview

> Graphiti builds temporal knowledge graphs — Context Graphs — for AI agents, fusing semantic, full-text, and graph search over evolving entities, facts, and relationships.

#### What is a Context Graph?

Graphiti helps you create and query Context Graphs that evolve over time. A
Context Graph is a temporal knowledge graph — a graph of entities, relationships, and facts, such
as *“Kendra loves Adidas shoes.”* Each fact is a *“triplet”* represented by
two entities, or nodes (*”Kendra”, “Adidas shoes”*), and their relationship,
or edge (*”loves”*).

\


Knowledge Graphs have been explored extensively for information retrieval.
What makes Graphiti unique is its ability to autonomously build a Context
Graph while handling changing relationships and maintaining historical
context.

![graphiti intro slides](/_fern-files/zep.docs.buildwithfern.com/204428cea99ae5c2c2055235e6cab2c0b5bc5aad3d7fdfbb1e3792cf4cd9e8fb/images/graphiti-graph-intro.gif)

Graphiti builds dynamic, temporally-aware knowledge graphs — Context Graphs — that represent complex, evolving relationships between entities over time. It ingests both unstructured and structured data, and the resulting graph may be queried using a fusion of time, full-text, semantic, and graph algorithm approaches.

With Graphiti, you can build LLM applications such as:

* Assistants that learn from user interactions, fusing personal knowledge with dynamic data from business systems like CRMs and billing platforms.
* Agents that autonomously execute complex tasks, reasoning with state changes from multiple dynamic sources.

Graphiti supports a wide range of applications in sales, customer service, health, finance, and more, enabling long-term recall and state-based reasoning for both assistants and agents.

## Graphiti and Zep

Graphiti is the open-source temporal knowledge graph framework. Use it to build and query a single Context Graph per subject locally — entity and edge extraction, the bi-temporal model, fact invalidation, and hybrid retrieval.

[Zep](https://www.getzep.com) is the unified context layer for enterprise data. Zep uses Graphiti to derive temporal graph artifacts. Zep runs a managed Context Lake on Konig, its graph database service. Use Zep when you need managed ingestion, retrieval, governance, and deployment options such as bring your own cloud (BYOC).

## Why Graphiti?

We were intrigued by Microsoft’s GraphRAG, which expanded on RAG text chunking by using a graph to better model a document corpus and making this representation available via semantic and graph search techniques. However, GraphRAG did not address our core problem: It's primarily designed for static documents and doesn't inherently handle temporal aspects of data.

Graphiti is designed to handle changing information and hybrid semantic and
graph search:

* **Temporal Awareness:** Tracks changes in facts and relationships over time, enabling point-in-time queries. Graph edges include temporal metadata to record relationship lifecycles.
* **Episodic Processing:** Ingests data as discrete episodes, maintaining data provenance and allowing incremental entity and relationship extraction.
* **Custom Entity Types:** Supports defining domain-specific entity types, enabling more precise knowledge representation for specialized applications.
* **Hybrid Search:** Combines vector similarity, BM25 full-text, and graph traversal into a single ranked answer, with no LLM-in-the-loop reranking. Results can be reranked by distance from a central node e.g. "Kendra".
* **Pluggable Backends:** Runs on Neo4j, FalkorDB, or Amazon Neptune, with LLM and embedding providers including OpenAI, Azure OpenAI, Gemini, and Anthropic.
* **Parallel bulk processing:** Can parallelize LLM calls during bulk processing while preserving the chronology of events.
* **Supports Varied Sources:** Can ingest both unstructured text and structured JSON data.

| Aspect                     | GraphRAG                              | Graphiti                                         |
| -------------------------- | ------------------------------------- | ------------------------------------------------ |
| **Primary Use**            | Static document summarization         | Dynamic data management                          |
| **Data Handling**          | Batch-oriented processing             | Continuous, incremental updates                  |
| **Knowledge Structure**    | Entity clusters & community summaries | Episodic data, semantic entities, communities    |
| **Retrieval Method**       | Sequential LLM summarization          | Hybrid semantic, keyword, and graph-based search |
| **Adaptability**           | Low                                   | High                                             |
| **Temporal Handling**      | Basic timestamp tracking              | Explicit bi-temporal tracking                    |
| **Contradiction Handling** | LLM-driven summarization judgments    | Temporal edge invalidation                       |
| **Custom Entity Types**    | No                                    | Yes, customizable                                |

Graphiti is designed for dynamic and frequently updated datasets. Its
bi-temporal model supports queries about current and historical relationships.

![graphiti demo slides](/_fern-files/zep.docs.buildwithfern.com/7883b3783f6a854a04034c5a65114b3f945cfcf860cc3a0fa581c01272c3e973/images/graphiti-intro-slides-stock-2.gif)