Skip to main content
The MemoryManager class enables agents to create, update, and recall long-term memories about users across sessions.

Constructor

from agno.memory import MemoryManager
from agno.db.sqlite import SQLiteDb

db = SQLiteDb(db_file="agent.db")

memory_manager = MemoryManager(
    model="gpt-4o",
    db=db
)

Parameters

model
Model | str
default:"None"
Model used for memory extraction and management. Defaults to gpt-4o if not provided.
db
BaseDb | AsyncBaseDb
required
Database to store memories.
system_message
str
default:"None"
Custom system message for the memory manager.
memory_capture_instructions
str
default:"None"
Custom instructions for capturing memories.
additional_instructions
str
default:"None"
Additional instructions appended to the system message.
add_memories
bool
default:"True"
Whether to allow adding new memories.
update_memories
bool
default:"True"
Whether to allow updating existing memories.
delete_memories
bool
default:"False"
Whether to allow deleting memories.
clear_memories
bool
default:"False"
Whether to allow clearing all memories.
debug_mode
bool
default:"False"
Enable debug logging.

Methods

get_user_memories()

Get all memories for a user.
memories = memory_manager.get_user_memories(user_id="user_1")

for memory in memories:
    print(f"{memory.topic}: {memory.content}")

aget_user_memories()

Async version of get_user_memories().
memories = await memory_manager.aget_user_memories(user_id="user_1")

add_user_memory()

Add a new memory.
from agno.db.schemas import UserMemory

memory = UserMemory(
    content="User prefers dark mode",
    topic="preferences"
)

memory_id = memory_manager.add_user_memory(
    memory=memory,
    user_id="user_1"
)

delete_user_memory()

Delete a specific memory.
memory_manager.delete_user_memory(
    memory_id="mem_123",
    user_id="user_1"
)

clear_user_memories()

Clear all memories for a user.
memory_manager.clear_user_memories(user_id="user_1")

clear()

Clear all memories from the database.
memory_manager.clear()

Agent Integration

from agno import Agent
from agno.memory import MemoryManager
from agno.db.sqlite import SQLiteDb

db = SQLiteDb(db_file="agent.db")

agent = Agent(
    model="gpt-4o",
    db=db,
    memory_manager=MemoryManager(db=db),
    update_memory_on_run=True,
    add_memories_to_context=True
)

# Agent automatically creates and recalls memories
response = agent.run("My favorite color is blue", user_id="user_1")
response = agent.run("What's my favorite color?", user_id="user_1")

Example Usage

from agno import Agent
from agno.memory import MemoryManager
from agno.db.sqlite import SQLiteDb

db = SQLiteDb(db_file="memories.db")

agent = Agent(
    model="gpt-4o",
    db=db,
    memory_manager=MemoryManager(db=db),
    update_memory_on_run=True,
    add_memories_to_context=True
)

# Conversation 1
response = agent.run("I love pizza", user_id="alice")

# Conversation 2 (different session, same user)
response = agent.run(
    "What should I have for dinner?",
    user_id="alice",
    session_id="session_2"
)
# Agent recalls: "I remember you love pizza!"

UserMemory Schema

Memories are stored as UserMemory objects:
  • memory_id: Unique identifier
  • user_id: User the memory belongs to
  • content: The memory content
  • topic: Optional topic/category
  • metadata: Additional metadata
  • updated_at: Last update timestamp

Best Practices

  1. Enable memory: Set update_memory_on_run=True for automatic memory creation
  2. Add to context: Set add_memories_to_context=True for memory recall
  3. User IDs: Always provide user_id for multi-user applications
  4. Privacy: Implement proper access controls for user memories
  5. Cleanup: Provide users a way to view and delete their memories
  6. Topics: Use topics to organize different types of memories

Build docs developers (and LLMs) love