Skip to main content
Memory is a class that manages conversation history, session summaries, and long-term user memories for AI agents. It provides comprehensive memory management capabilities including adding new memories, searching memories, and deleting memories.

MemoryManager

The MemoryManager class is responsible for managing user memories, including creating, retrieving, updating, and deleting memories.

Constructor Parameters

ParameterTypeDescriptionDefault
modelOptional[Model]Model used for memory operationsNone
system_messageOptional[str]Custom system prompt for the memory managerNone
memory_capture_instructionsOptional[str]Custom instructions for memory creation and filteringNone
additional_instructionsOptional[str]Additional instructions added to the system messageNone
dbOptional[BaseDb]Database for storing memoriesNone
debug_modeboolWhether to enable debug loggingFalse

Key Methods

User Memory Management

MethodDescriptionParametersReturns
get_user_memoriesRetrieves all memories for a useruser_id: Optional[str] = NoneOptional[List[UserMemory]]
get_user_memoryGets a specific memory by IDmemory_id: str, user_id: Optional[str] = NoneOptional[UserMemory]
add_user_memoryAdds a new memory and returns the memory IDmemory: UserMemory, user_id: Optional[str] = NoneOptional[str]
replace_user_memoryUpdates an existing memory and returns the memory IDmemory_id: str, memory: UserMemory, user_id: Optional[str] = NoneOptional[str]
delete_user_memoryDeletes a memory by IDmemory_id: str, user_id: Optional[str] = NoneNone
clearClears all memories from the databaseNoneNone
MethodDescriptionParametersReturns
create_user_memoriesCreates memories from text or messagesmessage: Optional[str] = None, messages: Optional[List[Message]] = None, agent_id: Optional[str] = None, team_id: Optional[str] = None, user_id: Optional[str] = Nonestr
acreate_user_memoriesCreates memories from text or messages (Async)message: Optional[str] = None, messages: Optional[List[Message]] = None, agent_id: Optional[str] = None, team_id: Optional[str] = None, user_id: Optional[str] = Nonestr
search_user_memoriesSearches user memories using specified retrieval methodquery: Optional[str] = None, limit: Optional[int] = None, retrieval_method: Optional[Literal["last_n", "first_n", "agentic"]] = None, user_id: Optional[str] = NoneList[UserMemory]

Memory Task Management

MethodDescriptionParametersReturns
update_memory_taskUpdates memories based on a task descriptiontask: str, user_id: Optional[str] = Nonestr
aupdate_memory_taskUpdates memories based on a task description (Async)task: str, user_id: Optional[str] = Nonestr

Utility Methods

MethodDescriptionParametersReturns
initializeInitializes the memory manageruser_id: Optional[str] = NoneNone
read_from_dbReads memories from the databaseuser_id: Optional[str] = NoneOptional[Dict[str, List[UserMemory]]]

Retrieval Methods

The search_user_memories method supports the following retrieval methods:
  • last_n: Returns the most recent memories
  • first_n: Returns the oldest memories
  • agentic: Returns memories most similar to the query using an AI-powered semantic search