Skip to main content

Memory Type Overview

Memory TypePurposeWhen to Use
Conversation MemoryFull chat historyMulti-turn conversations, detailed context
Summary MemoryCondensed summariesLong sessions
User Analysis MemoryUser profilesPersonalization, cross-session learning

Decision Guide

Conversation Memory Only

Best for: Short sessions, detailed context needed, debugging
from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage

storage = SqliteStorage(db_file="support.db")

memory = Memory(
    storage=storage,
    session_id="support_001",
    full_session_memory=True
)

agent = Agent("openai/gpt-4o", memory=memory)

result1 = agent.do(Task("My order #12345 hasn't arrived"))
result2 = agent.do(Task("I ordered it last week"))
print(result2)  # Agent remembers order context

Summary Memory

Best for: Long sessions, cost-conscious, overview needed
from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage

storage = SqliteStorage(db_file="meetings.db")

memory = Memory(
    storage=storage,
    session_id="meeting_001",
    full_session_memory=True
    summary_memory=True,
    model="openai/gpt-4o-mini"  # Required for summaries
)

agent = Agent("openai/gpt-4o", memory=memory)

result1 = agent.do(Task("Let's discuss Q1 revenue targets"))
result2 = agent.do(Task("Now let's cover hiring plans"))
result3 = agent.do(Task("Summarize what we've covered"))
print(result3)

User Analysis Memory Only

Best for: Cross-session personalization, user preferences
from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage

storage = SqliteStorage(db_file="users.db")

memory = Memory(
    storage=storage,
    session_id="session_001",
    user_id="user_abc",
    user_analysis_memory=True,
    model="openai/gpt-4o"
)

agent = Agent("openai/gpt-4o", memory=memory)

result = agent.do(Task("I'm a backend developer who prefers Python"))
print(result)  # Agent learns about user

Conversation + Summary

Best for: Long conversations with detailed context needed
from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage

storage = SqliteStorage(db_file="tutoring.db")

memory = Memory(
    storage=storage,
    session_id="lesson_001",
    full_session_memory=True,
    summary_memory=True,
    num_last_messages=20,  # Keep last 20 turns + summary
    model="openai/gpt-4o-mini"
)

agent = Agent("openai/gpt-4o", memory=memory)

result = agent.do(Task("Let's continue learning Python functions"))
print(result)

All Three Memory Types

Best for: Full personalization with context preservation
from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage

storage = 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="openai/gpt-4o"
)

agent = Agent("openai/gpt-4o", 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

Use Case Examples

Use CaseRecommended Configuration
Customer Supportfull_session_memory=True, user_analysis_memory=True
Meeting Notessummary_memory=True
Personal AssistantAll three memory types
Quick Q&Afull_session_memory=True only
Learning Platformfull_session_memory=True, summary_memory=True, user_analysis_memory=True
Code Assistantfull_session_memory=True, feed_tool_call_results=True