Mem0 Python SDK (v2.0.5)
New Features:
- Memory: Warn at init time when hybrid/BM25 search silently degrades to semantic-only because the configured vector store does not implement
keyword_search. Affected stores: Chroma, FAISS, Cassandra, LangChain, Neptune Analytics, S3 Vectors, Supabase, TurboPuffer, Valkey (#5444) - Memory: Add opt-in
explain=Trueparameter toMemory.search()andAsyncMemory.search(). When enabled, each result includes ascore_breakdowndict withsemantic,keyword(normalized BM25),entity_boost, andtemporal_boostsignals so callers can understand and tune retrieval ranking (#5102)
Bug Fixes:
- Vector Stores: Normalize similarity scores to
[0, 1](higher = better) consistently across all backends. 11 adapters previously returned raw distance metrics (lower = better) — FAISS, Chroma, Milvus, Redis, Cassandra, PGVector, S3 Vectors, Supabase, Valkey, Azure MySQL, and Vertex AI Vector Search — causing incorrect ranking in multi-store setups (#5391) - Memory: Parallelize entity boost searches in
Memory.search()andAsyncMemory.search(). Previously up to 8 entities were embedded and queried sequentially (16 serial round-trips with remote embedders); all entity lookups now run concurrently, eliminating multi-second latency on entity-rich queries (#5377) - Memory: Reject empty or whitespace-only queries in
Memory.search(),AsyncMemory.search(),MemoryClient.search(), andAsyncMemoryClient.search()before any embedding or API call is made. Also strips leading/trailing whitespace from valid queries (#5258) - LLMs: Add
is_reasoning_model: Optional[bool]override toBaseLlmConfig(surfaced onOpenAILlmConfigandAzureOpenAILlmConfig). Fixes silent zero-extraction when using Azure deployments with versionedgpt-5.xnames that the automatic name-based heuristic cannot recognize (#5327) - LLMs: Fix xAI LLM provider: add
XAIConfigwithxai_base_url, forwardtools/tool_choiceingenerate_response(), and parsetool_callsin the response. Previously the provider raisedAttributeErrorat init and silently dropped tool results (#5190) - Vector Stores: Fix PGVector
ConnectionPoolhang in Docker Compose environments where the app container starts before Postgres is DNS-resolvable — switched toopen=Falseto avoid blocking constructor or silent zombie pool (#5155) - Vector Stores: Fix PGVector
sslmodehandling for PostgreSQL URIs — thesslmodequery parameter is now correctly extracted and forwarded when building the async connection pool (#5308) - Vector Stores: Fix S3 Vectors
list()not applying metadata filters — filtering is now done client-side after fetching, with pagination preserved andtop_kapplied after filtering to prevent pre-truncation of matching rows (#5018) - Vector Stores: Fix Upstash Vector
search()routing all queries to the default namespace —namespaceis now passed as a top-level keyword argument toquery_many()instead of inside the per-query dict where it was silently ignored (#5202) - Core: Replace mutable default arguments with
Nonesentinels in embedder configs and the proxy module, preventing cross-request state contamination (#5302)