Back to Mem0

Platform vs Open Source

docs/platform/platform-vs-oss.mdx

2.0.198.4 KB
Original Source

Which Mem0 is right for you?

Mem0 offers two ways to add memory to your AI applications. Both run the same core extraction and retrieval logic; the Platform adds hosting, a small set of v3-only capabilities, and management surfaces that OSS does not have.

<CardGroup cols={2}> <Card title="Mem0 Platform" icon="cloud" href="/platform/quickstart" > **Managed, hassle-free**
Get started in 5 minutes with our hosted solution. No vector store, LLM, or embedder to configure.
</Card>

<Card title="Open Source" icon="code-branch" href="/open-source/python-quickstart"

**Self-hosted, full control**
Deploy on your infrastructure. Choose your vector DB, LLM, and configure everything.
</Card> </CardGroup>

What's the same

The core memory loop is identical on both: add, search, get, get_all, update, delete, delete_all, and per-memory history all exist on the self-hosted Memory/AsyncMemory classes and on the hosted MemoryClient/AsyncMemoryClient. Both support:

  • Entity scoping by user_id, agent_id, and run_id
  • Filter grouping: both accept AND/OR/NOT wrappers, both implicitly AND a flat multi-key filter like {"user_id": "alice", "agent_id": "a1"}, and both accept * as a wildcard value. Which fields you may filter on, and which operators each field accepts, differ (see below)
  • Entity-aware ranking: both extract entities from memory text and use shared entities to boost related results at search time
  • Multimodal input, memory expiration (expiration_date), reranking, procedural memory (Python), and custom extraction instructions (custom_instructions)
  • Python and JavaScript SDKs, plus a REST API (self-hosted via server/, or hosted)

What's actually different

