mrkeyoor.com_
Thu 17 Sept 20:41 UTC
AI Toolsevaluationupdated 27 Aug 2026

mem0 review

Mem0 is a memory layer for AI assistants and agents. It extracts facts from conversations, stores them through a chosen vector database, and retrieves relevant details so an application can remember a user across sessions.

+427stars / 7d
Verdict

Our Mem0 run installed 62 packages in 30 seconds and built in 7 seconds, but the suite ended with 36 failures and 117 collection or setup errors, so adoption should begin with backend-specific tests. It is a strong candidate for a team that wants one memory API across several agent stacks and accepts the work of choosing models, storage, and deployment. Do not treat its broad provider list or managed-platform benchmark table as proof that your chosen open-source combination is correct.

We ran it

Lab card: what happened when we ran mem0Screenshot of mem0 (mem0.ai)
Install✓ · 30s62 packages · 158 MB
Build✓ · 7s
Tests✗ · 180s722 passed · 36 failed · 20 skipped · 117 errors of 875 (pytest)
Known vulns0(pip-audit)
Repo1791 files~214,875 lines of source · 49.4 MB · 31 CI workflows · tests dir

Answers from our run

Does mem0 build from source?

Dependencies installed in 30 seconds (62 packages), and the build succeeded in 7 seconds. We cloned commit 8d5b786 into a clean Debian container with 3 CPUs and no project-specific setup.

Do mem0's tests pass?

Not all of them: 722 of 875 passed and 36 failed when we ran the project's own test command (pytest), with 117 collection errors. Some failures need services or credentials a bare container does not have.

Does mem0 have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use mem0?

Developers expecting an offline library with no model services: the README says Mem0 needs an LLM, defaults to OpenAI models, and uses an embedding model too.

What are the alternatives to mem0?

Zep, Letta, LangMem. Our Mem0 run installed 62 packages in 30 seconds and built in 7 seconds, but the suite ended with 36 failures and 117 collection or setup errors, so adoption should begin with backend-specific tests.

Setup3/530-second install, but models and storage still need configuration
Docs4/5Clear quick starts and deployment choices, with a cloud-heavy pitch
Community5/564,139 stars and issue activity through August 27, 2026
Maturity3/5Broad integrations, but our suite and current storage issues failed checks

Discussed on

  1. hnShow HN: Mem0 – open-source Memory Layer for AI apps201 points
  2. hnShow HN: Mem0 Browser Extension: Shared Memory Across ChatGPT,Claude,Perplexity34 points
  3. hnShow HN: OpenMemory – Make your MCP clients more context-aware8 points
  4. hnShow HN: Persistent memory for Claude Code with self-hosted Qdrant and Ollama8 points

Who it’s for

Teams building assistants that need durable user, session, or agent memory.
Python or TypeScript developers willing to choose and operate an LLM, embedding model, and vector store.
Organizations that want either an Apache-2.0 library, a self-hosted server, or a managed service behind a similar interface.
Agent developers who need memory integrations for frameworks such as LangGraph, CrewAI, Strands, or coding assistants.

Who it’s NOT for

Developers expecting an offline library with no model services: the README says Mem0 needs an LLM, defaults to OpenAI models, and uses an embedding model too.
Teams that need every supported vector backend to behave identically without their own acceptance tests: open issues 7130 and 7117 report wrong Supabase scoring and inconsistent FAISS state after a failed load.
TypeScript teams with large memory sets that cannot tolerate duplicate facts: issue 7123 reports a fixed top-10 deduplication search and repeated memories in a larger corpus.
Buyers who assume the published benchmark table describes the open-source SDK exactly: the README says those results include proprietary managed-platform optimizations.

Setup reality

Our sandbox installed Mem0 in 30 seconds, adding 62 packages and using 158 MB on disk. The build succeeded in 7 seconds. Tests exited with code 1 after 180 seconds: 722 passed, 36 failed, 20 skipped, and 117 collection or setup errors were reported out of 875.

Basic use needs an LLM and an embedding model. The defaults are OpenAI's gpt-5-mini and text-embedding-3-small, so that path needs credentials; other providers and vector stores require their own packages, services, and configuration.

The log showed missing chromadb and FAISS libraries in score-normalization tests, plus failures and setup errors in memory pipeline tests. Our scan found no Dockerfile, although the README documents a separate self-hosted server flow using Docker Compose. Pip-audit found 0 known vulnerabilities.

Mem0 adds durable facts to assistants that otherwise forget

Mem0 sits between an application and the services that turn conversation into searchable memory. It sends messages to an LLM for fact extraction, embeds the resulting memories, writes them to a vector store, then searches those memories when the user returns. The library supports user, agent, run, and application scopes. That makes it useful for a support bot that should remember an earlier ticket or a personal assistant that should retain preferences without feeding every old conversation back to the model.

The repository is much larger than its short Python example suggests: our checkout at commit 8d5b786 contained 1,791 files, about 214,875 lines of source, and occupied 49.4 MB. It includes Python and TypeScript SDK work, server code, framework integrations, CLI tools, migration helpers, and agent skills. A team should decide which surface it is adopting before using repository size or feature count as evidence that every path has equal depth.

