User memory, session summaries, and memory optimization.
from agno.memory import MemoryManager
class MemoryManager:
def __init__(
self,
db: Union[BaseDb, AsyncBaseDb],
**kwargs
): ...
def create_memories(
self,
user_id: str,
memories: List[str]
) -> None:
"""Create user memories."""
def read_memories(
self,
user_id: str
) -> List[UserMemory]:
"""Read user memories."""from agno.memory import UserMemory
class UserMemory:
def __init__(
self,
memory: str,
user_id: str,
id: Optional[str] = None,
**kwargs
): ...from agno.memory import (
MemoryOptimizationStrategy,
SummarizeStrategy,
MemoryOptimizationStrategyType
)
class MemoryOptimizationStrategy:
"""Base class for memory optimization strategies"""
class SummarizeStrategy(MemoryOptimizationStrategy):
"""Summarize messages to save context"""
def __init__(
self,
model: Model,
**kwargs
): ...from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.db.sqlite import SqliteDb
from agno.memory import MemoryManager
db = SqliteDb(db_file="agent.db")
agent = Agent(
model=OpenAIChat(id="gpt-4"),
db=db,
memory_manager=MemoryManager(db=db),
enable_user_memories=True,
add_memories_to_context=True
)
# Agent will remember user preferences
agent.run("I prefer Python over JavaScript", user_id="user123")
agent.run("What programming language do I prefer?", user_id="user123")