From b3d340f59c73e93b15a7c63b17dd3d1e27ae0cc3 Mon Sep 17 00:00:00 2001 From: Chaithanya Kumar Date: Fri, 23 May 2025 15:05:07 +0530 Subject: [PATCH] =?UTF-8?q?Fix:=20Prevent=20saving=20prompt=20artifacts=20?= =?UTF-8?q?as=20memory=20when=20no=20new=20facts=20are=20=E2=80=A6=20(#274?= =?UTF-8?q?4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Deshraj Yadav --- mem0/memory/main.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/mem0/memory/main.py b/mem0/memory/main.py index 585b73b2..c55079d5 100644 --- a/mem0/memory/main.py +++ b/mem0/memory/main.py @@ -334,6 +334,10 @@ class Memory(MemoryBase): logging.error(f"Error in new_retrieved_facts: {e}") new_retrieved_facts = [] + if not new_retrieved_facts: + logger.debug("No new facts retrieved from input. Skipping memory update LLM call.") + return [] + retrieved_old_memory = [] new_message_embeddings = {} for new_mem in new_retrieved_facts: @@ -1137,6 +1141,11 @@ class AsyncMemory(MemoryBase): response = remove_code_blocks(response) new_retrieved_facts = json.loads(response)["facts"] except Exception as e: + new_retrieved_facts = [] + + if not new_retrieved_facts: + logger.info("No new facts retrieved from input. Skipping memory update LLM call.") + return [] logging.error(f"Error in new_retrieved_facts: {e}") new_retrieved_facts = [] @@ -1180,16 +1189,25 @@ class AsyncMemory(MemoryBase): response_format={"type": "json_object"}, ) except Exception as e: + + response = "" logging.error(f"Error in new memory actions response: {e}") response = "" - try: response = remove_code_blocks(response) new_memories_with_actions = json.loads(response) except Exception as e: + + new_memories_with_actions = {} + + if not new_memories_with_actions: + logger.info("No new facts retrieved from input (async). Skipping memory update LLM call.") + return [] + logging.error(f"Invalid JSON response: {e}") new_memories_with_actions = {} + returned_memories = [] try: memory_tasks = []