Best for: Long sessions where raw history is unnecessary, cost-consciousSummary memory works independently — no need to enable full session memory.
The agent recalls key facts through a generated summary instead of raw messages.
from upsonic import Agent, Taskfrom upsonic.storage.memory import Memoryfrom upsonic.storage.sqlite import SqliteStoragestorage = SqliteStorage(db_file="notes.db")memory = Memory( storage=storage, session_id="notes_001", full_session_memory=False, # No raw history summary_memory=True, # Summary generated and injected model="anthropic/claude-sonnet-4-5")agent = Agent("anthropic/claude-sonnet-4-5", memory=memory)result1 = agent.do(Task("The project deadline is next Friday"))result2 = agent.do(Task("When is the deadline?"))print(result2) # Recalls via summary
Best for: Full personalization with context preservation
from upsonic import Agent, Taskfrom upsonic.storage.memory import Memoryfrom upsonic.storage.sqlite import SqliteStoragestorage = SqliteStorage(db_file="assistant.db")memory = Memory( storage=storage, session_id="session_001", user_id="user_123", full_session_memory=True, summary_memory=True, user_analysis_memory=True, num_last_messages=15, model="anthropic/claude-sonnet-4-5")agent = Agent("anthropic/claude-sonnet-4-5", memory=memory)result1 = agent.do(Task("Hi! I'm a data scientist learning about LLMs"))result2 = agent.do(Task("What recommendations do you have for me?"))print(result2) # Personalized based on user profile