mrkeyoor.com_
Wed 16 Sept 16:02 UTC
AI Toolsevaluationupdated 16 Sept 2026

MemOS review

MemOS is an English-documented memory layer for AI agents, with a Chinese README translation. It stores, searches, edits, and shares long-term memories through a hosted API, a self-hosted service, or local plugins for OpenClaw, Hermes Agent, and DeepSeek Harness.

Verdict

Our MemOS run passed 936 tests, but 6 failed and pip-audit found 29 known vulnerabilities after a 6,217 MB install, so the current checkout misses a strict production gate. The local plugin is the most approachable path for an existing OpenClaw, Hermes, or DeepSeek Harness user. Adopt the full service only when editable graph-backed memory justifies Neo4j, Qdrant, dependency remediation, and a reproduced clean suite.

We ran it

Lab card: what happened when we ran MemOS
Install✓ · 96s233 packages · 6217 MB
Build✓ · 2s
Tests✗ · 90s936 passed · 6 failed · 4 skipped of 942 (pytest)
Known vulns29(pip-audit)
Repo2014 files~436,507 lines of source · 31.1 MB · 12 CI workflows · Dockerfile · tests dir

Answers from our run

Does MemOS build from source?

Dependencies installed in 96 seconds (233 packages), and the build succeeded in 2 seconds. We cloned commit de80694 into a clean Debian container with 3 CPUs and no project-specific setup.

Do MemOS's tests pass?

Not all of them: 936 of 942 passed and 6 failed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does MemOS have known vulnerabilities in its dependencies?

pip-audit flagged 29 known advisories in the dependency tree at the time of our run.

Who should not use MemOS?

Security-sensitive teams with a zero-advisory dependency gate: pip-audit found 29 known vulnerabilities in our installed environment.

What are the alternatives to MemOS?

Mem0, Letta, LangMem. Our MemOS run passed 936 tests, but 6 failed and pip-audit found 29 known vulnerabilities after a 6,217 MB install, so the current checkout misses a strict production gate.

Setup2/56,217 MB install plus Neo4j and Qdrant for self-hosting
Docs4/5Four setup paths are separated with working examples
Community5/511,374 stars with issue and pull request activity on September 16
Maturity2/5936 tests passed, but 6 failed and audit found 29 advisories

Who it’s for

Agent developers who need editable long-term memory rather than raw chat history.
Teams prepared to run Neo4j and Qdrant for a self-hosted memory service.
OpenClaw, Hermes Agent, or DeepSeek Harness users who want local SQLite memory and a viewer.
Researchers comparing graph, vector, text, tool-trace, and persona memory in one codebase.

Who it’s NOT for

Security-sensitive teams with a zero-advisory dependency gate: pip-audit found 29 known vulnerabilities in our installed environment.
Projects that require a clean suite before adoption: our run had 936 passes but still failed 6 tests, including 4 MCP async cases and 2 cache cases.
Small apps that only need vector lookup: the self-hosted route requires Neo4j and Qdrant, while simpler stores avoid two services.
Network-restricted local-plugin deployments: issue 2345 says the default local embedder fetches from Hugging Face and has no setting for a mirror or offline model path.
Hermes users who expect agents to remove stale memories themselves: issue 2354 says its MemOS plugin exposes add, search, and profile tools, but no delete tool.
Buyers wanting one interchangeable setup: cloud, self-hosted service, cloud plugin, and local plugin have different storage, credentials, dependencies, and operating duties.

Setup reality

Our commit de80694 install succeeded in 96 seconds, pulling 233 Python packages and occupying 6,217 MB. The build passed in 2 seconds. Tests failed after 90 seconds: 936 passed, 6 failed, and 4 skipped; pip-audit reported 29 known vulnerabilities.

The self-hosted REST service needs Neo4j, Qdrant, provider settings, and API credentials in an environment file. The hosted route needs a MemOS API key. Local plugins need Node.js plus an existing OpenClaw, Hermes Agent, or DeepSeek Harness installation, but keep memory in local SQLite.

Four MCP tests reported that async functions were not natively supported. Two activation-memory tests failed because DynamicCache lacked key_cache. The checkout had 2,014 files, about 436,507 source lines, 12 CI workflows, a Dockerfile, and a tests directory.

MemOS is four memory products with different operating costs

MemOS puts one name on four entry points. The Cloud API stores application memory on the vendor's service. The self-hosted API runs the memory service on your infrastructure. A cloud plugin connects supported agents to the hosted service, while a local plugin stores data in SQLite on the user's machine. All four aim to recall useful context before a task and save new experience afterward, but their privacy and maintenance profiles are different.

The source tree shows that breadth. Our commit de80694 checkout contained 2,014 files, about 436,507 source lines, and 31.1 MB before dependencies. It includes Python service code and a TypeScript local-plugin application. A buyer should choose one entry point before evaluating the feature list, because a 233-package Python service backed by two databases is a different commitment from adding a Node package to an existing agent.

