{"id":"temporal-graph-memory","slug":"temporal-graph-memory","name":"Temporal / graph agent memory","shortName":"Temporal / graph agent memory","problemStatement":"Agents must recall entities, relationships, and time-evolving facts — not just similar chunks.","whenNotTopPick":"Simple preference/memory snippets — Mem0; pure vector RAG — Qdrant/pgvector.","categoryIds":["cat-vector-memory"],"depotPickProviderId":"zep","depotPickRationale":"Capability of temporal graph memory over raw vector recall.","runnersUpIds":["mem0","weaviate","letta","cognee"],"weights":{"capabilityFit":0.24,"pricePerformance":0.18,"latencyReliability":0.18,"developerDx":0.16,"privacyPosture":0.1,"lockInRisk":0.08,"maturity":0.06},"methodologyNotes":"Capability of temporal graph memory over raw vector recall.","tags":["temporal"],"depth":{"whenNotToUse":{"text":"Simple preference/memory snippets — Mem0; pure vector RAG — Qdrant/pgvector.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"mem0","name":"Mem0","overallForJob":7.58,"pickOverallForJob":7.43,"beatsPickOn":["pricePerformance","developerDx","lockInRisk","maturity"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":5.2,"runnerUpLockInRisk":5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":["open source (provider tag `oss`)"],"runnerUpExitSignals":["open source (provider tag `oss`)"],"pickNotes":[{"text":"Graph ops complexity if self-host","field":"weaknesses"}],"selfHostFallback":[],"migration":"Runner-up Mem0 has lower stored lock-in risk (5 vs 5.2, 0–10, higher = more lock-in). Pick exit signals: open source (provider tag `oss`).","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":3,"sourcesReachable":3,"pricingRows":0,"pricingRowsReconfirmed":0,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}},"depotPick":{"id":"zep","slug":"zep","name":"Zep","tagline":"Pick when agents need temporal/entity graph memory, not just vector snippets. Mem0 for simpler recall.","overall":7.43},"runnersUp":[{"id":"mem0","slug":"mem0","name":"Mem0","tagline":"Default hosted agent memory bolt-on. Model retrieval volume carefully; self-host OSS if caps hurt.","overall":7.58},{"id":"weaviate","slug":"weaviate","name":"Weaviate","tagline":"Best when hybrid search and modularity matter. Cloud for convenience; self-host when lock-in anxiety spikes.","overall":8.15},{"id":"letta","slug":"letta","name":"Letta Cloud","tagline":"Choose when the agent IS a long-lived stateful runtime. For bolt-on memory use Mem0/Zep.","overall":7.39},{"id":"cognee","slug":"cognee","name":"Cognee","tagline":"Graph memory when documents→ontology matter. Zep for temporal bipartite graphs; Mem0 for simplest hosted…","overall":8.11}]}