Soumil Rathi
78cc11ef1f
fix: restore lmstudio/deepseek providers in TS factory, add langchain to extras
...
- Restore LMStudioEmbedder, LMStudioLLM, DeepSeekLLM in TS factory.ts
(accidentally removed during graph store cleanup — unrelated to graphs)
- Add langchain>=0.1.0 to Python extras dep group (was transitively
provided by langchain-neo4j in the removed graph group, still needed
by mem0/llms/langchain.py and mem0/embeddings/langchain.py)
- Add pytest.importorskip("langchain") to test_langchain.py for graceful
skip when langchain isn't installed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 12:55:36 -07:00
Soumil Rathi
1a2edf739d
fix: delete graph test files that import removed graph modules
...
These test files import mem0.memory.graph_memory, kuzu_memory,
memgraph_memory, apache_age_memory, and mem0.graphs.neptune which
were deleted in the graph store removal commit.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 12:17:35 -07:00
Soumil Rathi
66446bd118
fix: address reviewer bugs — metadata mutation, test args, embedding dict, output_format
...
1. Fix _create_procedural_memory metadata mutation: use spread operator
instead of in-place dict assignment (sync + async)
2. Fix test_add assertion: remove trailing None arg that doesn't match
_add_to_vector_store(messages, metadata, filters, infer) signature
3. Restore output_format: "v1.1" in TS client search payload as fallback
4. Fix infer=False path: pass {text: embedding} dict to _create_memory
instead of raw embedding list to avoid redundant embed() calls (sync + async)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 11:50:56 -07:00
Soumil Rathi
3ae22be8a2
fix: resolve CI failures — lint errors, pytz in redis, lockfile mismatch
...
- Remove unused imports: get_update_memory_messages, get_fact_retrieval_messages
- Fix pytz.timezone("US/Pacific") → timezone.utc in redis vector store
- Remove unused entity_types variable in test_entity_extraction
- Regenerate pnpm-lock.yaml after neo4j-driver removal
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 11:24:14 -07:00
Soumil Rathi
3402c67805
fix: address PR review feedback
...
- Remove deprecated custom_update_memory_prompt from MemoryConfig entirely
- Add MAX_BATCH=100 chunking guard to embed_batch in openai.py and azure_openai.py
- Move all inline imports (mem0.utils.*) to top-level in main.py
- Remove custom_update_memory_prompt from test fixture
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 09:01:07 -07:00
Soumil Rathi
b9e26acf4d
merge: integrate main into feat/v3-pipeline + port AsyncMemory to v3
...
Merge 190 commits from main including:
- limit→top_k rename across all vector store APIs
- custom_fact_extraction_prompt→custom_instructions rename
- enable_graph flag removal (use self.graph truthiness)
- US/Pacific→timezone.utc normalization
- 18 Category A bug fixes (partial updates, graph cleanup on delete,
telemetry gating, metadata mutation prevention, filter operator
merging, delete timestamps, actor_id preservation, etc.)
Conflict resolutions:
- openai.py: merged _pass_dimensions_to_api with embed_batch
- milvus.py: merged partial-update logic with BM25 text field
- qdrant.py: took main's enhanced _create_filter, merged BM25
sparse vectors with partial-update endpoints
- test_main.py: adopted main's test structure, removed obsolete
test_custom_prompts, kept hybrid search over-fetch assertion
AsyncMemory v3 port (full parity):
- Rewrote AsyncMemory._add_to_vector_store with the same 8-phase
batch pipeline as sync Memory (single LLM call, batch embed,
hash dedup, batch persist, batch entity linking, message saving)
- All blocking calls wrapped in await asyncio.to_thread()
- Moved _build_session_scope to module level for shared access
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-12 16:26:10 -07:00
Kartik
9d6b79a14e
fix(sdk): removing the enable graph flag and switching from snake case to camel case for client ts sdk ( #4776 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-12 02:40:54 +05:30
Kartik
e44b46ef2e
fix(sdk): removing deprecating param from our sdk and docs changes with it ( #4740 )
2026-04-12 00:34:58 +05:30
Gabriel Stein
9d82e2329d
refactor(telemetry): sample OSS hot-path events at 10% to reduce PostHog volume ( #4771 )
2026-04-11 16:25:38 +05:30
Ignazio De Santis
081eca6d8f
fix: guard temp_uuid_mapping lookups against LLM-hallucinated IDs ( fixes #3931 ) ( #4674 )
...
Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai >
2026-04-08 21:55:52 +05:30
Rakhee Singh
3ffea554bc
fix(azure_openai): forward response_format to Azure OpenAI API ( #4689 )
2026-04-08 19:22:02 +05:30
Utkarsh
fcbb70ab3b
fix: prevent thread and memory leaks from PostHog telemetry ( #4535 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai >
2026-04-03 20:01:04 +05:30
Shaik Faizan Roshan Ali
66d34fab3c
fix: update_memory endpoint passing dict instead of str ( #3933 ) ( #4595 )
2026-04-02 19:35:09 +05:30
Krishna Chaitanya
868b63af63
fix: use DatetimeRange for datetime string values in Qdrant range filters ( #4659 )
...
Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai >
2026-04-02 18:43:58 +05:30
Soumil Rathi
a33c557a25
feat(oss): port v3 pipeline with hybrid search, entity extraction, and additive scoring
...
Replace the 2-LLM-call add pipeline with a single-pass additive extraction
using ADDITIVE_EXTRACTION_PROMPT. Memories now accumulate (ADD-only) instead
of being updated/deleted during extraction.
Search pipeline upgraded to hybrid scoring combining three signals:
- Semantic similarity (vector search)
- BM25 keyword matching (native per vector store, 15 stores supported)
- Entity boost (spaCy NER with entity collection linking)
Combined score = (semantic + bm25 + entity_boost) / max_possible, where
max_possible adapts based on which signals are active.
Key changes:
- Add spaCy-based lemmatization for BM25 keyword search
- Add spaCy-based entity extraction (PROPER, QUOTED, COMPOUND, NOUN types)
- Add entity store as second vector collection ({collection}_entities)
- Add native keyword_search() to 15 vector store adapters
- Add batch embedding support (embed_batch) for OpenAI and Azure OpenAI
- Add message persistence in SQLite (rolling window of 10 per scope)
- Add additive scoring with adaptive normalization
- Add observation_date parameter to add()
- Add custom_instructions config field
- Default search threshold changed to 0.1
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 14:09:37 -07:00
Rakhee Singh
93bd4e248c
fix(deepseek): forward response_format to OpenAI-compatible API ( #4635 )
2026-03-31 18:06:53 +05:30
Rakhee Singh
dbac83218f
fix(vllm): forward response_format to OpenAI-compatible API ( #4608 )
...
Co-authored-by: rasingh5 <rasingh@demandbase.com >
2026-03-31 13:25:45 +05:30
HUANG XIAO
5d30af9560
feat(bedrock): add MiniMax provider support for AWS Bedrock ( #4609 )
2026-03-30 20:40:24 +05:30
Br1an
7213e1b1a6
fix: reset graph database in Memory.reset() ( #4185 )
...
Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai >
2026-03-30 18:45:38 +05:30
Himanshu
ae49edec44
fix(memory): centralize entity cleanup and skip malformed LLM relation dicts ( #4515 )
2026-03-28 21:23:05 +05:30
Br1an
27a6e7863e
fix: rebuild FAISS index on vector deletion ( #4178 )
2026-03-28 20:56:39 +05:30
Kartik
cd2dd7cc54
refactor: update default Gemini and Vertex AI embedder model to gemini-embedding-001 ( #4571 )
2026-03-28 20:39:27 +05:30
Kartik
c2698f2b71
fix: preserve original actor_id during memory update ( #4570 )
2026-03-28 00:02:58 +05:30
Utkarsh
e87240d4d9
fix(vector_stores): handle vector=None in Milvus and Qdrant update methods ( #4568 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 21:50:54 +05:30
Gopal Bagaswar
68cf4e118d
feat: add reasoning_effort parameter support for reasoning models ( #4461 )
2026-03-27 17:54:44 +05:30
Utkarsh
12624555b4
fix(memory): set updated_at on creation and preserve pre-existing created_at ( #4499 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 16:59:44 +05:30
Utkarsh
3ac4e047de
fix: merge multiple filter operators for same key ( #4559 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 20:28:37 +05:30
Utkarsh
a2ffca3266
fix: prevent SQL injection in Databricks vector store ( #4558 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 20:22:34 +05:30
zaid khan
5edc0cc99f
fix: update parameter added to the update function which is exposed t… ( #3799 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 20:02:33 +05:30
VictorECDSA
1aecfadf45
fix: add timestamps for DELETE operations in history ( #4492 )
2026-03-26 18:52:10 +05:30
Utkarsh
2a59c9fd99
fix: handle chatty LLM responses in JSON parsing ( #4525 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 16:39:17 +05:30
Himanshu
f06e2d744d
Fix/OpenAI embedding dimensions 4153 ( #4481 )
2026-03-25 19:59:28 +05:30
lamost423
f9e30304d7
fix: sanitize hyphens in Neo4j Cypher relationship names ( #4154 )
2026-03-25 19:58:27 +05:30
Varun Chawla
7e3b727528
Fix: prevent double embedding in mem0.add ( fixes #3723 ) ( #3996 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-25 18:14:48 +05:30
Utkarsh
2a36960f4c
fix: prevent in-place mutation of metadata in _create_memory ( #4529 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-25 13:56:30 +05:30
Himanshu
2e0f91e70d
fix(bedrock): omit topP for Anthropic Converse; use AWSBedrockConfig in LlmFactory ( #4469 )
2026-03-25 11:22:52 +05:30
Kartik
5431badfd4
fix: preserve custom metadata when updating memory ( #4495 )
2026-03-24 10:58:21 +05:30
Utkarsh
bda5b726bd
fix: avoid sending both temperature and top_p to Anthropic API ( #4471 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 21:00:41 +05:30
Utkarsh
5332741961
fix: clean up graph store data on Memory.delete() ( #4505 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 19:27:38 +05:30
Utkarsh
d8a6960b4a
fix: align Databricks docs with config and fix query mode selection ( #4477 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 19:20:11 +05:30
Himanshu
ecedbc11d9
fix(qdrant): do not remove local path on init ( #4473 ) ( #4475 )
2026-03-23 14:58:06 +05:30
Utkarsh
9aadfa3221
fix: add missing limit, threshold, infer, memory_type, and prompt params to REST API ( #4496 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 14:48:13 +05:30
Br1an
cc45561abd
fix: accept default /tmp/chroma path in ChromaDbConfig validator ( #4179 )
2026-03-23 14:12:49 +05:30
Varun Chawla
7cebaba0a2
fix: upgrade MongoDB vector store from deprecated knnVector to GA vectorSearch ( #3995 )
...
Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 12:20:17 +05:30
Kartik
eb780f4880
refactor: add vector validation to OpenSearchDB to ensure non‑null, non‑empty, and correct‑dimension vectors ( #4472 )
2026-03-21 20:36:26 +05:30
longway
7a09663156
fix(qdrant): implement enhanced metadata filtering operators ( #4127 )
...
Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 19:37:26 +05:30
Utkarsh
bf9a5703b1
feat: integrate turbopuffer as vector database provider ( #4428 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-21 19:28:25 +05:30
darrenxu
884e740b53
fix(graph): soft-delete graph relationships instead of hard DELETE ( #4188 )
...
Signed-off-by: sxu75374 <imshuaixu@gmail.com >
Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai >
2026-03-21 17:32:59 +05:30
Kartik
abdb07c204
fix: handle None content and empty candidates in GeminiLLM parsing ( #4462 )
2026-03-21 13:52:13 +05:30
Utkarsh
305ce7b6b3
feat: add Apache AGE graph store support ( #4448 )
...
Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 20:27:48 +05:30