All head-to-heads

Directory · head to head

Cognee vs Mem0

How their memory differs, from each one’s entry in the directory.

In the directory, which sorts systems by whose memory they hold, Cognee is filed under “Building blocks” (also “Work & project memory”); Mem0 under “Building blocks” (also “Memory about you”, “Work & project memory”). Cognee is open source and can keep memory on your machine, on a server you run or in its maker's cloud; Mem0 is partly open source and can keep memory on a server you run or in its maker's cloud. Both list Python, Claude Code, Codex and Cursor among what they work with. Of the 11 mechanisms of human memory, Cognee has 3 built (2 in depth), 6 partly, 2 not, 1 in development; Mem0 has 7 built, 2 partly, 2 not. Both have built Association, Consolidation (Mem0: cloud only) and Gist (Mem0: cloud Pro). Only Mem0 has built Forgetting (cloud, opt-in), Interference (cloud only), Retrieval (cloud, opt-in) and Reconsolidation (cloud only). Both have partly built Salience and Schemas. Neither has built Emotion or Prospective.

Measured against human memory

Cognee3 built (2 in depth), 6 partly, 2 not

Mem07 built, 2 partly, 2 not

built today in developmentLonger = more of it built: a little, partly, built, in depth

Side by side

EncodingStorageRetrievalTransformationbuiltpartlyin developmentnot builtnot known
CogneeMem0
At a glance
Whose memoryBuilding blocksBuilding blocks
Memory livesYour machine, your server, or Cognee CloudMem0's cloud, or your own server
API keysNone to store and search; an AI model key for written answers and lessonsA Mem0 key (cloud) or an AI model key (self-hosted)
Works withPython SDK, Claude Code, Codex, Cursor (MCP), OpenClaw, REST APIPython & TypeScript SDKs, Claude Code, Cursor, Codex, LangGraph, CrewAI
LicenseOpen sourceApache-2.0Partly open sourceApache-2.0
PriceFree to self-host; Cloud free tier, then $1 per 1M tokensFree tier; from $19/mo
Under the hood
Who writes memoriesWhatever you or your app sends it. An AI (or a small local model) extracts the entities and links; after sessions, an AI curator writes the lessons.A separate AI call reads each conversation and pulls out short facts. The AI you talk to doesn't write them.
Where they're keptA graph database, a vector database and SQLite, all embedded by default (Ladybug, LanceDB), or Postgres, Neo4j and others on a server.A vector database (about 25 to choose from; Postgres with pgvector self-hosted), plus the names each fact mentions.
How they're foundBy meaning and keywords over passages, then by walking the graph to connected facts. It picks the search type for you unless you choose.By meaning, by keywords, and by shared names, combined into one ranked list.
Extra AI callsYes, with an AI key: extraction on every add, a call per written answer, and more in improve() and the optional contradiction check.Yes: an AI call to pull out facts on every add, plus embeddings. Dream adds more on the cloud.
Measured against human memory
CogneeMem0
Of the 113 built (2 in depth), 6 partly, 2 not · 1 in development7 built, 2 partly, 2 not
Encoding
SalienceDecides what's worth keeping, and how much, as a memory is written.

partly built

You can mark something as more or less important when you save it; otherwise everything gets the same middle weight. source

partly built

An AI decides what counts as a fact, and you can say what to include or skip. There's no importance score. source

EmotionGives memories written with feeling more weight.

not built

No emotional weighting is documented.

not built

No emotional weighting in the current version.

Storage
ForgettingLets unused memories fade over time on its own.

partly built

Nothing fades unless you turn it on: an opt-in cleanup can delete documents nobody has searched for in a set time, and personal preference weights drift back to neutral. source

builtcloud, opt-in

Once it's switched on for a project, unused memories slowly sink in search results, though nothing is deleted. You can also set expiry dates. source

InterferenceWhen a new memory closely matches an old one, notices and lets the newer one win.

partly built

An opt-in check flags new facts that contradict stored ones. Only for relationships you declare single-valued does the newest get marked current and the older one tagged as replaced. source

builtcloud only

Dream marks an older fact as replaced when a newer one contradicts it. Self-hosted, both are kept. source

Retrieval
RetrievalRemembering something makes that memory stronger.

partly built

Rating an answer strengthens or weakens the memories it used, but merely using a memory doesn't, and the weight is off in ranking by default. source

builtcloud, opt-in

Each time a memory comes up in a search, it gets a small boost, once decay is switched on for the project. source

AssociationLinks memories, so recalling one brings its neighbours.

built

Everything lives in a graph, and search pulls in the facts directly connected to what it found. An optional pass links related things that weren't connected. source

built

Memories that mention the same person or thing are linked, and naming it in a question brings them up. source

ProspectiveBrings a memory back at the right time without being asked.

not built

It answers time-based questions when asked, but nothing comes back on its own at a set time. source

not built

It understands “upcoming” when you ask, but nothing comes back on its own. source

Transformation
ConsolidationReworks memories between sessions: strengthening, merging, reorganising.

built

After a session, improve() runs in the background by default: it folds the chat into the graph, applies ratings and distills lessons. Merging duplicate entities is a separate opt-in pass. source

builtcloud only

Dream merges duplicates in the background, and a weekly pass (Pro plan) sums things up. source

ReconsolidationCorrects a memory when it's contradicted, and keeps what it used to say.

partly builtin development

Outdated facts are kept rather than overwritten, closed with an end date or tagged as replaced, but only when your code closes them or you declared the relationship. source

Planned: search will take closed facts into account, so an outdated fact stops turning up in results.

builtcloud only

A replaced memory stays visible and is linked to what replaced it. source

GistTurns many specific moments into general knowledge.

built

An AI curator turns a session's guidance into lasting lessons, checked against what's already known, that later sessions recall. It needs an AI key. source

builtcloud Pro

Dream writes “pattern memories” from things that keep coming up, kept alongside the originals. source

SchemasForms beliefs about people and projects, and weighs new facts against them.

partly built

Each user can get a preference record (off by default) that nudges what ranks first, but new facts aren't weighed against it. source

partly built

User profiles (beta) keep a summary of each person, but new facts aren't weighed against it. source

The same table on the compare page, where you can add other systems.

Everything above comes from the two entries in the directory’s public data: Cognee checked 2026-09-29; Mem0 checked 2026-09-25.

Something wrong? Edit on GitHub: Cognee · Mem0, or tell us what to fix.