Custom Memory Manager Configuration

Configure a MemoryManager separately from the Agent and apply custom memory capture instructions.

custom_memory_manager.py
"""
Custom Memory Manager Configuration
===================================

This example shows how to configure a MemoryManager separately from the Agent
and apply custom memory capture instructions.
"""

from agno.agent.agent import Agent
from agno.db.postgres import PostgresDb
from agno.memory import MemoryManager
from agno.models.openai import OpenAIChat
from rich.pretty import pprint

# ---------------------------------------------------------------------------
# Setup
# ---------------------------------------------------------------------------
db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
db = PostgresDb(db_url=db_url)

# ---------------------------------------------------------------------------
# Create Memory Manager
# ---------------------------------------------------------------------------
memory_manager = MemoryManager(
    model=OpenAIChat(id="gpt-5.6-luna"),
    additional_instructions="""
    IMPORTANT: Don't store any memories about the user's name. Just say "The User" instead of referencing the user's name.
    """,
    db=db,
)

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
    model=OpenAIChat(id="gpt-5.6-luna"),
    db=db,
    memory_manager=memory_manager,
    update_memory_on_run=True,
    user_id="john_doe@example.com",
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    john_doe_id = "john_doe@example.com"

    agent.print_response(
        "My name is John Doe and I like to swim and play soccer.", stream=True
    )

    agent.print_response("I dont like to swim", stream=True)

    memories = agent.get_user_memories(user_id=john_doe_id)
    print("John Doe's memories:")
    pprint(memories)

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno "psycopg[binary]" openai sqlalchemy

Export your OpenAI API key

export OPENAI_API_KEY="your_openai_api_key_here"

Run PgVector

docker run -d \
  -e POSTGRES_DB=ai \
  -e POSTGRES_USER=ai \
  -e POSTGRES_PASSWORD=ai \
  -e PGDATA=/var/lib/postgresql \
  -v pgvolume:/var/lib/postgresql \
  -p 5532:5432 \
  --name pgvector \
  agnohq/pgvector:18

Run the example

Save the code above as custom_memory_manager.py, then run:

python custom_memory_manager.py

Full source: cookbook/11_memory/04_custom_memory_manager.py