From 99ec3c17b69ae020a4c8179a3f705e2377fb9bcd Mon Sep 17 00:00:00 2001 From: Brandon Hancock Date: Fri, 7 Feb 2025 13:40:22 -0500 Subject: [PATCH] clean up short term memory --- .../memory/short_term/short_term_memory.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/crewai/memory/short_term/short_term_memory.py b/src/crewai/memory/short_term/short_term_memory.py index 8953745c7..42fbe20a2 100644 --- a/src/crewai/memory/short_term/short_term_memory.py +++ b/src/crewai/memory/short_term/short_term_memory.py @@ -1,5 +1,7 @@ from typing import Any, Dict, Optional +from pydantic import PrivateAttr + from crewai.memory.memory import Memory from crewai.memory.short_term.short_term_memory_item import ShortTermMemoryItem from crewai.memory.storage.rag_storage import RAGStorage @@ -14,15 +16,16 @@ class ShortTermMemory(Memory): MemoryItem instances. """ - memory_provider: Any + _memory_provider: Optional[str] = PrivateAttr() def __init__(self, crew=None, embedder_config=None, storage=None, path=None): + # Determine memory_provider without assigning it directly as a public field. if crew and hasattr(crew, "memory_config") and crew.memory_config is not None: - self.memory_provider = crew.memory_config.get("provider") + memory_provider = crew.memory_config.get("provider") else: - self.memory_provider = None + memory_provider = None - if self.memory_provider == "mem0": + if memory_provider == "mem0": try: from crewai.memory.storage.mem0_storage import Mem0Storage except ImportError: @@ -41,7 +44,10 @@ class ShortTermMemory(Memory): path=path, ) ) + # First call the parent __init__ so that Pydantic's internals are set. super().__init__(storage=storage) + # Now assign the private attribute. + self._memory_provider = memory_provider def save( self, @@ -50,7 +56,7 @@ class ShortTermMemory(Memory): agent: Optional[str] = None, ) -> None: item = ShortTermMemoryItem(data=value, metadata=metadata, agent=agent) - if self.memory_provider == "mem0": + if self._memory_provider == "mem0": item.data = f"Remember the following insights from Agent run: {item.data}" super().save(value=item.data, metadata=item.metadata, agent=item.agent)