RushDB vs Mem0: a database vs a memory-management layer.
Mem0 is a memory layer/SDK that orchestrates an LLM, an embedder, and a vector store — it is not itself a database. RushDB is a database: Records, typed properties, relationships, and semantic search live in one backend you can query directly, without also operating (or renting) a separate vector store underneath.
3 → 1
Dependencies to operate
Mem0 orchestrates an LLM, an embedder, and a vector store; RushDB is one backend with managed embeddings built in.
0
LLM calls per memory write
Writes are deterministic records — nothing is summarized away or silently dropped by an extraction pass.
ACID
Transactional memory writes
Memory records can participate in transactions, so multi-step agent state commits or rolls back as one unit.
Side by side
The same task in both: store a memory, recall it by meaning for one user.
Both snippets persist conversational memory and retrieve it semantically, scoped to one user. The difference is what sits underneath the call — and who decides what gets stored.
from mem0 import Memory
# Requires a configured LLM + embedder + vector store
# underneath (defaults: OpenAI + Qdrant)
m = Memory()
# An LLM extraction pass decides what gets stored
m.add(messages, user_id='alice')
results = m.search(
query='What did we decide about the Pro launch?',
filters={'user_id': 'alice'},
)Compact API, but three moving dependencies under it — and an LLM decides which parts of a conversation survive as memory.
from rushdb import RushDB
db = RushDB('RUSHDB_API_KEY')
db.ai.indexes.create({'label': 'MEMORY', 'propertyName': 'output'})
# Your application decides exactly what is stored
db.records.create(label='MEMORY', data={
'user_id': 'alice',
'kind': 'decision',
'output': 'Ship the Pro launch after the pricing review.',
})
results = db.ai.search({
'labels': ['MEMORY'],
'propertyName': 'output',
'query': 'What did we decide about the Pro launch?',
'where': {'user_id': 'alice'},
})One database, deterministic writes — the fields you store are the fields you can filter, relate, and aggregate later.
Switching
Moving from Mem0: own the memory layer instead of renting the glue.
You keep your agent framework — the migration is re-pointing memory calls, not rebuilding the agent. Mem0 scopes (user_id, agent_id, run_id) map directly to record properties, extracted memories become records you control verbatim, and the graph memory Mem0 simulates inside a vector store becomes real, traversable relationships.
01
Export memories as records
Each Mem0 memory becomes a MEMORY record: the text as an indexed property, the user/agent/run scopes as typed fields.
02
Re-point add and search
Replace m.add() with records.create() and m.search() with ai.search() — scope filters move into the where clause unchanged.
03
Add what an SDK layer can’t
Connect memories to accounts, entities, and decisions as relationships, run exact filters and aggregations, and inspect it all through live schema.
Who this is for
Pick the right tool for the job.
Choose RushDB if
- You want to store and query structured records directly, with exact filters, relationships, and analytics, not just LLM-extracted "facts."
- You want one backend for records and semantic search, not a memory SDK sitting on top of a separately-run vector store.
- You want a self-hosting path where the graph and API are one system, not several pluggable components (LLM + embedder + vector store) to wire up yourself.
Choose Mem0 if
- You want the fastest possible bolt-on for an existing agent framework (LangGraph, LlamaIndex, CrewAI, AutoGen) with first-party integration guides.
- You want an LLM to automatically decide what from a conversation is worth remembering, rather than writing structured records yourself.
- You are fine defaulting to (or bringing your own) external LLM, embedder, and vector store rather than owning a single data layer.
Mem0 is built to bolt onto an existing agent framework with minimal setup, using LLM-based extraction to decide what’s worth remembering. RushDB is built for teams that want to own the data layer directly — write structured records, query them with exact filters and relationships, and choose to also index them for semantic recall, without an LLM call deciding what gets stored.
Comparison table
Storage model, extraction, and deployment
The core difference is architectural: Mem0 decides what to remember via an LLM call and stores it across pluggable external systems. RushDB stores whatever records you write, indexed for retrieval the way you configure it.
A graph + vector database: Records, relationships, and semantic search in one backend you query directly.
A memory-management layer/SDK that orchestrates an LLM (default gpt-5-mini), an embedder (default text-embedding-3-small), and a vector store (default Qdrant) — available as a library, self-hosted server, or managed Cloud Platform.
Source· checked 2026-07-01You write structured records directly (JSON in, typed properties out); nothing is silently summarized or dropped.
LLM-based extraction (single-pass, ADD-only) with entity extraction/linking; memory is scoped as Conversation, Session, User, or Organizational.
Source· checked 2026-07-01Relationships are first-class: nested JSON creates parent-child links automatically; flat-source relationships are suggested and require approval before they change graph meaning.
Built-in graph memory (as of the current version) stores entities in a parallel collection inside the existing vector store — no separate graph database required. This replaced an earlier architecture that did require bringing your own Neo4j/Memgraph/Neptune instance.
Source· checked 2026-07-01Semantic search (ai.search) combined with exact where-filters and relationship traversal in one SearchQuery.
Fuses vector similarity, BM25 keyword matching, and entity matching; supports structured JSON-logic filters (user_id, agent_id, date ranges).
Source· checked 2026-07-01Managed cloud, BYOC on your own Neo4j/Aura instance, or full self-hosting with Docker Compose — one API surface across all three.
Fully managed Cloud Platform, or open-source library/self-hosted server where you configure your own LLM and vector store (20+ supported options).
Source· checked 2026-07-01Free plan includes 100K Knowledge Units per month, no credit card required.
Free tier: 10,000 add / 1,000 retrieval requests, 1 project. Cheapest paid tier (Starter) is $19/month.
Source· checked 2026-07-01Mem0 facts sourced from mem0.ai, docs.mem0.ai, and github.com/mem0ai/mem0 as of the dates shown above; the Mem0 snippet follows its documented quickstart shape. Mem0’s graph-memory architecture changed recently — verify against current docs before relying on this row. RushDB facts are drawn from RushDB’s own docs and feature pages linked throughout this site. Report a stale claim to hi@rushdb.com.
Implementation example
Write and recall a structured memory record
RushDB stores exactly what you write, then lets you recall it by meaning within an exact filter scope.
from rushdb import RushDB
db = RushDB("RUSHDB_API_KEY")
db.ai.indexes.create({
"label": "MEMORY",
"propertyName": "output",
})
db.records.create(
label="MEMORY",
data={
"agent_id": "agent-42",
"kind": "decision",
"output": "Keep the free plan, but increase Pro onboarding limits after launch feedback.",
"status": "approved",
},
)
recall = db.ai.search({
"labels": ["MEMORY"],
"propertyName": "output",
"query": "What did we decide about Pro onboarding?",
"where": {"agent_id": "agent-42", "status": "approved"},
"limit": 5,
})
print(recall.data)Questions developers ask.
Related
Go deeper on the workflow.
Use case
AI Agent Memory Database
Store agent state, decisions, and tool output across sessions. Recall context by meaning and agent ID without a separate vector store or sync pipeline.
Open use caseUse case
Shared Memory Across LLM Providers
Use RushDB as a provider-agnostic memory layer. Keep facts, episodes, and references available when your application changes LLM providers.
Open use caseGuide
AI Agent Memory
Learn how persistent AI agent memory stores decisions, tool output, entities, and relationships outside a single model session.
Read guideGuide
Vector Database vs Memory Layer
Compare vector databases and memory layers for AI agents. Learn when semantic search is enough and when records, relationships, and schema are needed.
Read guideNext step