Best Zep Alternatives for Agent Memory, by Why You Are Leaving (2026)
Published · Last updated · Every price, tier, limit, licence and benchmark condition below was read from the vendor's own page on 12 September 2026, and the vendor is named for each.
For customer-facing, voice and multi-tenant SaaS agents, the Zep alternative to start with is Maximem Synap: it resolves the same customer across chat, email and phone to one entity, serves in-conversation reads from a cache pre-fetched into your own process at an asserted P75 under 15 ms, enforces a client, customer and user hierarchy at write time, and scored 92% on our open LongMemEval harness. Which alternative fits you depends on why you are leaving Zep, so the routing table below maps each of the eight common reasons to a replacement, including the cases where staying is the better call.
We build Maximem Synap, so this page has a commercial interest in your decision. Two things follow from that. Synap appears where it is one of the answers and is named as the wrong answer where it is not; and because the earlier version of this page got several things about Zep wrong, there is a correction notice at the end listing each error and the current Zep page that settles it. We would rather publish that than have you find it.
01Find your reason
Route by your reason for leaving#
| Why you are leaving | The accurate version of that reason | What to use | What you give up |
|---|---|---|---|
| You have to self-host or run air-gapped | Zep Community Edition is no longer supported, in its own repository's words, and its code sits in a legacy/ folder; only Graphiti is self-hostable | Graphiti, Zep's own Apache 2.0 engine, on Neo4j, FalkorDB or Neptune. Or Cognee, Hindsight or Mem0's open SDK if you also want to drop the graph | With Graphiti: every managed feature, and Zep's published latency and accuracy figures, which do not transfer |
| The ingestion bill is too high | One credit per 350 bytes of episode, retrieval free, so the whole bill is a write bill and a document workload is expensive | Batch first: ten turns in one episode costs four credits instead of ten. If that is not enough, a read-metered or token-metered vendor | Zep's free read path, which is the cheapest in this comparison |
| You need documents, images or audio in memory | Zep has no image path and no audio path, and caps graph.add at 10,000 characters. Files are not the gap: zep-ingest loads documents, transcripts, email and Slack exports from a path or a glob. Hosted connectors to source systems are the gap | Stay on Zep if the answer is documents. Cognee or SuperMemory for images and audio as well; Maximem Synap for documents, images and audio in the same store as the conversation | Zep's temporal model. Cognee's graph and ontologies are in its Apache 2.0 build, but its full bi-temporal model with conflict resolution is Enterprise-gated |
| You need LangChain or LlamaIndex | Zep names 14 frameworks and neither of those two is among them | Mem0 (22 named integrations including both) or Synap (23 adapters) | Zep's assembled Context Block, which most adapters hand you for free |
| You need a tenant rung above the user, enforced at write time | Zep has users, threads, graphs and UserGroups with attribute-based access control, but no tenant object | Cognee (tenants containing users containing roles containing dataset access) or Synap (client, customer, user, extendable) | Zep's access-control depth, which is the strongest in the category even without a tenant object |
| The graph is operational weight you did not want | True only if you self-host; Zep Cloud runs the graph for you on its own engine | Mem0, SuperMemory, Hindsight or Synap, all of which store statements rather than edges | Point-in-time queries. Nothing on that list models when a fact stopped being true with named fields |
| Latency | Not a real reason. Zep publishes "sub-200ms context retrieval regardless of graph size", plus 87 ms p50 and 155 ms p95 on LoCoMo and 104 ms p50 and 162 ms p95 on LongMemEval | Stay, unless your budget is tens of milliseconds inside the turn rather than under two hundred, in which case no faster graph will reach it and you need a cache pre-fetched into your own process. Synap is the design on this page built that way, and the playground will tell you in ten minutes whether the claim holds on your traffic | Nothing. Check your own numbers before acting on this one |
| You need bi-temporal validity, or SOC 2 Type II with a HIPAA BAA today | Both are real and both are Zep strengths | Stay on Zep. SuperMemory lists SOC 2 and a HIPAA business associate agreement from its $399 Scale tier, without naming the report type on that page, and has no validity fields; nobody else has both | Nothing |
The rest of this page is the evidence behind that table, and it is organised so you can read only the row that applies to you.
Run the numbers on your own traffic.
The playground runs the memory engine behind our figures, with no signup and no key. Or start free and point your own agent at it.
02What Zep is in 2026
What Zep actually is in 2026#
Three things share the name, and comparisons that conflate them are the reason so much of what you have read is wrong.
Graphiti is the open-source temporal knowledge graph engine: Apache 2.0, roughly 29,000 GitHub stars, latest tagged release v0.30.2 on 8 September 2026, with the graphiti-core package still shipping, most recently in September 2026. It requires you to bring a graph database: Neo4j 5.26, FalkorDB 1.1.2, or Amazon Neptune with an OpenSearch Serverless collection for full-text search. Kuzu 0.11.2 is now marked deprecated.
Zep Cloud is the managed product. Zep's own description is that it "runs Graphiti inside a managed system: extraction, retrieval, storage, and governance on the proprietary Context Graph Engine", serving "millions of governed Context Graphs as one Context Lake".
Konig is that engine's data plane. Zep's engineering blog of 27 August 2026 calls it "Zep's graph database service, the data plane beneath our agent memory platform", and says Zep previously ran on "an existing commercial database" that failed under load, without naming it. What this means practically: Konig displaced a third-party graph database inside Zep Cloud, and it displaced nothing for anyone self-hosting Graphiti, who still runs Neo4j, FalkorDB or Neptune. Graphiti remains actively released, and Zep's own line is the cleanest summary of the split: "Graphiti builds the graph; Zep operates it at scale."
The February 2026 deprecation wave, which several comparison pages mention without saying what it did, was an SDK cull rather than a hosting change. It retired the v2 vocabulary (sessions became threads, groups became standalone graphs created with graph.create()), removed session.classify, session.extract and session.synthesize_question with no replacement, removed fact rating entirely (minRating, fact_rating_instruction, min_fact_rating), removed the mode parameter on the context call, and removed min_score from graph search in favour of default relevance ranking. Nothing about Graphiti, self-hosting or graph backends changed in that wave; Community Edition was already gone before it.
One number to stop repeating#
Several widely cited alternatives pages state that Zep's free tier is 1,000 credits a month and use that to argue it is too small to prototype on. That figure does not appear anywhere on Zep's pricing page. Read today, Zep's self-serve tiers are Free at 10,000 credits a month with 2 projects, Flex at $125 a month with 50,000 credits, 5 projects and 600 requests a minute, Flex Plus at $375 a month with 200,000 credits, 10 projects and 1,000 requests a minute, and Enterprise at custom rates, with "Save 17%" advertised for annual billing. Since one credit ingests 350 bytes and retrieval costs nothing, the free tier is roughly 3.5 MB of ingestion a month with unlimited reads, which is enough to evaluate a read path properly, and tight for a document corpus.
Free tiers across the field, read today, since "can I evaluate this without a purchase order" is the practical version of the pricing question. Mem0's Hobby gives 10,000 add requests and 1,000 retrievals a month, which is the opposite shape to Zep's. Cognee gives a million tokens, one workspace, unlimited users and unlimited API calls with no card, plus the whole engine free forever if you self-host. SuperMemory gives $5 of credits a month with the full API and one seat. Hindsight needs no free tier, because the open build is MIT with, in its own words, no feature gating and no usage limits, one Docker command away. Graphiti and Letta's harness are Apache 2.0 and unlimited, and you supply the infrastructure and the model spend. Synap's Trial is free with 5,000 credits a month. The warning that matters more than any of those numbers: a free tier metered on writes will run out during a backfill of real conversation history, and a free tier metered on tokens will run out on documents, so choose your evaluation data to match the meter or the tier will look far smaller than it is.
03What leaving costs
What leaving Zep costs#
There is no single best Zep alternative, because the eight reasons teams give for leaving Zep want different replacements, and the most common way to get this decision wrong is to read a ranked list instead of working out which reason applies to you. If you are leaving because you must self-host, the answer is probably Graphiti, which is Zep's own engine under Apache 2.0, and no third-party product. If you are leaving because ingestion costs too much at your volume, the answer is a vendor that meters reads instead of writes, and Zep is already the cheapest read path in the category. If you are leaving because you need documents, images or audio in memory, almost anything else will do, because Zep accepts message, text and JSON only. And if you are leaving because you need bi-temporal validity with named fields or a HIPAA business associate agreement, you should probably not leave at all.
That last point deserves to be up front rather than buried. Zep is the compliance and governance leader of this category, and the only vendor here that publishes accuracy and read-path latency with both percentiles on the same page. Any honest alternatives page has to start by saying what leaving costs, and this one does, below.
No alternative on this page matches the whole package. Here is the specific list, from Zep's own pages.
A fact's whole life, in four named fields. created_at is "the time Zep learned that the user got married", valid_at is "the time the user got married", invalid_at is "the time the user got divorced", and expired_at is "the time Zep learned that the user got divorced". Two axes, four fields, and every fact carries them, which is what makes "what did we believe in March" a query rather than a research project. Cognee has a lighter single-field version and gates the full bi-temporal model to its Enterprise engagement; nobody else on this page has it at all.
Accuracy and latency on the same page, with percentiles. Zep's performance page publishes "sub-200ms context retrieval regardless of graph size or number of graphs" along with "155ms retrieval latency on LoCoMo (94.7% accuracy) and 162ms on LongMemEval (90.2% accuracy)". Its research page goes further and publishes both percentiles: 87 ms p50 and 155 ms p95 on LoCoMo, 104 ms p50 and 162 ms p95 on LongMemEval, with reader and judge both named as gpt-5.4 (reasoning medium for the reader, chain of thought for the judge) and per-category breakdowns, a statement that it ran all 1,540 LoCoMo questions and all 500 LongMemEval questions, and 1,459 and 451 of them answered correctly. The one condition missing from that page is the run date. That is more than any other vendor in this comparison publishes, and the plain fact is that Zep publishes read-path percentiles at all, which several comparison pages, including our own earlier one, denied.
The compliance package. "Zep maintains SOC 2 Type II certification", with a live status page. Business associate agreements are available for Enterprise customers. Bring-your-own-key uses your own AWS KMS customer master key with "full control over encryption keys, including revocation". Bring-your-own-cloud is "Zep deployed inside your own VPC for a full network and compliance boundary". Access control runs to attribute-based, role-based and policy-based models with enterprise single sign-on. Retention is policy-driven, "data expires on the schedule you set", and "legal hold blocks deletion when compliance requires it". Audit logs cover "every request and policy decision", with thirty days of history in the dashboard, a year in cold storage for Enterprise customers, and seven years for Enterprise customers who have signed a HIPAA business associate agreement. API request logs are a separate schedule, running from one day on Flex through seven days on Flex Plus to a year on Enterprise.
Deletion you can reason about. Deleting an edge "never deletes the associated nodes, even if it means there will be a node with no edges". Deleting a node "will also delete all edges connected to that node", a cascading delete. Deleting an episode removes edges and nodes "only if no other episodes are associated with them". Deleting a thread removes its episodes and cascades. And a caveat worth knowing before you promise an erasure timeline: "for user graphs, the user entity node is never deleted, even if all episodes are removed."
An explanation of why the extractor decided what it decided. Debug Mode captures episode workflow logs, and Ingestion Traces "explain why selected LLM stages produced each decision during graph construction", kept 30 days. No competitor on this page documents anything equivalent. The window is 60 minutes on standard plans and 24 hours on Enterprise, traces are unavailable on Free, and per-episode debug logs do not cover batch ingestion.
If two or more of those five are load-bearing for you, the rest of this page is a cost analysis of a decision you should probably not make.
04Do you need a memory layer
Before you shop: is a memory layer even the thing you need?#
Three products get confused with each other in this search, and picking the wrong category is more expensive than picking the wrong vendor inside the right one.
A memory layer, which is what Zep and everything on this page is, holds what this specific person or account currently is: derived facts, maintained, scoped, retired. A document retrieval pipeline holds a corpus that changes on a release cadence, and a vector index does that better and cheaper than any memory layer will. A context layer, which is a term two vendors now sell, holds your company's current truth synced from the systems of record: Atlan defines one as the system that turns "your company's knowledge, expertise, and norms into machine-usable context for AI agents", and Graphlit sells real-time sync from Slack, GitHub and Jira behind one API. Zep itself has moved toward that vocabulary with its "Context Lake".
The test is the failure you are seeing. "It forgot what I told it last week" is a memory layer. "It cannot find the policy document" is retrieval. "It quoted last quarter's pricing" is a context layer. And there is one capability none of the memory vendors on this page has, ours included: not one inherits the source system's access control at retrieval time. If a Confluence space is restricted to finance, ingesting it into any of these stores flattens that restriction into whatever scope the write used. Zep gets closest with attribute-based access control, and that is a policy you author rather than an inheritance. If inherited permissions are your requirement, no amount of switching memory vendors will deliver it.
The related question is whether you buy one product or three. The incumbent position in this category, stated by one of the consultancies whose page you have probably read, is that most production systems end up combining two or three tools, with a memory platform for extraction and retrieval plus infrastructure underneath. The counter-position is that the managed memory layers already are two or three stores internally: Mem0 runs a SQL source of truth, a vector store and an entity store; Cognee runs relational, vector and graph. The useful version of the rule is narrower than either: keep your transactional database as the system of record for identity, orders and permissions; keep your document index where it is; and let the memory layer own only the derived, scoped, time-stamped statements about people and accounts. Buying a memory layer to replace a vector index is the single most common mis-purchase here, and buying one to replace your database is the most expensive.
And the prior question, whether a bigger context window removes the need for any of this, has numbers rather than opinions behind it, from the two vendors' own papers. Zep's paper, on LongMemEval-S histories of roughly 115,000 tokens, put full-context gpt-4o-mini at 55.4 percent against Zep's 63.8, with latency falling from about 30 seconds to about 3. Mem0's paper, on LoCoMo conversations of roughly 26,000 tokens, found the opposite on accuracy: full context scored 72.90 against Mem0's 66.88, but at 17.1 seconds p95 against 1.44 and about 26,000 tokens per question against 7,000. An independent 2026 study put the cost crossover at about ten turns of a 100,000-token loop once prompt caching is on. The rule that falls out: below roughly 30,000 tokens of history, stuffing the window is more accurate and you are buying latency and cost rather than quality; around 100,000 tokens retrieval wins on accuracy too; and the crossover on cost arrives at about ten turns.
05Option zero: Graphiti
Option zero: Graphiti self-hosted#
The most common real alternative to Zep Cloud is Zep's own engine, and it is missing from almost every alternatives page including the one this replaces. If your reason for leaving is that Community Edition went away and you must run memory on your own infrastructure, this is the first thing to evaluate, because it keeps the entire temporal model.
What you keep: typed entities and edges defined through Pydantic models, all four validity timestamps, incremental episode ingestion, and hybrid retrieval that combines semantic embeddings, BM25 keyword search and graph traversal. Apache 2.0, no usage meter, and you can point extraction at a local model.
What you give up is long and worth reading in full, because Zep's own comparison is candid about it. There are no built-in users, threads or message storage as primitives. There is no pre-assembled Context Block and no context templates. There is no Context Graph Engine, so in Zep's words performance "depends on your setup" rather than staying under 200 ms at scale. There is no SOC 2 Type II, no HIPAA BAA, no bring-your-own-key, no bring-your-own-cloud. There is no attribute-based or role-based access control, no UserGroups, no policy sets, no enterprise single sign-on. There is no policy-driven retention, no legal hold, no audit or API logging. There is no Debug Mode and no Ingestion Traces. There is no Batch API, no zep-ingest, no webhooks, no graph cloning, no graph directory, no document summaries, no thread summaries. There is no hosted MCP server, no dashboard and no graph visualiser. And there is no service level agreement and no support.
Infrastructure you take on: a graph database, an LLM provider for extraction, an embedding provider and a reranker. Put a number on that before you commit. A managed Neo4j AuraDB Professional instance starts around $65 per gigabyte per month, against Hindsight's embedded Postgres and Cognee's embedded Kuzu and LanceDB, which need no separate database at all; Hindsight's full container image is roughly 9 gigabytes and its local reranker wants a GPU in production. And self-hosting moves the extraction bill to your own model account rather than removing it, so the saving is the vendor's margin on credits, not the cost of the LLM calls.
One thing to be careful about, because it is the mistake self-hosters make most often: Zep's published numbers do not transfer to Graphiti. The 94.7 percent on LoCoMo, the 90.2 percent on LongMemEval and the 155 and 162 millisecond latencies are published as Zep Cloud results measured against the Context Graph Engine. Graphiti's own README says performance depends on your setup, and Graphiti's repository contains no evaluation or benchmark directory at all. If you self-host Graphiti and your latency is 600 ms, you have not misconfigured anything; you are simply not running Konig.
Graphiti is the right answer when you need the temporal model and not the governance package, when you must self-host or air-gap, when your ingestion volume makes per-episode credits worse than operating a graph, or when you already run Neo4j or Neptune for something else.
06The alternatives
The alternatives, and what each does about the thing Zep does well#
Mem0. The widest-adopted option, sold as an Apache 2.0 library and a managed Platform, with 22 named integrations including the LangChain and LlamaIndex that Zep lacks, a hosted MCP server with eleven tools, and Python and TypeScript SDKs. It is the cheapest place to start at $19 a month, and the shape of the meter is the opposite of Zep's: you buy add and retrieval requests, so the free Hobby tier gives 10,000 adds but only 1,000 reads, and the $19 Starter caps retrievals at 5,000 a month, which a conversational agent will exhaust before it exhausts its writes. Against Zep's temporal model it offers additive writes since April 2026, which means a changed fact is stored beside the old one and ranking is expected to surface the newer, with a background consolidation feature called Dream whose supersede-and-merge step runs on every plan at write time, and an expiry date that hides a memory rather than deleting it. Compliance is "SOC 2 Type I", "HIPAA Ready" and "GDPR Ready" on its own page today; the comparison pages that say Type II are wrong. Graph memory and entity linking, Dream's deeper synthesis pass, multi-project support and advanced analytics are gated to Pro at $249, with audit logs, on-premise deployment and single sign-on held for Enterprise. Note the wording carefully: Mem0's pricing page lists "Graph memory (entity linking)" and "Dream (Memory Consolidation)" as Pro features while its graph-memory documentation says entity extraction, linking and the retrieval boost are on all plans automatically with only the visualisation gated. Both pages are Mem0's; the difference between them is $230 a month, so ask before you buy. Where it beats Zep: price at entry, framework breadth, time to first memory, and a self-hostable memory layer that is still a memory layer. Where it does not: no validity fields, no tenant rung, SOC 2 Type I rather than Type II, and a published p50 without a p95 on the read path.
Cognee. The closest thing to Zep's architecture in open source that is not Zep's own engine: Apache 2.0, roughly 30,000 stars, relational plus vector plus graph storage with ontologies, embedded defaults so you can run it without provisioning a graph database, and the widest file-format ingestion here. Its permission model is the deepest here: tenants contain users, roles live inside tenants, dataset access lists route each dataset to its own physical store, and access control has been on by default since 0.5.0. Cloud pricing is $1.00 per million tokens with a free tier of a million tokens and no card. One gate matters more than any other on this page, so read it before you choose Cognee as a Zep replacement: bi-temporal memory and conflict resolution, provenance on every answer, and per-user personalisation are gated to the Enterprise bring-your-own-cloud engagement. The temporal model that makes Cognee look like a Zep substitute is not on the self-serve plans most readers would evaluate. Cognee publishes no LongMemEval or LoCoMo figure at all; its published benchmark is BEAM, at 0.79 on the 100K setting and 0.67 at 10M, with unusually candid caveats about question counts. Compliance is GDPR under German law with a named data protection officer, and Cognee states plainly that it holds no SOC 2 or ISO 27001.
SuperMemory. The answer if you left Zep over ingestion breadth or over the compliance gate specifically. It accepts audio, video, images, PDFs with OCR, Office files and Google Docs, keeps standing user profiles, and types memories so that preferences strengthen with repetition and episodes decay. Isolation is a single container tag that API keys cannot cross. And contrary to several comparison tables, including the one this page replaces, SuperMemory does list SOC 2 and a HIPAA business associate agreement, along with a self-hosted option, all gated to the $399 Scale plan. Its pricing page does not name the report type, and the security page that previously stated Type II returns a 404 today, so treat the type as something to ask for in writing. Its public repository is MIT and includes a local binary that runs fully offline. Its headline benchmark is 95 percent Recall@15 on LongMemEval, which is a retrieval metric and must not be charted against an accuracy figure; the 81.6 percent accuracy number that circulates is no longer on its own site.
Hindsight. MIT-licensed, from Vectorize, organised into world facts, experiences, observations and mental models with three operations: retain, recall and reflect. Its distinguishing property against Zep is retrieval breadth rather than storage shape: four strategies run in parallel on every query, semantic, BM25, entity-graph traversal and temporal filtering, merged by a cross-encoder reranker. It self-hosts from one Docker command with embedded Postgres, runs offline against a local model, and its own claim is "no feature gating, no usage limits" in the open build. Two cautions. It is append-only by design with no endpoint to permanently delete an individual memory, only invalidation that hides it, which is the wrong shape if erasure is your reason for shopping. And its two published LongMemEval figures are different runs: 91.4 percent is the December 2025 paper with a scaled backbone, and 94.6 percent, or 473 of 500, is Vectorize's own Agent Memory Benchmark, answered by gemini-3.1-pro-preview and judged by gemini-2.5-flash-lite, run by Vectorize on a harness Vectorize wrote; the missing condition there is the run date.
Letta. Not a memory layer, and worth saying so before anyone evaluates it as one. It is an agent runtime, formerly MemGPT, where memory is a git-versioned repository of Markdown files the agent edits itself. Adopting it means adopting an agent loop, and its current SDK is TypeScript only. Apache 2.0 on both repositories, with a local runtime and a self-hosted App Server on Node 22.19 or later as well as a cloud; pricing is Free for three agents, $20 Pro for twenty, and an API plan at $20 plus $0.10 per active agent per month plus $0.00015 per second of server-side tool execution. It and Evermind are the two options here with native review, diff and rollback of memory, because in both cases memory is files and those are git operations; Letta's are committed by the agent itself. No compliance page exists on any Letta property we could find.
LangMem and the LangGraph store. The right answer if you are on LangGraph and want no new vendor: a namespaced document store with optional embedding search on Postgres, Redis or MongoDB, plus memory tools and a prompt optimiser that is the clearest procedural-memory implementation in this field. MIT-licensed, free, Python only, and there is no LangMem cloud: the managed path is LangSmith Deployment, whose Developer plan is free and whose compute and storage are metered in its own units. No entity resolution, no validity fields, no erasure tooling, and its last package release was October 2025.
Evermind EverOS. Apache 2.0, local-first, memory as Markdown with SQLite and LanceDB indexes, agent cases and skills as a first-class track beside user episodes. Human-readable and git-diffable by construction. Its published benchmarks are LoCoMo 93.05 percent and LongMemEval-S 83.00 percent with GPT-4.1-mini as the answer model and GPT-4o-mini plus two auxiliary judges averaged, with the baselines taken from another leaderboard rather than re-run. Cloud pricing is a monthly subscription metered in MemCells and the list price could not be read from its own page, which is itself worth knowing. Where it beats Zep: portability, readability and an agent-skills track. Where it does not: production maturity, compliance, and anything a procurement process needs.
Cloud primitives. If you are already committed to a cloud, Amazon Bedrock AgentCore Memory has been generally available since October 2025 at $0.25 per thousand new events, $0.75 per thousand long-term records a month and $0.50 per thousand retrievals; Google's Memory Bank moved to storage-plus-operations pricing from 1 September 2026; Microsoft Foundry's memory is still in public preview. None publishes a LongMemEval or LoCoMo figure, and all three tie your memory to the cloud that hosts it.
Postgres and pgvector. The honest floor. Full-text search plus pgvector plus a periodic summariser is defensible for a single-tenant, low-traffic product where transcripts fit and nobody asks why the agent believes something. It stops being right at the first item Zep built a product around: reconciling contradictions without a summariser overwriting detail, recording when a fact was and was not true, resolving entities across sessions, enforcing a tenant boundary at write time, and reaching every derived copy on an erasure request.
Maximem Synap. Ours, so read it as a column. It sits on the opposite side of the architectural split from Zep: memories are discrete self-contained statements with a type, a confidence score, a storage time and an event time, not edges. Three things it has that Zep does not: a scope ladder with client, customer and user rungs plus the conversation, where a read prefers the narrowest rung and inherits everything above it and never sees a rung below or a neighbour, extendable with your own rung names to any depth; lossless supersession by rule, so a newer statement that is poorer than the one it resembles never replaces it and the old statement is kept, marked historical and linked to its replacement with the reason; and an anticipatory read path that pushes likely context into a cache inside your own process, which is where the asserted in-conversation P75 under 15 milliseconds comes from, with a cold-retrieval P95 of 450 milliseconds published as a target rather than a measurement. Ingestion covers conversation turns, documents, images and audio via speech to text, plus connectors for Google Drive, Notion, SharePoint, Slack, Linear, Mintlify and Zendesk. There are 23 framework adapters, Python and TypeScript SDKs, REST, a CLI and a hosted MCP endpoint, all documented. Pricing is credits, from a free Trial through $19 Starter, $249 Pro with bring-your-own-key and $999 Scale, with every plan getting every memory capability. Benchmarks are 92 percent on LongMemEval over the full 500-question set and 93.2 percent on LoCoMo over 1,540 questions in categories one to four, with gpt-5-mini as both answer model and judge, binary judging, a single run, reproduced on our open harness rather than verified by anyone independent of us, with the conditions behind every figure on /evals.
Where Synap is the wrong answer against Zep, stated as plainly as we can: there are no bi-temporal validity fields, so a point-in-time query is answered through history rather than by querying a window, and if that question is central to your product Zep is the better tool; SOC 2 Type II is in progress with a target of Q3 2026 rather than held, and HIPAA is not certified, with the documentation telling you not to send protected health information, so a compliance-led purchase belongs to Zep or to SuperMemory's Scale tier; there is no documented memory export endpoint, so what exists today is import jobs and audit-log export, and you should ask us about the rest before signing, because this page spends a whole section on why that matters; and our benchmark figures are vendor figures like everyone else's, with the harness as the only argument we make for them.
Synap is the right answer when you need a tenant rung above the user enforced at write time, when a changed fact must not cost you the detail of the one it replaced, when documents, images and audio have to live in the same store as the conversation, or when the read has to land inside a conversational turn. It is the wrong answer when you need bi-temporal validity with named fields on a relationship, and that is Zep or Graphiti.
Run the numbers on your own traffic.
The playground runs the memory engine behind our figures, with no signup and no key. Or start free and point your own agent at it.
07The axes
The axes that decide it#
Temporal validity#
Only Zep and Graphiti have four named fields. Cognee has a single valid_to stamp you close explicitly, persisted today only on one backend, with the full bi-temporal model gated to Enterprise. Mem0 has timestamps, a Platform-only temporal boost at search time and an expiry date that hides rather than deletes. SuperMemory tracks a latest flag and an updates relation. Synap records storage time and event time and keeps a lineage from a deprecated statement to its successor. Hindsight records when events occurred and uses it for temporal search but documents no validity end date. Letta, LangMem and Evermind have nothing here. If the question your product asks is "what was true on the fifteenth of March", this axis is the whole decision and you should stay on Zep or run Graphiti.
Graph or flat, and who operates it#
The graph earns its keep on three things Zep's own authors name: validity windows, provenance back to the episode, and multi-hop relationship queries. It costs you an operational dependency if you self-host and a per-episode extraction bill either way. A flat statement store has the mirror-image trade: a fact involving four participants survives whole as a sentence, and you cannot ask which approvals a given person made for a given office, because the relationship lives inside the sentence rather than in queryable endpoints. Neither is better. The question is whether anyone on your team has ever needed the second kind of query.
Price, with one worked volume#
Compare meters, not entry prices, because the meters point in opposite directions. Take a stated month: 100,000 episodes of about 350 bytes each, which is roughly 8.8 million tokens, plus 10,000 retrievals.
On Zep that is 100,000 credits and zero for the reads, which is half of a Flex Plus month at $375, or Flex at $125 plus five overage blocks of 10,000 at $25, which is $250. On Mem0 the 100,000 adds exceed Starter's 50,000 so you are on Pro at $249, and the 10,000 reads would have exceeded Starter's 5,000 cap anyway. On Cognee Standard at $1.00 per million tokens, 8.8 million tokens is about $8.80. On SuperMemory, ingestion at $0.005 per thousand plain-text memory tokens is about $44, plus $0.05 for 10,000 searches. On Synap, ingestion at the two-credit floor is 200,000 credits plus 10,000 for fast reads, which is 210,000 credits: Pro at $249 covers 150,000, so $249 plus 60 overage blocks of 1,000 at $1.75 is about $354.
The lesson is not the ranking, which will invert with your read-to-write ratio. It is that a token-metered vendor is cheapest for bulk text, a read-metered vendor is worst for a chatty agent, and Zep's per-episode rule makes batching worth more than switching: ten turns sent singly cost ten credits and the same ten turns in one episode cost four.
Read path#
Zep publishes the tightest figures with the fewest missing conditions: sub-200 ms context retrieval regardless of graph size on its performance page, and 87 ms p50 with 155 ms p95 on LoCoMo and 104 ms p50 with 162 ms p95 on LongMemEval on its research page. Mem0's 2026 table shows 0.88 seconds p50 on LoCoMo and 1.09 on LongMemEval at a top-200 budget, with no p95. SuperMemory states under 300 ms with no percentile and about 100 ms more when reranking. Hindsight's own benchmark runs average 675 ms per retrieval. Cognee, Letta, LangMem and Evermind publish no read-path percentile. Synap publishes an asserted in-conversation P75 under 15 ms served from a pre-fetched in-process cache, and a cold-retrieval P95 of 450 ms as a target. For a voice agent, where the maintainers of Pipecat advise aiming at 800 ms median voice to voice, everything on that list except the second-scale figures fits if the read runs off the critical path.
Entity resolution#
Five vendors document it and they differ in how they decide, which matters because this is the capability that makes one person one person across channels. Graphiti runs an LLM deduplication step at ingest whose prompt returns a duplicate candidate identifier or minus one for each extracted entity, and supports developer-defined entity types. Hindsight matches on trigram similarity with a 0.15 candidate threshold and a 0.5 in-batch merge threshold reinforced by co-occurrence, and its own documentation warns that a short new name can be absorbed into an existing entity by mistake. Cognee ships an opt-in consolidation pipeline clustering entity names at 0.85 cosine similarity with a dry-run mode. Mem0 stores each entity once and embeds it so differently phrased references can match, with no threshold or review control described. Synap matches in order exact, alias, semantic and contextual, narrowest scope first, and routes ambiguous matches to a dashboard review queue rather than guessing. SuperMemory, Letta, LangMem and Evermind document nothing here, which for a support agent that meets the same customer by chat and by email is a real gap rather than a missing row.
The write path, and the gap nobody plans for#
Every vendor here writes asynchronously and the gap is bigger than the read latency everybody compares. Zep's own documentation says ingestion "can take a few minutes" and that the context string "can omit recent information during that time", with the documented mitigation being to include the last four to six session messages in every call and to pass a flag that returns context on the write to save a round trip. Mem0 returns an event identifier with a pending status you poll. SuperMemory documents a six-stage pipeline with an instant mode that costs extra. Synap's documentation says a memory written now is not retrievable a second later. Cognee, Letta and Hindsight publish no figure. Whichever you pick, a production agent reads the live buffer for the current turn and the memory layer for everything before it.
On write cost: Zep meters by episode size, which makes batching a first-order lever, because ten turns of 120 bytes cost ten credits sent singly and four credits sent as one episode. Mem0's April 2026 algorithm is a single extraction pass. Cognee's cognify makes two LLM calls per chunk. Hindsight runs one call per chunk with prompt caching on by default. Synap meters ingestion at two credits or one per 500 tokens, whichever is larger, and moves the model calls to your own provider account with bring-your-own-key from Pro. Two of those numbers are per chunk rather than per document, which is the detail that decides the bill: Cognee's two calls apply to each chunk against a 3,000-token ceiling, so a 10,000-token document is about twenty calls, and Hindsight's one call per chunk defaults to a 3,000-character chunk. Where the vendor meters instead of counting calls, the meter tells you what to expect: Cognee at $1.00 per million tokens processed, Hindsight at $10 per million tokens retained. Bringing your own model key, which Synap offers from Pro, moves that spend to your provider account rather than removing it. One widely repeated claim, that Zep's graph construction costs around 600,000 tokens per conversation against Mem0's 1,764, has no primary source: it appears in one condensed article and Zep publishes no token-per-conversation figure. We are not using it and neither should any page that cannot source it.
Who decides what gets written, and does the store improve on its own#
Two axes that no comparison table carries and that decide how the system behaves in month six.
Who writes. On Zep, Mem0, Cognee, SuperMemory and Synap the platform's extractor decides, and your steering is configuration: Zep's ignore_roles to keep whole roles out of the graph and custom entity types to constrain what extraction looks for, Mem0's project-level custom instructions and per-call include and exclude hints, Synap's per-agent memory architecture generated from a description of the agent's job and approved by a person before it applies. On Letta and LangMem the agent decides, editing memory with tools, which fails by omission and drift rather than by over-collection. No vendor here documents a human approving an individual memory before the write lands, except Letta's optional review of proposed updates during its background consolidation.
Whether the store improves. On Zep, improvement happens at write time and only at write time: the graph is reconciled as episodes arrive and nothing revisits it afterwards. Several alternatives do revisit. Cognee's Memify stage enriches after ingestion and prunes stale relationships, and improve() is a named operation. Hindsight's third verb beside retain and recall is reflect, which reasons across stored memories with a model rather than returning a ranked list. Letta runs background subagents that review recent conversations and consolidate lessons. LangMem has a background manager and, uniquely in this set, a prompt optimiser that rewrites the agent's own instructions from scored trajectories, which is procedural memory rather than factual. Evermind keeps agent cases and skills as a first-class track beside user episodes. Synap works on stored memory at three cadences, a light pass every few hours, a deeper one daily, and consolidation with conscious forgetting during your product's quiet hours. If your agent does the same job repeatedly and should get better at it, that capability is on this list and it is not on Zep's.
What stops the store filling with junk. Mem0 offers an expiry date that hides a memory and an opt-in decay re-ranker that dampens stale memories without filtering them out. Cognee has explicit pruning and Memify's stale-relationship cleanup. SuperMemory decays typed memories, with episodes dropping out and preferences strengthening. Synap prunes during the sleep cadence and compacts a conversation once it passes 3,000 tokens, ten messages or five idle minutes. Hindsight is append-only and prunes nothing. Zep invalidates rather than deleting and, on Enterprise, expires on a policy you set. Nobody in this comparison publishes a measurement of how precision degrades as a store grows, which means you will have to measure it yourself on whichever you choose.
Prompt injection through memory#
This is the axis nobody puts in a comparison table and Zep is the only vendor here with a documented position, which is worth knowing before you treat it as a reason to leave. Zep's docs devote a section to it: the context string "can contain text from end users, documents, tools, or other external sources", so it must be passed through the provider's untrusted-data channel and never in a system or developer message, with per-provider instructions for the OpenAI and Anthropic APIs, and the standing rule to "keep both forms of context out of privileged instruction channels". OWASP's Top 10 for Agentic Applications lists memory and context poisoning as ASI06 for exactly this reason. One other vendor takes the problem seriously from the other end. Vectorize publishes an ASI06 explainer, and Hindsight ships Memory Defense, a per-bank write-path policy: a 44-pattern regex screen in the open build, and a seven-stage pipeline in the cloud enterprise tier with an LLM screening step, prompt-injection detection and HMAC-signed webhooks to your security monitoring. That is a control on what gets written rather than guidance on where retrieved memory is placed in the prompt, and the two are complements rather than substitutes: you want Zep's placement rule and Hindsight's write filter. We could not find either kind of guidance in the documentation of Cognee, SuperMemory, Letta or, for that matter, our own, which is an absence of documentation rather than proof of absence, and a fair question to ask any vendor on this list including us.
Scoping#
Zep has users, threads, user graphs, standalone graphs and UserGroups carrying policy sets, with attribute-based, role-based and policy-based access control and enterprise single sign-on, and no tenant object. Mem0 has four identifier tags with app_id as the documented tenant handle and organisations and projects as an API-key construct. SuperMemory has one container tag that keys cannot cross. Hindsight has one bank per user or agent. Cognee has a real hierarchy. Synap has the client, customer, user ladder enforced at write time and extendable. If your reason for leaving is a tenant rung, Cognee and Synap are the two designs with a tenant object rather than a naming convention; if your reason is access control, nothing here matches the depth of Zep's policy models, although Cognee and Synap are the only two that enforce a tenant boundary at write time.
Several agents on one user, and who can fix a wrong memory#
Nobody in this field sells a multi-agent feature; they all do it with identifiers, and the shapes differ enough to matter if that is your reason for moving. Zep's unit is the user graph, shared by construction, plus standalone graphs as a first-class home for knowledge several agents read, with UserGroups and attribute-based access control limiting what each agent's key reaches; UserGroups are a security grouping rather than a shared write pool. Mem0 puts agent_id beside user_id, so two agents share a user by convention and there is no shared-pool primitive. Letta is the only one with an explicit shared-memory object, organisation-owned git repositories that cloud agents clone, commit to and pull, with local agents excluded. Synap's client and customer rungs are the shared tier, with agent-specific memories below and the scope chain handling isolation. The problem none of them solves is two agents writing contradictory facts about the same entity: every vendor here reconciles writes against the store, and none reconciles between agents' authority.
Fixing a wrong memory by hand is the adjacent question and the answers are thinner than anyone expects. Zep deletes edges, nodes and episodes by identifier, and never the user entity node. Mem0's history endpoint is read-only, returning the event type with the old and new text and the triggering messages, with no rollback call. SuperMemory versions an update and marks the original with a latest flag of false. Cognee has a graph visualiser and an optional provenance ledger. Letta and Evermind are files in git, so correcting a memory is an edit and a commit. Synap shows in the dashboard what a statement replaced and why, with audit logs retained 90 days, and documents no direct editing of an individual memory. If "a support lead needs to correct a wrong fact this afternoon" is a real requirement, the file-based products are the only ones that answer it cleanly.
Who is actually running this#
Named production references are thin across the whole category, which makes the specific ones worth more than they look. Cognee names Bayer for scientific research workflows, the University of Wyoming for policy-document analysis with page-level provenance, and dltHub, alongside "70+ companies" and pipeline growth from about 2,000 runs to more than a million in a year. Letta publishes a Bilt case study describing over a million agents in production. Mem0 publishes usage rather than customers: 35 million API calls in the first quarter of 2025 rising to 186 million in the third. SuperMemory claims more than 100,000 organisations, unaudited. Zep's own testimonials are unnamed. And one absence is worth stating plainly, ours included: no vendor on this page publishes a reference customer who migrated off Zep, so there is no case study to read before you become the first one.
Ingestion breadth#
Zep takes message, text and JSON, caps a single graph write at 10,000 characters, and states that it "does not process text directly from links or files". There is no image path and no audio path. JSON is the documented route for business records, so CRM rows, tickets and billing events do go in, so the accurate criticism is not that Zep is text only. It is that Zep exposes no hosted connectors to source systems, no image path and no audio path. Files do reach it, through zep-ingest, Zep's own Python package, whose loaders read documents, transcripts, email, Slack exports and CSV or JSON records from a path or a glob and submit them as episodes. Cognee and SuperMemory are the breadth leaders; Cognee lists code in 30 languages, text, CSV, images, audio, video, PDF, Office, HTML, email and EPUB. Synap accepts the common document and image formats plus audio through speech to text, with seven first-party connectors.
Deletion, and what each alternative actually reaches#
Zep's cascade is documented per object, as above. The alternatives: Mem0 deletes by filter on its identifiers, queues the work, states that this satisfies user erasure, and does not document what happens inside the entity store or the history log. Cognee's forget() reaches graph nodes, edges, vector embeddings and the session cache without spending a model call, keeps nodes another document still references, and leaves raw files unless you prune. SuperMemory's forget is a soft delete that marks a memory forgotten, with no hard-delete page found; deleting a container tag removes everything in it. Hindsight is append-only with no endpoint to permanently delete an individual memory, only invalidation that hides it, which is the wrong shape if erasure is your reason for shopping. Letta's memory is a git repository, so deleting from history is your git problem. Synap soft-deletes out of retrieval immediately and purges active stores within 24 hours, hard-deletes from backups within 30 days on request, and destroys the per-account key for protected values so backups become unreadable. No vendor here issues anything like a deletion certificate; proof is an audit log plus a re-query.
Observability#
The claim worth being precise about is that nothing matches Zep's Ingestion Traces specifically, not that nothing else is observable. Mem0 gives a per-memory history endpoint returning the event type with the old and new text and the triggering messages, plus a project event feed and a dashboard on both the Platform and the self-hosted stack. Hindsight ships a Control Plane with recall traces and an audit trail on invalidation. Cognee has an optional provenance ledger, a contradiction-detection flag, a Sessions view for agent runs and a graph visualiser. SuperMemory exposes request and error logs and versions every update. Synap logs every action with a principal and a correlation identifier, retained 90 days and exportable on Enterprise, and shows what a statement replaced and why. What none of them does is explain why a particular extraction stage made a particular decision, which is the thing Zep's traces do.
Maturity and vendor risk#
The number worth acting on is not stars or funding but whether the vendor has already taken something away, because that is the behaviour that repeats. Two here have: Zep deprecated Community Edition, and Mem0 removed graph memory from its open SDK. Price that base rate into whichever you choose, keep your raw source data so you can leave, and read the rest of this paragraph as context rather than as a ranking. Mem0: Apache 2.0, roughly 63,000 stars, $24 million announced October 2025, packages shipped September 2026. Cognee: Apache 2.0, roughly 30,000 stars, $7.5 million seed announced February 2026, shipped September 2026. Graphiti: Apache 2.0, roughly 29,000 stars, package shipped September 2026; Zep itself publishes no funding round. SuperMemory: MIT repository, roughly 30,000 stars, $3 million. Letta: Apache 2.0, $10 million seed from September 2024, with its main repository now a landing page pointing to a second one. Hindsight: MIT, inside Vectorize, whose last announced round is a $3.6 million seed from October 2024. LangMem: MIT, roughly 1,700 stars, last release October 2025, which is the oldest in this set.
MCP servers and coding agents#
If part of why you are moving is that you want memory inside Claude Code or Cursor, most of the field now answers. Zep runs a hosted Memory MCP Server with twelve tools, sold by seat at one seat on Free, five on Flex and fifteen on Flex Plus, and Graphiti ships an open-source MCP server in-repo. Cognee's cognee-mcp runs locally over HTTP, server-sent events or stdio with plugins for Claude Code, Codex and Cursor, and it is included in the free tier. SuperMemory hosts one with plugins for Claude Code, Cursor, Codex and OpenCode. Hindsight has a built-in endpoint per memory bank. Mem0 hosts one with eleven tools, free with an API key. Synap's hosted endpoint exposes four tools and holds no secrets, taking the API key per request. Letta is the exception and the reason is structural: its SDK is an MCP client rather than a server, because Letta is the coding agent.
What each vendor gates behind a paid tier#
The gates are the most decision-relevant lines on a pricing page and they are rarely where comparison tables put them. Zep gates the whole compliance and governance package: the HIPAA BAA, bring-your-own-key, bring-your-own-cloud, and Ingestion Traces, which are unavailable on Free, with the debug window at 60 minutes on standard plans and 24 hours on Enterprise. Mem0 gates graph memory and entity linking, Dream's synthesis, multi-project support and analytics to Pro at $249, and audit logs, on-premise deployment and single sign-on to Enterprise. Cognee gates the managed connectors and code indexing to Standard, and gates bi-temporal memory with conflict resolution, provenance on every answer and per-user personalisation to the Enterprise engagement, which is the single most important gating fact on this page for anyone treating Cognee as the temporal-model replacement. SuperMemory gates plugins to $19, the Gmail connector to $100, and SOC 2, the HIPAA BAA and the self-hosted option to $399. Hindsight gates nothing in the open build by its own claim, except that the deeper tier of its write-path filtering is a cloud enterprise feature. Synap's tiers differ on volume and service level with every plan getting every memory capability, the exceptions being bring-your-own-key from Pro and the enterprise service items. Graphiti, Letta's harness, LangMem and EverOS gate nothing because there is nothing above them to gate.
Compliance#
The criterion here is binary rather than comparative: either a name on your contract requires an attestation or it does not, and if it does, this axis ends the conversation before the architecture starts. Ranked on what is actually held: Zep, then SuperMemory at $399, then a gap. Zep is SOC 2 Type II with a HIPAA BAA on Enterprise, bring-your-own-key, bring-your-own-cloud, policy retention, legal hold and audit retention to seven years. SuperMemory lists SOC 2 and a HIPAA business associate agreement from its $399 Scale tier, without naming the report type on that page. Vectorize is SOC 2 Type II at company level for Hindsight. Mem0 states SOC 2 Type I with HIPAA described as "ready". Cognee holds neither SOC 2 nor ISO 27001 and says so. Letta publishes no security page. Maximem Synap has SOC 2 Type II in progress with a Q3 2026 target, GDPR and CCPA compliance with a DPA, HIPAA not certified, and two regions.
Benchmarks, with conditions#
Read this as a warning about the genre. Zep publishes 94.7 percent on LoCoMo and 90.2 percent on LongMemEval. Which conditions you get depends on which Zep page you read: the performance page gives the two figures bare, while the research page names gpt-5.4 as both reader and judge, gives per-category breakdowns and states the question counts, and omits only the run date. Its January 2025 paper is the origin of the 63.8 percent figure that half the category still quotes: that is Zep's own result with gpt-4o-mini on the LongMemEval-S subset of roughly 115,000 tokens, against a full-context baseline of 55.4 percent, and the same paper's gpt-4o figure is 71.2 percent against a baseline of 60.2. Every page that labels 63.8 percent as "GPT-4o" is wrong, and every page that calls it third-party reported is also wrong, including the earlier version of this one. Zep's paper also published its notebooks: they are in the getzep/zep-papers repository under kg_architecture_agent_memory/, two of them, covering DMR and LongMemEval, which makes "Zep has no open harness" false as well.
Mem0 publishes 94.4 percent on LongMemEval and 92.5 on LoCoMo for its Platform at a top-200 budget, with harness defaults it does not restate, while the only independent run of its open-source SDK scored 49.0 percent using different models a month before its algorithm changed. Hindsight has two figures from two runs. Cognee publishes BEAM only. SuperMemory's headline is a recall metric. Evermind publishes LoCoMo 93.05 and LongMemEval 83.00 with GPT-4.1-mini. Synap publishes 92 and 93.2 with gpt-5-mini on both sides, single run, on a public harness.
It is worth knowing what each instrument measures, because the choice of benchmark is itself a claim. LongMemEval is 500 questions across five abilities, information extraction, multi-session reasoning, temporal reasoning, knowledge updates and abstention, including 30 false-premise items the system is supposed to refuse, with a gpt-4o reference judge the authors report at over 97 percent agreement with human experts. LongMemEval-S is its long-context subset at roughly 115,000 tokens per question, which is the variant Zep's paper used. LoCoMo is 1,540 questions over persona-grounded conversations once the adversarial category is excluded, and independent analysis puts a roughly 6 percent ground-truth error rate on it. BEAM is the long-horizon instrument, running from 100,000 to 10 million tokens, which is where accuracy degradation shows up and where Cognee and Mem0 both publish. HaluMem measures hallucination rather than recall. Match the instrument to your risk: if your failure is a stale fact, look at knowledge-update scores; if it is a long-running agent, look at BEAM; if it is a confidently wrong answer, no accuracy number on this page tells you anything and HaluMem is closer.
Nothing in that paragraph is comparable with anything else in it. Demand six conditions per cell before you weight any of it: benchmark and variant, question count, answer model, judge model, run date, and who ran it.
08Migrating
Migrating off Zep#
This is the part of the decision most alternatives pages skip, and it has one fact at the centre of it.
Zep publishes no export endpoint. Its documentation sitemap holds more than three hundred URLs; searched today, not one matches export, backup, download, dump or migrate, and the only migration guide that exists runs inbound, from Mem0 to Zep. So an export is something you write. Zep's own copy nominates the tool for the job when describing its list methods: "reach for these methods when you are not answering a question but enumerating data: rendering an entity browser or a facts table in a UI, exporting a graph, or auditing what a graph contains."
The recipe. For each user or graph, walk episodes with graph.episode.list_by_user_id or list_by_graph_id, following the forward cursor returned in the Zep-Next-Cursor response header; then walk nodes, edges, observations and thread summaries the same way through their get_by_user_id and get_by_graph_id methods; pull raw conversation with thread.get_messages_of_a_thread. Two operational details that will cost you a day if you find them late. Episode page sizes are capped at 50 when you pass an explicit limit and default to 100 when you do not. And an API key with active attribute constraints loses source_node_name, target_node_name, source_node_labels and target_node_labels on every edge read, so run the export under a key without them or your edges come back as bare identifiers. Also note that graph.get_subgraph, the one call that looks like it would hand you a graph in one request, is explicitly disclaimed for this: "it is built for agent exploration and visualization, not for exporting a graph, use the list methods for that."
Migrate the source, not the graph. An episode, in Zep's own definition, is "any single data object you send to Zep: a chat message, JSON payload, or block of text", and every node, edge, observation and summary is derived from episodes by extraction. That makes the episode list a lossless record of what you sent and the graph a reproducible function of it, reproducible by a different vendor with a different result. So pull every episode with its created_at and metadata, park it in your own store as the system of record, and replay it into the new vendor in original chronological order. Chronology is not optional: Zep states that created_at "is used in our fact invalidation process", and every vendor that models change over time builds a different history from events replayed out of order. Carry your document_id groupings where you have them, because that grouping is what let extraction resolve pronouns across chunks, and losing it degrades extraction on the receiving side too. Then use the edge list as a validation set rather than as data: for each Zep fact with a valid_at, check whether the new store answers the same question after replay. The facts that fail are your migration report. Keep the episode archive afterwards; it is the only vendor-neutral artefact you will own, and it makes the next move cheap.
What has no destination. Moving into a flat statement store, episodes and edges-rendered-as-sentences survive. What does not: the typed graph itself, meaning source and target adjacency, your custom ontology's entity and edge labels, node communities and multi-hop paths; and one of the two time axes, because a store with no notion of "when we learned this" cannot hold created_at and expired_at alongside valid_at and invalid_at. Budget for losing those rather than discovering it in week three.
What the replay costs on the receiving side. Re-ingesting is a fresh extraction bill wherever you land, and the shape differs by meter. Take 100,000 episodes of about 350 bytes, which is roughly 8.8 million tokens, as a one-off backfill. On Mem0 that is 100,000 add requests, which exceeds Starter's 50,000 entirely and consumes a fifth of a Pro month, so about $49.80 of the $249 if you amortise it, and it cannot be done on a Starter plan at all. On Cognee Standard at $1.00 per million tokens it is about $8.80. On SuperMemory at $0.005 per thousand plain-text memory tokens it is about $44. On Synap at the two-credit ingestion floor it is 200,000 credits, which is about $350 at the display rate, or $249 plus 50 overage blocks on Pro, roughly $336.50. The shape lesson is the one that matters more than the ranking: a backfill is exactly the workload that exhausts a free tier metered on writes, and it is the cheapest on whichever vendor meters tokens rather than calls.
09Running the bake-off
Running the bake-off#
Two weeks, and the shape matters more than the length. Take fifty of your own conversations and split each so that facts established early are needed late, which is what both public benchmarks do. Run Zep and your candidate with the same answer model and the same judge, keep the judge blind to which system produced the context, and report error bars.
Then measure the write path, because it is the half that comparisons skip and the half that fails in production. The clearest statement of this in the whole category comes from one of the incumbent pages rather than from a vendor: retrieval is only half the problem, and production teams also have to ask how facts are extracted, how conflicts are resolved, how stale memories are retired, how sensitive data is deleted, and how tenant permissions are preserved. So measure: update correctness, by asking a question after a contradiction; abstention on a false premise; write-to-readable latency, which on Zep is minutes rather than milliseconds; tokens injected per turn; cost per stored turn at your actual read-to-write ratio; and cross-tenant leakage, by querying one user for another user's fact. Our eval harness is MIT-licensed and covers the accuracy half end to end with an interface for adding providers; the write-path half is a week of your own engineering and no vendor page will do it for you.
10Correction notice
A correction notice on the earlier version of this page#
The version of this page published in June 2026 made six claims about Zep that are wrong. They are listed here with what is actually true, because a page that argues about evidence should be held to its own standard, and because leaving them uncorrected would be worse than having made them.
- It said Zep's 63.8 percent LongMemEval score was "third-party reported". It is Zep's own figure, from Zep's own paper, January 2025, with gpt-4o-mini.
- It compared Maximem Synap's 92 percent against Zep's 63.8 percent "on the same LongMemEval conditions". They are not the same conditions and no honest comparison of the two exists. Zep's paper used gpt-4o-mini with BGE-m3 embedding and reranking on the LongMemEval-S subset at roughly 115,000 tokens per question, with the top 20 edges and entity nodes retrieved, in experiments run between December 2024 and January 2025, and it judged answers with GPT-4o using the question-specific prompts published by the LongMemEval authors. Synap's used gpt-5-mini as both answer model and judge on the full 500-question set in a single run. The answer models differ, the judge models differ, the question sets differ, and the run dates are nineteen months apart.
- It labelled Synap's own score "independently verified". It was not. It was reproduced on our own open harness, which is a different and weaker claim, and it is the claim we make everywhere now.
- It said Zep does not publish P50 retrieval latency. It does, on both benchmarks: Zep's research page gives 87 ms p50 with 155 ms p95 on LoCoMo and 104 ms p50 with 162 ms p95 on LongMemEval, and its performance guide adds sub-200 ms context retrieval regardless of graph size. Zep publishes more of the read path than any other vendor on this page, and our earlier version said the opposite.
- It said Zep has "4+" framework integrations and a Python-only SDK. Zep's agent-framework documentation names 14 framework integrations, and its SDK reference covers Python, TypeScript and Go.
- It said Zep has no open-source eval harness. Zep published its evaluation notebooks in the
getzep/zep-papersrepository.
Two further corrections concern our own claims rather than Zep's. The page published "15ms P50" retrieval latency; the figure we stand behind is an in-conversation P75 under 15 milliseconds, served from a pre-fetched in-process cache, with a cold-retrieval P95 of 450 milliseconds that is a target and not a measurement. And it published a count and enumeration of Synap's memory types, which is not something we publish, because the set is generated per agent rather than fixed.
Looking for a Zep alternative? Start with Synap.
Free tier, no credit card. Open-source SDK and a published eval harness.
Frequently asked questions
It depends which of eight reasons pushed you out, and the answer differs for each. If you must self-host, evaluate Graphiti first, because it is Zep's own Apache 2.0 engine and keeps the whole temporal model, at the cost of every managed feature and of Zep's published performance figures, which do not transfer. If the ingestion bill is the problem, batch your episodes before you switch, because ten turns in one episode costs four credits instead of ten. If you need images or audio, Zep has no path for either, so most alternatives will do; documents already reach it through zep-ingest. If you need a tenant rung above the user, two designs have a real tenant object. And if you want the flat-statement side of that split with a write-time tenant ladder, plus documents, images and audio in the same store, Synap is ours and it is one of the two. And if you need bi-temporal validity or SOC 2 Type II with a HIPAA business associate agreement, the honest answer is to stay.
Not the product. Zep Community Edition is no longer supported, in its own repository's words, and its code has been moved to a `legacy/` folder, so the self-hostable piece is Graphiti, the Apache 2.0 engine, which requires you to run Neo4j 5.26, FalkorDB 1.1.2 or Amazon Neptune with an OpenSearch Serverless collection, plus an LLM provider, an embedding provider and a reranker. Self-hosting inside your own cloud is a Zep Enterprise arrangement called bring-your-own-cloud.
No. Its documentation sitemap holds more than three hundred URLs and none of them matches export, backup, download or dump, and the only migration guide runs inbound from Mem0. An export is a script you write against the cursor-paginated list methods for episodes, nodes, edges, observations and thread summaries, and Zep's own docs nominate those methods for exactly that job. Two details to plan for: episode pages cap at 50 with an explicit limit, and an API key with attribute constraints returns edges without endpoint names or labels.
Read today, Free gives 10,000 credits a month, Flex is $125 for 50,000, Flex Plus is $375 for 200,000, and Enterprise is custom, with 17 percent off for annual billing. A credit buys 350 bytes of ingestion and retrieval costs nothing, which makes Zep the cheapest read path in this comparison and an expensive place to put a document corpus. Whether it is expensive for you is entirely a function of your read-to-write ratio, so compute that before comparing entry prices, and note that the commonly repeated claim that Zep's free tier is 1,000 credits does not match its pricing page.
Graphiti, because it is the same engine, with `created_at`, `valid_at`, `invalid_at` and `expired_at` on every fact. Cognee has a lighter single-field version in its open build and gates the full bi-temporal model with conflict resolution to its Enterprise engagement. Nothing else in this comparison models when a fact stopped being true with named fields; the alternatives answer point-in-time questions through a change history instead, which is enough for an audit trail and not enough for a query.
No. That is Zep's own January 2025 paper result with gpt-4o-mini on the LongMemEval-S subset; the same paper reports 71.2 percent with gpt-4o. Zep's current figures are 90.2 percent on LongMemEval and 94.7 percent on LoCoMo, stated bare on its performance page and stated on its research page with gpt-5.4 named as both reader and judge, per-category breakdowns, a statement that it ran all 500 LongMemEval questions and all 1,540 LoCoMo questions, and 451 and 1,459 of them answered correctly, with only the run date missing. Any comparison still quoting 63.8 percent as Zep's current score, or attributing it to a third party, or labelling it "GPT-4o", is wrong on at least one count.
Sources: every vendor page, repository, paper and framework document cited inline was retrieved on 12 September 2026. Maximem product statements come from Synap's published documentation. Corrections to any figure are welcome and will be applied with the previous value left visible, as the correction notice above does.