This is PraisonAI’s first-party MongoDB memory adapter. It is not the same as running mem0 with a MongoDB vector store backend. Mem0’s MongoDB vector store has an upstream bug; the adapter documented on this page is a separate implementation and is unaffected. See Memory Troubleshooting if you were sent here from a mem0 error.
How It Works
Quick Start
Install the optional dependency first:
pip install pymongo or pip install "praisonaiagents[mongodb]".Configuration
| Option | Type | Default | Description |
|---|---|---|---|
connection_string | str | mongodb://localhost:27017/ | MongoDB URI |
database | str | praisonai | Database name |
use_vector_search | bool | False | Enable Atlas Vector Search on long-term memory |
max_pool_size | int | 50 | Connection pool maximum |
min_pool_size | int | 10 | Connection pool minimum |
max_idle_time | int | 30000 | Max idle time in ms |
server_selection_timeout | int | 5000 | Server selection timeout in ms |
Vector Search
Whenuse_vector_search: True:
- Long-term writes include an embedding (via
text-embedding-3-smallby default). - Searches use MongoDB
$vectorSearchagainst indexvector_indexon fieldembedding. - If vector search fails or is unavailable, the adapter falls back to MongoDB text search.
use_vector_search: False (default), only MongoDB text indexes are used.
As of PraisonAI PR #2060,
use_vector_search is always initialised on the Memory instance — even when MongoDB is not the active provider. Previously, a missing attribute could raise AttributeError deep in store/search paths.Atlas Setup
- Create a vector search index named
vector_indexon thelong_term_memorycollection. - Set the indexed path to
embedding. - Pass
use_vector_search: Truein agent config.
Best Practices
Use environment variables for credentials
Use environment variables for credentials
Store connection strings in
MONGODB_URI rather than hard-coding credentials in source files.Enable vector search for semantic recall
Enable vector search for semantic recall
Set
use_vector_search: True on Atlas when you need similarity search; text indexes suffice for keyword lookup.Size the connection pool for concurrency
Size the connection pool for concurrency
Tune
max_pool_size and min_pool_size when running many agents against the same cluster.Create indexes before production traffic
Create indexes before production traffic
Configure the
vector_index Atlas index and text indexes before scaling agent workloads.Related
Custom Memory Adapters
Registry pattern and custom backend registration.
Memory Advanced Search
Reranking, relevance cutoffs, and quality filtering.
Dakera Memory
Self-hosted, decay-weighted vector recall via the Dakera server.

