Every OMP method —Documentation Index
Fetch the complete documentation index at: https://docs.openmem.blog/llms.txt
Use this file to discover all available pages before exploring further.
add, search, context, and the rest — works identically no matter which backend you choose. Your application code calls the same functions with the same arguments; only the Memory(...) constructor line changes when you want a different provider. This means you can prototype with Postgres, deploy with Mem0, and let each user pick their own backend, all without modifying the logic that reads and writes memories.
Swap the constructor, keep the code
The examples below all use the sameadd and search calls. The only difference is the first line.
Let users choose their own backend
You can read the provider name and configuration from user settings and forward them directly to the constructor. Your application never needs a conditional branch per provider.Install extras
The coreopenmem package includes the Postgres adapter. Each third-party provider requires its own extras group:
Store provider config in environment variables
Asynchronous ingestion on hosted providers
Mem0 and Supermemory may return Postgres always returns
status="queued" on add(). The memory is accepted but ingested asynchronously on the provider’s infrastructure. Check the status field on the returned MemoryRecord before assuming the record is immediately searchable.status="done" — writes are synchronous and the record is immediately searchable.