From 80749b92bf5021cc5ca47687f2709a824e3e79d9 Mon Sep 17 00:00:00 2001 From: Soumil Rathi Date: Wed, 1 Apr 2026 21:49:21 -0700 Subject: [PATCH] fix(oss): align API naming with platform v3 - Rename `observation_date` param to `timestamp` (matches platform) - Change `rerank` default from True to False (matches platform) - Internal prompt builder still uses "Observation Date" section heading for LLM compatibility with ADDITIVE_EXTRACTION_PROMPT Co-Authored-By: Claude Opus 4.6 (1M context) --- mem0/configs/prompts.py | 4 ++-- mem0/memory/main.py | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mem0/configs/prompts.py b/mem0/configs/prompts.py index ce87bb25b..4175edbc6 100644 --- a/mem0/configs/prompts.py +++ b/mem0/configs/prompts.py @@ -1056,7 +1056,7 @@ def generate_additive_extraction_prompt( *, last_k_messages=None, current_date=None, - observation_date=None, + timestamp=None, custom_instructions=None, use_input_language=False, ): @@ -1065,7 +1065,7 @@ def generate_additive_extraction_prompt( Pairs with ADDITIVE_EXTRACTION_PROMPT system prompt. The LLM will produce only ADD operations, with optional linked_memory_ids. """ - current_date, observation_date = _resolve_dates(current_date, observation_date) + current_date, observation_date = _resolve_dates(current_date, timestamp) sections = [] sections.append(f"## Summary\n{_format_summary(summary)}") diff --git a/mem0/memory/main.py b/mem0/memory/main.py index 79ab0503b..e5481783c 100644 --- a/mem0/memory/main.py +++ b/mem0/memory/main.py @@ -376,7 +376,7 @@ class Memory(MemoryBase): infer: bool = True, memory_type: Optional[str] = None, prompt: Optional[str] = None, - observation_date: Optional[str] = None, + timestamp: Optional[str] = None, ): """ Create a new memory. @@ -455,7 +455,7 @@ class Memory(MemoryBase): messages = parse_vision_messages(messages) with concurrent.futures.ThreadPoolExecutor() as executor: - future1 = executor.submit(self._add_to_vector_store, messages, processed_metadata, effective_filters, infer, observation_date) + future1 = executor.submit(self._add_to_vector_store, messages, processed_metadata, effective_filters, infer, timestamp) future2 = executor.submit(self._add_to_graph, messages, effective_filters) concurrent.futures.wait([future1, future2]) @@ -471,7 +471,7 @@ class Memory(MemoryBase): return {"results": vector_store_result} - def _add_to_vector_store(self, messages, metadata, filters, infer, observation_date=None): + def _add_to_vector_store(self, messages, metadata, filters, infer, timestamp=None): if not infer: returned_memories = [] for message_dict in messages: @@ -547,7 +547,7 @@ class Memory(MemoryBase): new_messages=parsed_messages, last_k_messages=last_messages, custom_instructions=custom_instr, - observation_date=observation_date, + timestamp=timestamp, ) try: @@ -871,7 +871,7 @@ class Memory(MemoryBase): limit: int = 100, filters: Optional[Dict[str, Any]] = None, threshold: float = 0.1, - rerank: bool = True, + rerank: bool = False, ): """ Searches for memories based on a query @@ -2077,7 +2077,7 @@ class AsyncMemory(MemoryBase): filters: Optional[Dict[str, Any]] = None, threshold: float = 0.1, metadata_filters: Optional[Dict[str, Any]] = None, - rerank: bool = True, + rerank: bool = False, ): """ Searches for memories based on a query