from upsonic import Agent, Task
from upsonic.storage import Memory, SqliteStorage
from upsonic.models.openai import OpenAIChatModel
# Create storage and model
storage = SqliteStorage(db_file="full_memory.db")
model = OpenAIChatModel("gpt-4o-mini")
# Full memory configuration with all options
memory = Memory(
storage=storage,
session_id="advanced_session",
user_id="user_001",
full_session_memory=True, # Store complete conversation history
summary_memory=True, # Generate conversation summaries
user_analysis_memory=True, # Build user profiles and traits
user_profile_schema=None, # Custom user profile schema
dynamic_user_profile=False, # Use dynamic profile generation
num_last_messages=None, # Limit conversation history
model=model, # LLM for analysis tasks
debug=False, # Enable debug logging
feed_tool_call_results=False, # Include tool results in memory
user_memory_mode='update' # 'update' or 'replace' user profiles
)
# Create agent with full memory
agent = Agent(
model="openai/gpt-4o",
name="AdvancedMemoryAgent",
memory=memory
)
# Test conversation with memory
task = Task("I prefer conservative investments and my goal is retirement savings")
result = agent.do(task)
print(result)