GraphitiAgent Memory · RAG · In production

Graphiti: knowledge-graph long-term memory for agents

A temporal knowledge graph every agent can query — so the fleet remembers, and knows when a fact stopped being true.

RoleArchitect & BuilderSchema, ingestion, MCP query layer
Shape19 custom entity typesEntities + time-aware facts
StackGraphiti · Voyage · FalkorDBGemini extraction · MCP

The context

Agents without memory repeat themselves and contradict last week's decision. A vector store alone forgets relationships and has no sense of time — it can't tell you that a fact was true in March and superseded in May.

So I stood up Graphiti as the fleet's shared long-term memory. Every markdown source of truth — instructions, handoffs, audits, strategies, architecture — is ingested as an episode; the system extracts entities and temporal facts, dedupes, and summarizes into a queryable graph. Agents query it over MCP with search_nodes, search_facts, and get_episodes. I modeled 19 domain entity types (App, Service, Decision, Incident, Integration, Credential…) and wired a post-commit hook so the graph stays current without anyone tending it. New facts resolve to existing entities by embedding similarity + name match; a contradicting fact sets an invalid-at timestamp on the prior edge, so queries return only what's currently true.

What I built
Memory ArchitectureKnowledge GraphTemporal FactsCustom Entity SchemaRAG / EmbeddingsMCP Query LayerAuto-sync Ingestion
Stack
Graphiti CorePythonGemini FlashVoyage AIFalkorDBRediSearchMCPRailway

The architecture

ingest → extract → query
   markdown sources          Graphiti (Railway)         any agent
   ────────────────          ─────────────────         ─────────
   instructions              add_memory                search_nodes
   handoffs · audits  ─────▶ entity extract     ◀───── search_facts
   strategies · docs         temporal facts            get_episodes
   READMEs                   dedupe · summarize           │  MCP
                                  │                        │
                                  ▼                        │
                  ┌─────────────────────────────┐         │
                  │  FalkorDB graph              │ ◀───────┘
                  │  + Voyage embeddings        │
                  │  (Gemini Flash extraction)  │
                  └─────────────────────────────┘
        auto-sync: post-commit hook → graph stays current
19
Custom domain entity types modeled for precise, typed recall.
Temporal
Facts carry validity in time — the graph knows what's current vs. superseded.
Auto
A commit hook keeps memory current — no one tends the graph by hand.