<AccordionGroup> <Accordion title="Hosting & infrastructure" icon="server"> | Feature | Platform | Open Source | |---------|----------|-------------| | **Vector store, LLM, embedder** | Run and tuned by Mem0 | You provision, configure, and pay for each | | **Scaling & availability** | Managed | Your responsibility | | **Web dashboard** | `app.mem0.ai` | Not included | | **Time to first memory** | Minutes (API key only) | Depends on your vector DB / LLM setup | </Accordion> <Accordion title="Entity scoping & workspace structure" icon="layer-group"> | Feature | Platform | Open Source | |---------|----------|-------------| | **Scoping identifiers** | `user_id`, `agent_id`, `run_id`, plus `app_id` for app/tenant separation | `user_id`, `agent_id`, `run_id` only, no `app_id` | | **Organizations & projects** | Multi-org, multi-project, with member roles ([API reference](/api-reference/organization/get-org)) | No org/project concept; a single local config | | **Project-wide event feed** | `GET /v1/events/` lists recent add/search/delete events per org and project, usable for dashboards, alerting, or audit trails | Only per-memory `history(memory_id)`, no project-wide event log |
See [Entity-Scoped Memory](/platform/features/entity-scoped-memory) for the full `app_id` model.
</Accordion> <Accordion title="Search-time ranking (v3-only)" icon="sparkles"> | Feature | Platform | Open Source | |---------|----------|-------------| | **Graph Memory** | Native, always-on graph over extracted entities; connections feed directly into the ranking `score` ([details](/platform/features/graph-memory)) | Removed. OSS previously connected external graph stores (Neo4j, Memgraph, Kuzu, Apache AGE); that integration was dropped when the v3 pipeline landed. OSS still extracts entities and uses them to boost ranking, but there is no queryable graph and no `relations` field | | **Memory Decay** | Opt-in per project; reinforces recently-used memories and gently dampens stale ones at search time ([details](/platform/features/memory-decay)) | Not supported. Passing `decay` raises `"The decay parameter is not supported by the OSS Memory SDK."` | | **Temporal Reasoning** | Boosts memories whose event dates match the time expressed in a query (`timestamp` / `reference_date`) ([details](/platform/features/temporal-reasoning)) | Not supported. Both parameters raise a "not supported by the OSS Memory SDK" error | | **Dream (background consolidation)** | Continuously synthesizes patterns, supersedes outdated facts, and merges duplicates per user ([details](/platform/features/dream)) | Not available | </Accordion> <Accordion title="Configuration & data operations" icon="sliders"> | Feature | Platform | Open Source | |---------|----------|-------------| | **Custom categories** | Set per project or per `add` call ([details](/platform/features/custom-categories)) | Not supported. `Memory.add()` has no `custom_categories` parameter, and OSS project updates are rejected outright | | **Webhooks** | Project-scoped HTTP callbacks on memory and ingest events ([details](/platform/features/webhooks)) | Not available | | **Memory Export** | Schema-driven structured export jobs over filtered memories ([details](/platform/features/memory-export)) | Not available | | **Batch operations** | `batch_update` and `batch_delete` apply up to 1000 memories per call | Not available. Loop over the single-memory `update`/`delete` calls | | **Feedback** | `feedback(memory_id, ...)` records `POSITIVE`, `NEGATIVE`, or `VERY_NEGATIVE` signals against a retrieved memory ([details](/platform/features/feedback-mechanism)) | Not available | | **Summaries** | `get_summary(filters)` returns a generated summary over the matching memories | Not available | | **Filterable fields** | Top-level filter keys come from a fixed allowlist: `user_id`, `agent_id`, `app_id`, `run_id`, `created_at`, `updated_at`, `timestamp`, `expiration_date`, `categories`, `metadata`, `keywords`, `memory_ids`, plus the `AND`/`OR`/`NOT` operators and a few endpoint-specific extras. Any other key is rejected with a `400` ([details](/platform/features/v2-memory-filters)) | Any metadata key is filterable directly, with no allowlist | | **Comparison operators** | Depends on the field: `metadata` accepts `eq`, `ne`, `contains`; `categories` accepts `contains`, `in`; the date fields accept the range operators | The filter layer accepts the full set on any key: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`, `contains`, `icontains`. What actually runs depends on the vector store you configured, so confirm operator coverage for yours ([details](/open-source/features/metadata-filtering)) | </Accordion> <Accordion title="Support" icon="life-ring"> | Channel | Platform | Open Source | |---------|----------|-------------| | **Community & maintainers** | Discord, GitHub Discussions, direct calls with the founders | Same: Discord, GitHub Discussions, direct calls with the founders |
Support channels are currently the same for both. If you need something contractual (a support SLA, for example), ask before assuming it exists: it is not documented as a Platform benefit today.
</Accordion> </AccordionGroup>

User Profiles are not listed above. The feature is still being finalized internally, so this page does not present it as an available Platform benefit.


Decision Guide

Choose Platform if you want:

  • Zero infrastructure: no vector store, LLM, or embedder to provision or tune.
  • The v3-only ranking features: Graph Memory, Memory Decay, Temporal Reasoning, and Dream.
  • App-level and org/project-level scoping, plus webhooks, memory export, and custom categories.

Choose Open Source if you need:

  • Full data control: host everything on your own infrastructure.
  • Custom configuration: your own vector DB, LLM provider, and embedder (25 vector stores, 18 LLM providers, 11 embedders at the time of writing).
  • Extensibility: modify the codebase, add custom providers, and contribute back.
  • Cost optimization: local LLMs (Ollama), self-hosted vector DBs, no usage-based billing.

Still not sure?

<CardGroup cols={2}> <Card title="Try Platform Free" icon="rocket" href="https://app.mem0.ai/login?utm_source=oss&utm_medium=platform-vs-oss" > Sign up and test the Platform with our free tier. No credit card required. </Card>

<Card title="Explore Open Source" icon="github" href="https://github.com/mem0ai/mem0"

Clone the repo and run locally to see how it works. Star us while you're there!
</Card> </CardGroup>