mrkeyoor.com_
Tue 03 Nov 07:17 UTC
AI Toolsevaluationupdated 29 Sept 2026

mem0 review

Mem0 is a memory layer for assistants and agents that stores useful facts from earlier conversations and retrieves them later. It gives developers a Python or TypeScript library, a self-hosted server, and a hosted service, so an app can remember a user without stuffing the full chat history into every prompt.

+283stars / 7d
Verdict

Our Mem0 run installed 76 packages in 37 seconds and built in 14 seconds, but the 987-test run ended with 25 failures and 93 collection or setup errors. Use it when you need a well-documented memory layer across Python, TypeScript, self-hosting, and cloud, and you can gate your exact provider and vector-store combination with integration tests. Skip it when deletion semantics or compound filters must be trusted without that extra verification.

We ran it

Lab card: what happened when we ran mem0Screenshot of mem0 (mem0.ai)
Install✓ · 37s76 packages · 210 MB
Build✓ · 14s
Tests✗ · 417s869 passed · 25 failed · 28 skipped · 93 errors of 987 (pytest)
Known vulns0(pip-audit)
Repo1896 files~251,432 lines of source · 51 MB · 34 CI workflows · tests dir

Answers from our run

Does mem0 build from source?

Dependencies installed in 37 seconds (76 packages), and the build succeeded in 14 seconds. We cloned commit 94c3fe9 into a clean Debian container with 3 CPUs and no project-specific setup.

Do mem0's tests pass?

No. The project's own test command finished in 417 seconds and reported 869 passed, 25 failed, 28 skipped, 93 collection errors (pytest).

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?

Buyers who expect the open-source package to reproduce the README's headline scores exactly: the README says those results use proprietary managed-platform optimizations.

What are the alternatives to mem0?

LangMem, Graphiti, Letta. Our Mem0 run installed 76 packages in 37 seconds and built in 14 seconds, but the 987-test run ended with 25 failures and 93 collection or setup errors.

Setup3/537-second install, quick build, but the full suite failed
Docs4/5Clear deployment choices, defaults, auth, and benchmark caveat
Community5/566,327 stars and active issue work through September 29
Maturity4/5Broad integrations, with open deletion and filter defects

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 preferences and past facts to survive across sessions.
Developers who want a choice between a library, a self-hosted API, and a managed service.
Python or TypeScript shops prepared to test their exact LLM, embedder, and vector-store combination.
Claude Code users who want an installable memory plugin and can verify its identity settings.

Who it’s NOT for

Buyers who expect the open-source package to reproduce the README's headline scores exactly: the README says those results use proprietary managed-platform optimizations.
Teams that need a clean full suite from a fresh install: our run ended with 25 failures and 93 collection or setup errors.
Privacy-sensitive products that depend on delete_all() as a complete per-user wipe: open issue 7452 reports that recent session messages remain in the history database and can be sent to the LLM again.
Applications that rely on compound Qdrant metadata filters without their own regression tests: open issue 7468 reports that a second operator on the same field can be dropped.
Developers seeking a memory layer with no model dependencies: the default path needs an LLM and an embedding model, both configured to OpenAI services unless changed.

Setup reality

Our sandbox installed commit 94c3fe9 in 37 seconds, adding 76 packages and using 210 MB. The build passed in 14 seconds. Pytest failed after 417 seconds: 869 passed, 25 failed, 28 skipped, and 93 collection or setup errors were reported in the 987-test run. Pip-audit found 0 known vulnerabilities.

The default library path needs an LLM and embedder, with OpenAI's gpt-5-mini and text-embedding-3-small named as defaults. Hybrid search adds an NLP extra and a spaCy model. The self-hosted server adds Docker Compose, administrator setup, and API-key handling.

The repository had 1,896 files, about 251,432 source lines, 34 CI workflows, and no Dockerfile in our scan. The failure log specifically shows the Redis vector-store tests raising ModuleNotFoundError: No module named 'redis'; it does not establish why that dependency was absent.

The managed benchmark does not describe identical open-source behavior

Mem0's Apache-2.0 SDK gives an assistant somewhere durable to put facts such as a user's preferences, earlier requests, and confirmed actions. The application writes conversations or facts, then searches for relevant memories before the next model call. Python and TypeScript SDKs cover the library route, while a self-hosted server and Mem0's cloud service cover teams that want an API. That range is useful because memory often starts as one function call and becomes shared infrastructure once several agents need the same history.

The README leads with April 2026 retrieval results, but its qualification matters more than the scores. Those tests used the managed platform, including proprietary optimizations absent from the open-source SDK. Mem0 says open-source users should expect gains in the same direction, not identical numbers. Treat the table as evidence for the hosted product. If you are adopting the Apache-2.0 code, measure recall, false retrievals, token use, and deletion behavior with your own conversations.

