Team with Memory Manager
Run a custom MemoryManager on each team run to reconcile user memories with the latest input.
The local database setup below requires Docker.
Set update_memory_on_run=True and pass a custom MemoryManager to run it on every team run. Automatic extraction can create, update, and delete user memories based on the latest input. The manager's delete_memories flag does not disable deletion on this automatic path; it controls agentic memory updates.
Code
from uuid import uuid4
from agno.agent import Agent
from agno.db.postgres import PostgresDb
from agno.memory import MemoryManager
from agno.models.openai import OpenAIResponses
from agno.team import Team
from rich.pretty import pprint
db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
db = PostgresDb(db_url=db_url)
session_id = str(uuid4())
john_doe_id = "john_doe@example.com"
memory_manager = MemoryManager(model=OpenAIResponses(id="gpt-5.2"))
agent = Agent(
model=OpenAIResponses(id="gpt-5.2"),
)
team = Team(
model=OpenAIResponses(id="gpt-5.2"),
memory_manager=memory_manager,
members=[agent],
db=db,
update_memory_on_run=True,
)
team.print_response(
"My name is John Doe and I like to hike in the mountains on weekends.",
stream=True,
user_id=john_doe_id,
session_id=session_id,
)
team.print_response(
"What are my hobbies?", stream=True, user_id=john_doe_id, session_id=session_id
)
memories = team.get_user_memories(user_id=john_doe_id)
print("John Doe's memories:")
pprint(memories)Usage
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno openai sqlalchemy 'psycopg[binary]'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:18Set environment variables
export OPENAI_API_KEY=your_openai_api_key_hereRun the example
python team_with_memory_manager.py