Your AI agent's memory should know what time it is
Graphiti builds knowledge graphs that track when facts become true, when they expire, and what replaced them — so agents stop hallucinating outdated context.

What it does Graphiti ingests unstructured and structured data, then autonomously builds a temporal knowledge graph where every fact carries a validity window. When “Kendra loves Adidas shoes (as of March 2026)” gets superseded, the old edge is invalidated — not deleted — so you can query what was true then versus what’s true now. It targets agent memory and real-time RAG, not static document Q&A.
The interesting bit The framework treats time as first-class: explicit bi-temporal tracking with automatic fact invalidation, plus provenance tracing every derived fact back to its raw “episode.” You can prescribe ontologies via Pydantic models or let them emerge from data. Hybrid retrieval combines semantic search, BM25 keywords, and graph traversal without leaning on LLM summarization for every query.
Key highlights
- Pluggable backends: Neo4j, FalkorDB, Kuzu, or Amazon Neptune
- Optional LLM providers beyond OpenAI: Anthropic, Google Gemini, Groq
- Incremental ingestion — no full graph recomputation on new data
- MCP server available for Claude/Cursor integration
- Ships with arXiv paper (2501.13956) backing the architecture
Caveats
- Requires self-hosting a graph database; no managed service here (that’s the separate Zep product)
- Defaults to low concurrency (10) to dodge LLM rate limits; you’ll need to tune
SEMAPHORE_LIMITfor speed - Structured Output support strongly recommended; smaller or non-OpenAI/Gemini models risk schema failures during ingestion
Verdict Worth a look if you’re building agents that operate on evolving data and need precise historical reasoning. Skip it if you just need static document retrieval — GraphRAG or vanilla vector search is simpler for that.