Knowledge graphs with expiration dates for every fact
Graphiti continuously ingests structured and unstructured data into temporal context graphs so agents can query what is true now—or was true at any specific moment—without rebuilding the graph from scratch.

What it does
Graphiti constructs and queries context graphs—temporal knowledge graphs where every entity, relationship, and fact carries a validity window. When new data arrives, old facts are invalidated rather than erased, preserving a queryable history of how truth evolved. It targets AI applications where data changes constantly and agents need to know not just what is true, but what was true at 2:00 PM last Thursday.
The interesting bit
The framework autonomously assembles this structure from raw unstructured or structured episodes, maintaining full provenance back to source data. You can enforce a rigid ontology via Pydantic models or let the schema emerge organically from the data—a flexibility that most static GraphRAG implementations do not offer.
Key highlights
- Bi-temporal edge tracking: every fact records when it became true and when it was superseded.
- Hybrid retrieval combines semantic embeddings, BM25 keyword search, and graph traversal to keep query latency sub-second.
- Incremental ingestion updates the graph immediately as episodes arrive, avoiding batch recomputation.
- Pluggable graph backends include Neo4j, FalkorDB, Kuzu, and Amazon Neptune.
- An optional MCP server exposes temporal graph memory to Claude, Cursor, and other MCP-compatible clients.
Caveats
- The framework defaults to OpenAI and works best with LLMs that support strict Structured Output; the README warns that smaller or alternative models can fail schema validation during ingestion.
- This is strictly self-hosted infrastructure: you supply the graph database, user management, and observability. There is no managed dashboard.
- Ingestion concurrency is intentionally throttled by default to avoid LLM rate limits, so initial throughput may feel conservative until tuned.
Verdict
A strong fit for teams building long-running agents or event-driven analytics over messy, evolving data. If you want a turnkey, managed memory platform with SLAs and a web dashboard, the commercial Zep product is the intended alternative.
Frequently asked
- What is getzep/graphiti?
- Graphiti continuously ingests structured and unstructured data into temporal context graphs so agents can query what is true now—or was true at any specific moment—without rebuilding the graph from scratch.
- Is graphiti open source?
- Yes — getzep/graphiti is open source, released under the Apache-2.0 license.
- What language is graphiti written in?
- getzep/graphiti is primarily written in Python.
- How popular is graphiti?
- getzep/graphiti has 29.1k stars on GitHub and is currently holding steady.
- Where can I find graphiti?
- getzep/graphiti is on GitHub at https://github.com/getzep/graphiti.