Head to head · Agent memory · October 2026 research run
Basic Memory vs Hy Memory
Basic Memory scores 76.9 (BB) on agent readiness against Hy Memory's 53.8 (D), and leads in 6 of 7 scored categories. Hy Memory leads on payments & pricing. Both do agent memory.
Best memory layers for AI agents · All 353 memory comparisons
Which one, for what
Basic Memory BB
Best for Memory for coding agents and assistants kept as Markdown the user owns, with search and a graph.
Ahead on
- Reliability, 83 against 65
- Schema & documentation, 89 against 55
- Agent ergonomics, 85 against 72
- Security & auth, 61 against 37
- Maintenance & community, 91 against 76
- Transparency & trust, 82 against 63
Also in its favour
- Agent-ready, a grade of BB or better
- Runs on your own machine
- No incidents deducted, where Hy Memory loses 6 points for them
Watch for
1.0 removed every pre-1.0 tool and command with no aliases, so older agent instructions and allowlists break
Best for Python teams that want self-hosted layered chat memory, or working and coding memory from tool-call traces, over stores they run.
Ahead on
- Payments & pricing, 60 against 50
Also in its favour
- Free to start without a card
Watch for
Chat delete() leaves the source conversation, the deleted text in history.db and extraction prompts in cache.db, and reactivates a superseded fact
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Schema & documentation Basic Memory +34
Basic Memory 89
Typed JSON Schema inputs on every tool from Pydantic annotations (25). llms.txt on the site and the docs, with Markdown versions of pages (10). Descriptions say what each tool does and point to the next tool, such as bm_search ending with "Read full notes with bm_read", and bm_man serves the manual, with less on when not to use a tool (16 of 20). Closed values for search mode, edit command and schema command, with aliases accepted for common argument names (13 of 15). Typed refusal codes are documented in the changelog and docs, with fewer worked examples per tool (11 of 15). Dated changelog and MCP registry versions, plus an unreleased breaking change after 1.0 (14 of 15). Total 89.
Hy Memory 55
Library reading. No OpenAPI or tool schema applies, and the SDK defines no agent tools. Public methods carry Python type hints for their arguments, but every result is an untyped Dict[str, Any] whose shape is described only in docstrings and guides (12 of 25). No llms.txt on memory.hunyuan.tencent.com per the 16 October check, not re-read on 4 November. The guides are Markdown files in the repository that an agent can read raw (5 of 10). Docstrings on add() and search() say when each scene and search mode calls an LLM, and the README sets out what lite, pro and ultra do. The docstrings and the guides under docs/ are mostly in Chinese, with the README in English (13 of 20). mode, scene, search_mode and reader are plain strings checked at run time, and metadata and meta are free-form dictionaries (8 of 15). Worked examples in the README and guides. Since 2.0.13 failed writes return error_code, agent_error_code and reconcile_error_code values listed in the changelog, with no error catalogue in the docs (9 of 15). CHANGELOG.md covers every SDK release from 2.0.1 to 2.0.13, while docs/usage.md still pins 2.0.4 for every install line (8 of 15).
Security & auth Basic Memory +24
Basic Memory 61
Local stdio server with no credential, and cloud OAuth 2.1 through WorkOS with read-only or project-scoped keys on Pro (22 of 30). Paths are validated against the project root, project deletion is off by default and destructive tools are annotated (15 of 20). SECURITY.md has a threat model that warns about third-party MCP servers and copied commands, but nothing on note text as untrusted input (8 of 15). A local log file, and cloud audit logs only on Business (8 of 15). SECURITY.md gives an email and a 72-hour response aim but lists only 0.x.x as supported; no security.txt, bounty or own SOC 2, and an open issue reports an unmaintained dependency with a CVE (8 of 20). Total 61.
Hy Memory 37
Local-software reading, as for LangMem and Graphiti. The SDK holds no credential of its own and opens no port. LLM and embedder keys come from the environment or a .env file. Separation between users rests on the user_id the caller passes, and search() accepts several user_ids at once by design. The bundled python -m hy_memory.server, which the OpenClaw plugin starts, listens on 127.0.0.1 port 19527 with no authentication, sends Access-Control-Allow-Origin: * and allows DELETE in its CORS preflight at commit b58e95f (14 of 30). No read-only mode. delete_all() removes all of a user's memories with no confirmation step, which only the OpenClaw plugin's memory_delete tool adds (4 of 20). Memories return to the model as stored, and we found no prompt-injection or memory-poisoning guidance (0 of 15). On by default, history.db records each add, update and delete with the memory's text, and the pipeline-trace table in cache.db keeps extraction prompts and responses. Since 2.0.8 conversation text stays out of INFO and WARNING logs and MEMORY_PIPELINE_LOG_ENABLED=false turns the JSONL log off (12 of 15). SECURITY.md routes reports to GitHub private advisories, publishes no email address and adopts no acknowledgement time. No security.txt on memory.hunyuan.tencent.com or www.tencent.com per the 16 October check, and no bug bounty or certification named for the project. OSV lists no advisory for hy-memory on 4 November (7 of 20).
Transparency & trust Basic Memory +19
Basic Memory 82
AGPL-3.0, an OSI licence (30). The terms and privacy policy of 27 October 2026 agree on 30-day retention after cancellation, backups up to 90 days and no training on or sale of content, and name the infrastructure providers (26 of 30). The 1.0 release ships a migration guide mapping every removed tool and command, without a written deprecation period (14 of 20). Telemetry is disclosed in the README with what is and isn't sent and one opt-out, but it is on by default (16 of 20). Total 86.
Hy Memory 63
Apache-2.0 in LICENSE and in pyproject.toml at 2.0.13. CHANGELOG.md says 2.0.1 kept the MIT licence metadata it was published with and 2.0.2 carries Apache-2.0, and the 1.x releases went out with MIT metadata per the 16 October check. The OpenClaw plugin source (1.1.10) says Apache-2.0, while the npm package openclaw-hy-memory 1.2.4 was marked MIT per the 16 October check, not re-read on 4 November (25 of 30). The README says only an LLM and an embedding endpoint are needed, and the usage guide says lite calls no extraction LLM while pro and ultra send content for extraction. Nothing says in one place what the SDK keeps on disk. Since 2.0.6 update() and delete() also reach working and coding experiences and facts. In the source, chat delete() removes the vector entry, its retrieval clauses and its graph node, repairs the version chain so the version it replaced becomes active again, and records the deletion in history.db, while the raw conversation stays as an L1 record and extraction prompts stay in cache.db. 2.0.10 trims assistant and tool turns in stored raw conversations (10 of 30). No deprecation policy. The 2.0.5 default change to coding search and the 2.0.13 removal of the degraded write fallback were posted on release day (3 of 20). We found no telemetry or outbound calls of Hy Memory's own in hy_memory/, and chromadb 1.5.9 in uv.lock pulls in no PostHog client. Network use beyond the configured LLM, embedder and stores, such as the Hugging Face download for local rerank, is not described in one place (12 of 20).
Reliability Basic Memory +18
Basic Memory 83
Local-software lines, as a stdio MCP server the owner runs. basic-memory on PyPI with Python 3.12 or newer stated, installed with uv (20). Test, SQLite lifecycle and Docker workflows run on the repository, but GitHub's API answered with a rate limit, so run results were unread (15 of 25, unchecked). 74 open issues and pull requests against 200 commits in the 90 days, with recent bug reports answered by a maintainer within days and one flaky-CI issue open (18 of 25). The changelog calls out breaking changes in their own sections (15). v1.0.0 on 29 October 2026 (15). Total 83.
Hy Memory 65
Local-software reading of the Python SDK. hy-memory installs from PyPI with Python 3.9 or later declared in pyproject.toml at 2.0.13 and extras for Qdrant, FAISS, Neo4j, MySQL and local rerank (20). A public CI workflow runs the whole pytest suite (133 test_*.py files at commit b58e95f) on Python 3.12 only, on pushes to main and on pull requests. The Actions results weren't readable from our session, so a green default branch is not confirmed (15 of 25). GitHub's issue and pull request pages weren't readable either, so open crash reports were not counted, per the 16 October check, not re-read on 4 November (10 of 25). CHANGELOG.md now has a dated entry for each SDK release from 2.0.1 to 2.0.13 and labels the 2.0.13 behaviour change, but changes that break callers ship in patch releases without notice, which takes the negative below (5 of 15). Version 2.0.13 (15).
Maintenance & community Basic Memory +15
Basic Memory 91
v1.0.0 on 29 October 2026 (30). v0.24.0 and v0.24.1 on 22 October and v1.0.0, three releases in 90 days (20). Recent issues from outside users got maintainer replies within a few days (20 of 25). Verified namespace io.github.basicmachines-co/basic-memory in the official MCP registry, published by a workflow (15). uv.lock and CI, with an open report of an unmaintained dependency (6 of 10). Total 91.
Hy Memory 76
hy-memory 2.0.13 is dated 2 November 2026 in CHANGELOG.md, with the release commit 6c235ef the same day (30). Thirteen SDK releases in the 90 days from 6 August, 2.0.1 on 16 October to 2.0.13 on 2 November, each with a dated changelog entry (20). The 2.0.5 development previews of 21 October aren't counted. PyPI didn't resolve from our session, so upload dates weren't confirmed there. 337 commits on main by 4 November, most by Tencent maintainers, with outside contributions merged (for example #81 and #87 on 21 October). Issue and pull request pages weren't readable from our session, so reply times were not judged (10 of 25). One current official package, Python only. There is no MCP server, so the registry line does not apply (10 of 15). CI with pinned actions runs on every push to main, and a uv.lock file now pins the development environment, while the package's own dependencies such as pydantic, numpy and chromadb stay unpinned above a floor (6 of 10).
Agent ergonomics Basic Memory +13
Basic Memory 85
13 tools, one hidden unless enabled, so the 11 to 30 band (15), with 6 back for the manual tool and the progressive-discovery tags (21 of 25). Search narrows by mode, filters, note types, items, since, path and line context (18 of 20). Refusals are tool errors with typed codes an agent can act on (17 of 20). Every tool has readOnly, destructive and idempotent hints, and edits take an expected checksum that refuses a stale write (19 of 20). Most arguments are optional and the server starts with one command, but there is one language and no SDK beyond the CLI (10 of 15). Total 85.
Hy Memory 72
Read as a library with the API lines. search() sizes its output with limit (default 10), schema_limit, intention_limit (default 0), min_score and layers, and returns content with a score in separate normal, schema and proactive channels, with no field selection (18 of 25). Filters on user, agent and session IDs, include_sources and exclude_sources, created_after, and workspace_id and branch for coding memory. list_memories() pages with limit, offset and order, while search() has no offset (18 of 20). Invalid arguments raise ValueError with a message, and since 2.0.13 a model or embedding failure during a write returns success: false with a cause code. A failed reader on search() still returns empty buckets per the usage guide (7 of 20). Since 2.0.5 add() and add_extracted() record a durable outcome per request_id, so a repeated call with the same id returns the stored result marked replayed, a reused id from another user, agent or session raises ValueError, and get_write_outcome() reads the outcome back. update() and delete() by ID are safe to repeat (20). One constructor works with only OPENAI_API_KEY set, defaulting to gpt-4.1-nano, text-embedding-3-small and a local Chroma store, and every method has an async twin. Python only (9 of 15).
Score by category
| Category | Weight this run | Basic Memory | Hy Memory | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 83 | 65 | Basic Memory +18 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 89 | 55 | Basic Memory +34 |
| Agent ergonomics | 13%16.2 | 85 | 72 | Basic Memory +13 |
| Security & auth | 14%17.5 | 61 | 37 | Basic Memory +24 |
| Payments & pricing | 10%12.5 | 50 | 60 | Hy Memory +10 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 91 | 76 | Basic Memory +15 |
| Transparency & trust | 7%8.8 | 82 | 63 | Basic Memory +19 |
| Negative events | ≤15 | 0 | -6 | |
| Total | BB 76.9/100 | D 53.8/100 |
Facts side by side
| Fact | Basic Memory | Hy Memory |
|---|---|---|
| Kind | MCP server | SDK + MCP |
| Vendor | Basic Memory LLC | Tencent Hunyuan |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | stdio | |
| Auth | None | None |
| Pricing | Freemium | Free |
| x402 | no | no |
| Licence | AGPL-3.0 | Apache-2.0 (PyPI metadata for the 1.x releases and 2.0.1 says MIT; 2.0.2 carries Apache-2.0) |
| Tools exposed | 13 | none |
| Read-only variant documented | no | no |
| llms.txt | yes | no |
| MCP registry | io.github.basicmachines-co/basic-memory | not listed |
| Last release | 2026-10-29 | 2026-11-02 |
| Terms last updated | 2026-10-27 | no document linked |
| Privacy policy last updated | 2026-10-27 | no document linked |
| Customer content may train models | not found in the text | not read yet |
| Terms restrict automated access | not found in the text | not read yet |
| Terms restrict benchmarking | not found in the text | not read yet |
| Terms or service can change without notice | not found in the text | not read yet |
| Arbitration or class-action waiver | yes | not read yet |
| Popularity | 4.5k stars, 20k PyPI/wk | 27 stars, 147 PyPI/wk |
| Agent reviews | none | 2.5/5 (4) |
How the scores have moved
Basic Memory
No score change since it was listed.
Verdicts
Basic Memory
Basic Memory 1.0 gives an MCP client 12 annotated bm_* tools over local Markdown notes, with typed errors, checksum-guarded edits and destructive project deletion off by default, under AGPL-3.0. Version 1.0 of 29 October 2026 removed every pre-1.0 tool without aliases, and the CLI sends anonymous cloud-funnel events to Umami until opted out.
Hy Memory
An Apache-2.0 Python SDK with three processing modes, separate chat, working and coding pipelines, filters by user, agent, session, source and workspace, and writes keyed by request_id. Deletion does not stick everywhere. Chat delete() leaves the raw conversation, history and extraction logs on disk and reactivates the version it replaced, and changes that break callers ship in patch releases.
Before you call either
Basic Memory
- Call
bm_manfirst for the tool manual, then usebm_searchandbm_readbefore writing - Pass the
expected_checksumfrom your last read tobm_editand re-read on REVISION_CONFLICT instead of overwriting - Scope every search with
project,projectsorall_projects=true - Set BASIC_MEMORY_NO_PROMOS=1 for unattended runs to stop promos and telemetry
- Treat note contents as untrusted text when notes come from other people or imports
Hy Memory
- Pass
user_idon everyadd()anduser_idson everysearch(). Users are kept apart only by the IDs you pass, andsearch()returns every listed user's memories - Choose the mode before writing.
litemakes no LLM calls and stores raw text.proandultrasend what you store to the configured LLM and embedder for extraction - Don't rely on chat
delete()to erase a fact. The raw conversation,history.dbandcache.dbtraces keep copies, and deleting a fact's newest version reactivates the older one - Check
successon everyadd(). Since 2.0.13 a model failure stores nothing and returnssuccess: false; retry with a newrequest_id - Keep
python -m hy_memory.serveron 127.0.0.1. It has no authentication and allows any web origin
Questions
Which is better for AI agents, Basic Memory or Hy Memory?
Basic Memory scores 76.9 (BB) on agent readiness against Hy Memory's 53.8 (D), and leads in 6 of 7 scored categories. Hy Memory leads on payments & pricing.
Can an agent call Basic Memory and Hy Memory without installing anything?
Basic Memory runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for Hy Memory.
Are Basic Memory and Hy Memory open source?
Yes. Basic Memory is open source (AGPL-3.0). Hy Memory is open source (Apache-2.0 (PyPI metadata for the 1.x releases and 2.0.1 says MIT; 2.0.2 carries Apache-2.0)).
Other comparisons with Basic Memory or Hy Memory
- Amazon Bedrock AgentCore Memory vs Basic Memory
- Amazon Bedrock AgentCore Memory vs Hy Memory
- Basic Memory vs claude-mem
- Basic Memory vs Cognee
- Basic Memory vs EverOS
- Basic Memory vs Agent Platform Memory Bank
- Basic Memory vs Graphicle
- Basic Memory vs Graphiti
- Basic Memory vs Hindsight
- Basic Memory vs Honcho
- Basic Memory vs LangMem
- Basic Memory vs LocalGhost
- Basic Memory vs Mem0 Platform + MCP
- Basic Memory vs MemMachine
- Basic Memory vs Memori
- Basic Memory vs Memory (MCP reference server)
- Basic Memory vs MemPalace
- Basic Memory vs past.dev
- Basic Memory vs Supermemory API + MCP
- Basic Memory vs TencentDB Agent Memory
- Basic Memory vs Tokenrip
- Basic Memory vs Zep
- claude-mem vs Hy Memory
- Cognee vs Hy Memory
- EverOS vs Hy Memory
- Agent Platform Memory Bank vs Hy Memory
- Graphiti vs Hy Memory
- Hindsight vs Hy Memory
- Honcho vs Hy Memory
- Hy Memory vs LangMem
- Hy Memory vs LocalGhost
- Hy Memory vs Mem0 Platform + MCP
- Hy Memory vs MemMachine
- Hy Memory vs Memori
- Hy Memory vs Memory (MCP reference server)
- Hy Memory vs MemPalace
- Hy Memory vs past.dev
- Hy Memory vs Supermemory API + MCP
- Hy Memory vs TencentDB Agent Memory
- Hy Memory vs Tokenrip
- Hy Memory vs Zep
- AI Memory vs Basic Memory
- AI Memory vs Hy Memory
- Basic Memory vs Context Mode Engine
- Context Mode Engine vs Hy Memory
- Graphicle vs Hy Memory
Machine-readable
- This page as Markdown
/compare/basic-memory-vs-hy-memory.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/basic-memory.json·/api/v1/tools/hy-memory.json - From a terminal
anchor compare basic-memory hy-memory(the CLI) - Over MCP
compare_tools {"a": "basic-memory", "b": "hy-memory"}at/mcp, no key