A 37-second install still leaves providers to configure

Our fresh Debian container installed commit 94c3fe9 in 37 seconds. It added 76 packages and occupied 210 MB, then the build completed in 14 seconds. That is a friendly first result for a Python repository containing 1,896 files and roughly 251,432 lines of source. Pip-audit also reported 0 known vulnerabilities in the environment we installed. None of those figures measures retrieval quality or the cost of calls to an LLM and embedding service.

A basic Memory() instance still needs both model roles. The README names gpt-5-mini as the default LLM and text-embedding-3-small as the default embedder, so the shortest example assumes OpenAI credentials. Other providers are supported, but each combination introduces its own configuration and behavior. Hybrid search adds the nlp extra plus a spaCy model. Self-hosting adds Docker Compose, an administrator bootstrap, authentication, and API keys rather than removing those model decisions.

What happened when we ran it

Our run built successfully in 14 seconds, then pytest failed after 417 seconds. The supplied result reports 869 passed, 25 failed, 28 skipped, and 93 collection or setup errors out of 987 tests. That is enough passing coverage to show substantial working code, but it is not a green release gate. The sandbox used 3 CPUs, 8 GB of RAM, Python 3.12 on Debian, no secrets, and no elevated privileges.

The log tail is specific about one cluster of failures. Redis vector-store cases failed with ModuleNotFoundError: No module named 'redis', including search, list, update, collection-dimension, and missing-ID behavior. We cannot tell from those last lines whether the cause is packaging, an optional test dependency, or the command used by the harness. The finding is narrower: the repository's complete test command did not run cleanly after the successful 76-package install.

Our scan also found 34 CI workflow files and a tests directory, but no Dockerfile. The README does document a Docker Compose route under server, so absence of a Dockerfile in the scan should not be read as absence of self-hosting instructions. It does mean the measured Python build and the advertised server bootstrap are different adoption paths. Run the one you plan to operate, with the vector database and provider credentials that production will use.

Open deletion and filter reports deserve release-blocking tests

Open issue 7452 describes a sharp privacy boundary in the Python SDK v3. Its reproduction says delete_all(user_id="alice") removes returned memories but leaves the last 10 raw session messages in the history database. A later add() can send that old text to the LLM again. The report includes a stubbed-model reproduction, so teams promising per-user deletion should verify the behavior themselves before connecting real data.

Filtering has a separate risk. Open issue 7468 reports that two Qdrant operators on the same metadata field can be merged, after which only the first operator becomes a condition. In the reproduction, a memory marked deleted survives a filter meant to exclude it. That can affect search, listing, and bulk deletion. The issue was filed against the same 94c3fe9 commit used in our sandbox, which makes a regression test for compound filters a sensible adoption requirement.

Claude Code users also have a concrete integration caveat. Issue 7475 reports that plugin version 0.3.3 can write memories under the configured user_id while its MCP search process falls back to the operating-system account name. The report gives an environment-variable workaround. If the plugin is your entry point, confirm that a remembered fact can be found under the intended identity before assuming an empty search means nothing was stored.

September activity is high, and so is the change surface

GitHub showed 66,327 stars and 765 open issues and pull requests when checked on September 30, 2026. The repository's last push was September 25, while issues were still being updated on September 29. The latest release was the TypeScript SDK's v3.3.1 on September 25, with fixes spanning provider defaults, vector-store filters, distance scoring, and optional PostgreSQL packages. Those dates point to active maintenance rather than a quiet repository.

They also show why Mem0 needs local qualification. One package spans two SDK languages, several model providers, multiple vector stores, a self-hosted service, a cloud product, CLI tools, and coding-agent integrations. Mem0 is the right kind of ambitious for teams that want one memory interface across that mix. Our failed 987-test run and the open deletion and Qdrant reports make the buying condition plain: choose it for its reach, then pin versions and test the exact slice you depend on.

Alternatives

ProjectWhat it isPick it when
LangMemA memory toolkit designed around LangGraph agents and long-term memory workflows.pick this instead when LangGraph is already your agent runtime and you want memory primitives close to that stack.
Graphiti gh↗A system for building temporal knowledge graphs for agents.pick this instead when relationships, event history, and graph queries matter more than a general memory API.
LettaA platform for stateful agents whose memory is part of the agent runtime.pick this instead when you want the agent runtime and memory model together rather than a memory layer added to your own app.

What people are saying

  1. [github-trending] mem0ai/mem0

Sources

  1. Mem0 README
  2. Mem0 repository
  3. Mem0 Node SDK v3.3.1 release
  4. Issue 7452: delete_all leaves session messages
  5. Issue 7468: compound Qdrant filters
  6. Issue 7475: Claude Code plugin user identity

More ai tools reviews

kornia · skills · anarlog · pr-agent · agent-sprite-forge · KiroCrew · the whole board →