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
Side by side
| Cognee | Mem0 | |
|---|---|---|
| At a glance | ||
| Whose memory | Building blocks | Building blocks |
| Memory lives | Your machine, your server, or Cognee Cloud | Mem0's cloud, or your own server |
| API keys | None to store and search; an AI model key for written answers and lessons | A Mem0 key (cloud) or an AI model key (self-hosted) |
| Works with | Python SDK, Claude Code, Codex, Cursor (MCP), OpenClaw, REST API | Python & TypeScript SDKs, Claude Code, Cursor, Codex, LangGraph, CrewAI |
| License | Open sourceApache-2.0 | Partly open sourceApache-2.0 |
| Price | Free to self-host; Cloud free tier, then $1 per 1M tokens | Free tier; from $19/mo |
| Under the hood | ||
| Who writes memories | Whatever 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 kept | A 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 found | By 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 calls | Yes, 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 | ||
| Cognee | Mem0 | |
| Of the 11 | 3 built (2 in depth), 6 partly, 2 not · 1 in development | 7 built, 2 partly, 2 not |
| Encoding | ||
| SalienceDecides what's worth keeping, and how much, as a memory is written. | You can mark something as more or less important when you save it; otherwise everything gets the same middle weight. source | 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. | No emotional weighting is documented. | No emotional weighting in the current version. |
| Storage | ||
| ForgettingLets unused memories fade over time on its own. | 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 | 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. | 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 | 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. | 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 | 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. | 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 | 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. | It answers time-based questions when asked, but nothing comes back on its own at a set time. source | It understands “upcoming” when you ask, but nothing comes back on its own. source |
| Transformation | ||
| ConsolidationReworks memories between sessions: strengthening, merging, reorganising. | 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 | 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. | 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. | A replaced memory stays visible and is linked to what replaced it. source |
| GistTurns many specific moments into general knowledge. | 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 | 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. | Each user can get a preference record (off by default) that nudges what ranks first, but new facts aren't weighed against it. source | 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.