At a glance
Overlap and shared capabilities
Both Worlds and Graphiti store facts as a graph, preserve provenance to source material, and retrieve through more than one signal. Both reject the idea that vector similarity alone is enough for agent context: structure decides what an agent can verify, not just what looks similar. The difference is in how facts enter the graph and what guarantees they carry:- Graphiti extracts entities and relationships from raw episodes with LLM calls at write time. Each edge carries a bi-temporal validity window, so the graph answers both “what is true” and “what was true on a date”. Conflicting facts are invalidated, not deleted.
- Worlds treats ingestion as curation. Facts enter a world deliberately, through import and patches, as W3C RDF triples in an append-only ledger. Every quad records where it came from and when it entered.
When Worlds fits
- You need deterministic graph querying (SPARQL) to verify multi-hop relationships before an agent acts.
- You require quad-level provenance and audit trails for every assertion.
- You need portable context across backends and providers, without an extraction pipeline tied to specific models.
When Graphiti fits
- Your facts change constantly and you need point-in-time answers (“what was true last quarter”) from automatically ingested conversations and events.
- You want memory writes driven by LLM extraction rather than manual curation.
- You already run Neo4j, FalkorDB, or Kuzu and want temporal memory on top of that infrastructure.