The self-hosted service trades simplicity for editable graph memory

The main service models memories as inspectable objects rather than leaving everything inside opaque embedding vectors. Its API can add, retrieve, edit, and delete entries. Memory cubes separate or combine knowledge for users, projects, and agents. Text, images, tool traces, and personas can participate in retrieval, while feedback can correct stored information over time. Those controls suit an agent whose remembered claims need review and repair.

Self-hosting starts MemOS alongside Neo4j and Qdrant, with provider and storage settings supplied through an environment file. The alternative uvicorn path still expects both services to be running. Our 6,217 MB installed environment arrived before database data, model caches, images, or backups. For an application that only needs nearest-neighbor retrieval over short notes, that footprint and two-service topology are hard to justify. Graph relationships and editable memory cubes need to be central requirements.

What happened when we ran it

In our fresh unprivileged Debian sandbox with 3 CPUs and 8 GB of RAM, installation succeeded in 96 seconds. It added 233 Python packages and consumed 6,217 MB. The build then passed in 2 seconds. The repository had 12 CI workflow files, a Dockerfile, and a tests directory, so the failed suite did not come from an obviously absent test setup in the checkout.

Pytest stopped with exit code 1 after 90 seconds. It reported 936 passed and 6 failed out of 942 test outcomes, with 4 more skipped and 43 warnings. Four failures in test_mcp_serve.py said async functions are not natively supported. Two failures in test_kv.py raised AttributeError because DynamicCache had no key_cache attribute. The log identifies those symptoms; it does not prove which dependency or configuration change should fix them.

Pip-audit reported 29 known vulnerabilities in the installed packages. The supplied result does not give us license to invent severity, reachability, or exploitability, so each advisory needs triage against the deployed path. Still, 29 is too high to wave through on a service that holds user histories and provider credentials. The combination of a successful 2-second build and 936 passing tests shows substantial working code, while the six failures and audit result keep this commit below a clean production bar.

Local plugins avoid Neo4j and Qdrant, with narrower boundaries

The local plugin targets OpenClaw, Hermes Agent, and DeepSeek Harness. It keeps its data in SQLite and combines full-text and vector retrieval, with a Memory Viewer for inspection. This route removes the hosted data path and the service pair required by the full API. It does require Node.js plus one of those supported agent runtimes, so it is an integration choice rather than a general Python memory server.

Network access can still matter after choosing local storage. Issue 2345 reports that the default local embedder downloads its model from Hugging Face and offers no configuration for a mirror or preloaded offline path. When that download fails, the report says new traces lose vectors and later memory stages stall. For restricted networks, reproduce the embedding setup before trusting the local label. The 6,217 MB Python result does not apply to this separate Node plugin path, which should be measured on its own.

Memory lifecycle also differs by adapter. Issue 2354 says the Hermes plugin exposes tools to add, search, and retrieve a profile, yet provides no delete tool for the agent. Users can accumulate stale or incorrect entries without an agent-facing removal action. The core cloud API documents deletion, so this is an adapter gap rather than a claim that MemOS never deletes memory. It matters whenever an assistant is expected to repair its own long-term record.

Active releases do not cancel the checkout findings

Release v2.0.33 arrived on September 3, 2026, with fixes around preference memory, skill extraction, and local-plugin packaging. GitHub recorded a push on September 16, along with 11,374 stars and 69 combined issues and pull requests. Current work covers graph search, plugin imports, log redaction, memory scoring, and database providers. The queue indicates active maintenance across both the Python core and TypeScript plugin.

That pace makes MemOS worth following, but adoption should start with a narrow path. A supported-agent user can trial the SQLite plugin without taking on the 233-package service environment. A platform team can run the graph-backed API when memory inspection, correction, and cube isolation pay for Neo4j and Qdrant. Whichever path you choose, rerun the suite, inventory the 29 audit findings, and verify deletion and offline embedding behavior before the system stores irreplaceable user context.

Alternatives

ProjectWhat it isPick it when
Mem0 gh↗A memory layer with hosted and open-source paths for agents and applications.pick this instead when you want a narrower memory API and a larger integration catalog.
LettaA platform for building stateful agents whose memory is part of the agent runtime.pick this instead when you want the agent and its memory managed as one system.
LangMemA library for extracting and managing long-term memories in LangGraph applications.pick this instead when your application already uses LangGraph and needs a library rather than a memory service.

What people are saying

  1. [github-trending] MemTensor/MemOS
  2. [github-trending] usememos/memos

Sources

  1. MemOS README
  2. MemOS v2.0.33 release
  3. Offline local embedding source request
  4. Hermes plugin delete-tool request

More ai tools reviews

eve · LongCat-Video · Concat · DLSS5-Feeder · Concat · LocalMiniDrama · the whole board →