The default path still depends on OpenAI and a vector store

Calling Memory() does not create intelligence from local code alone. The README says Mem0 requires an LLM, with gpt-5-mini as its default, and uses text-embedding-3-small for embeddings. That means the shortest example needs an OpenAI credential and sends relevant content to that provider. Mem0 supports other model and storage choices, but each alternative brings its own package, endpoint, credential, and failure modes.

Hybrid search adds another layer. The README asks users to install the NLP extra and a spaCy model for BM25 keyword matching and entity extraction. The April 2026 algorithm also searches semantic, keyword, and entity signals in parallel, then combines their scores. Those features are appealing when plain nearest-neighbor retrieval misses names or dated facts, but they increase the number of components a production test must cover.

What happened when we ran it

Our sandbox installed 62 packages in 30 seconds and used 158 MB on disk. The build succeeded in 7 seconds. Pip-audit reported 0 known vulnerabilities in the installed dependency set. Those are good results for getting the checked-out code into a runnable state in a fresh Python 3.12 Debian container with 3 CPUs and 8 GB of RAM.

The test command did not finish cleanly. It exited with code 1 after 180 seconds, with 722 tests passing, 36 failing, 20 skipped, and 117 collection or setup errors reported out of 875. The final pytest summary recorded 173.50 seconds of test execution. A large passing count is useful evidence, but the failed command is still the result a maintainer would face in the same sandbox.

The log tail identifies several concrete boundaries. ChromaDB score-normalization tests raised an ImportError asking for chromadb; FAISS tests asked for a FAISS package. Other errors named entity-boost parallelism, embedding-count guards, and session-scope wiring. The supplied log does not prove one shared cause, so we would not dismiss all 117 errors as optional extras or blame the container. The safe conclusion is that commit 8d5b786 did not pass its complete suite in our environment.

Three deployment choices have different operating costs

The README separates the product into a library, self-hosted server, and cloud platform. The Python library is the quickest route for a prototype. The server adds authentication, an admin setup flow, API keys, a dashboard, and Docker Compose. The hosted platform removes server operations but changes the trust, billing, and data-handling decision. These are distinct products around the same memory idea, not interchangeable install commands.

Our repository scan found 31 CI workflow files and a tests directory, but no Dockerfile. The README sends self-hosters into the server directory and recommends make bootstrap, or Docker Compose followed by a browser wizard. Upgrades from builds without authentication need an admin key, admin registration, or an explicit local-development bypass. Anyone operating the server should rehearse that upgrade path with a copy of stored memories before changing a live deployment.

Storage correctness deserves tests with your chosen backend

A memory service can return a syntactically valid result that contains the wrong fact. Open issue 7130 reports that the Supabase adapter applies a cosine conversion to other configured distance measures, which can drop or misorder matches. Issue 7117 reports that a failed FAISS persistence load can leave its index and document mapping out of sync, including a reproduction where a search returns another memory as a perfect match. Both concern correctness rather than cosmetic behavior.

The TypeScript path has its own warning. Issue 7123 reports that add() searches only 10 existing memories for deduplication, with no similarity threshold, and describes repeated facts in a larger corpus. A related pull request was closed on August 26, 2026, but the issue remained open when fetched. Before launch, seed the intended backend with conflicting, dated, duplicated, and corrupted records, then assert which memory is returned and what happens after restart.

The managed benchmark is not an open-source guarantee

Mem0 publishes April 2026 results for a new ADD-only extraction algorithm with entity linking, temporal reasoning, and combined retrieval signals. The README also states that the measured stack is the managed platform and includes proprietary optimizations unavailable in the open-source SDK. That disclaimer matters. The table can motivate an evaluation, but it cannot answer how a local model, chosen embedder, and self-hosted database will perform on your conversations.

Health signals are current rather than quiet. GitHub showed 64,139 stars, 694 combined issues and pull requests, and a last push on August 26, 2026. The latest release endpoint returned the August 24 Mem0 Strands integration, while issue and pull-request activity continued on August 27. Mem0 is worth a controlled trial for durable agent memory. Make retrieval correctness, deletion behavior, provider cost, and recovery from damaged storage part of that trial, because the 30-second install settles none of them.

Alternatives

ProjectWhat it isPick it when
ZepA memory and context system centered on temporal knowledge graphs for agents.pick this instead when graph-based temporal context is the main requirement and its server model fits your stack.
LettaA stateful agent platform that treats editable memory as part of the agent runtime.pick this instead when you want an agent server with memory built into the runtime rather than a memory layer for your own application.
LangMemA small toolkit for extracting and managing long-term memories in LangGraph applications.pick this instead when your application already uses LangGraph and a narrower memory toolkit is enough.

What people are saying

  1. [producthunt] Mem0

Sources

  1. Mem0 README
  2. Mem0 repository facts
  3. Mem0 Strands integration release
  4. Supabase score conversion issue 7130
  5. FAISS persistence issue 7117
  6. TypeScript deduplication issue 7123

More ai tools reviews

rowboat · skills · superpowers-zh · yolov5 · eve · MemOS · the whole board →