Fix: Prevent saving prompt artifacts as memory when no new facts are … (#2744)

Co-authored-by: Deshraj Yadav <deshraj@gatech.edu>
This commit is contained in:
Chaithanya Kumar
2025-05-23 15:05:07 +05:30
committed by GitHub
parent 78e2efc0f2
commit b3d340f59c

View File

@@ -334,6 +334,10 @@ class Memory(MemoryBase):
logging.error(f"Error in new_retrieved_facts: {e}") logging.error(f"Error in new_retrieved_facts: {e}")
new_retrieved_facts = [] 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 = [] retrieved_old_memory = []
new_message_embeddings = {} new_message_embeddings = {}
for new_mem in new_retrieved_facts: for new_mem in new_retrieved_facts:
@@ -1137,6 +1141,11 @@ class AsyncMemory(MemoryBase):
response = remove_code_blocks(response) response = remove_code_blocks(response)
new_retrieved_facts = json.loads(response)["facts"] new_retrieved_facts = json.loads(response)["facts"]
except Exception as e: 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}") logging.error(f"Error in new_retrieved_facts: {e}")
new_retrieved_facts = [] new_retrieved_facts = []
@@ -1180,16 +1189,25 @@ class AsyncMemory(MemoryBase):
response_format={"type": "json_object"}, response_format={"type": "json_object"},
) )
except Exception as e: except Exception as e:
response = ""
logging.error(f"Error in new memory actions response: {e}") logging.error(f"Error in new memory actions response: {e}")
response = "" response = ""
try: try:
response = remove_code_blocks(response) response = remove_code_blocks(response)
new_memories_with_actions = json.loads(response) new_memories_with_actions = json.loads(response)
except Exception as e: 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}") logging.error(f"Invalid JSON response: {e}")
new_memories_with_actions = {} new_memories_with_actions = {}
returned_memories = [] returned_memories = []
try: try:
memory_tasks = [] memory_tasks = []