Documentation Index
Fetch the complete documentation index at: https://docs.upsonic.ai/llms.txt
Use this file to discover all available pages before exploring further.
Memory Type Overview
| Memory Type | Purpose | When to Use |
|---|
| Conversation Memory | Full chat history | Multi-turn conversations, detailed context |
| Summary Memory | Condensed summaries | Long sessions, cost-efficient recall |
| User Analysis Memory | User profiles | Personalization, 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("anthropic/claude-sonnet-4-5", 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 Only
Best for: Long sessions where raw history is unnecessary, cost-conscious
Summary 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, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage
storage = 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
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="meetings.db")
memory = Memory(
storage=storage,
session_id="meeting_001",
full_session_memory=True,
summary_memory=True,
model="anthropic/claude-sonnet-4-5"
)
agent = Agent("anthropic/claude-sonnet-4-5", 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="anthropic/claude-sonnet-4-5"
)
agent = Agent("anthropic/claude-sonnet-4-5", memory=memory)
result = agent.do(Task("I'm a backend developer who prefers Python"))
print(result) # Agent learns about user
Conversation + Summary (Save-Only History)
Best for: Long conversations where you want full history in storage for auditing but only inject summaries to save tokens
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, # Save full history
summary_memory=True, # Save summaries
load_full_session_memory=False, # Don't inject raw history
load_summary_memory=True, # Inject summary only
num_last_messages=20,
model="anthropic/claude-sonnet-4-5"
)
agent = Agent("anthropic/claude-sonnet-4-5", 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="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
Token-Efficient Full Setup
Best for: Production systems that need full data persistence but minimal token usage
from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage
storage = SqliteStorage(db_file="production.db")
memory = Memory(
storage=storage,
session_id="session_001",
user_id="user_123",
full_session_memory=True, # Save everything
summary_memory=True,
user_analysis_memory=True,
load_full_session_memory=False, # Don't inject raw history
load_summary_memory=True, # Inject summary instead
load_user_analysis_memory=True, # Inject user profile
model="anthropic/claude-sonnet-4-5"
)
agent = Agent("anthropic/claude-sonnet-4-5", memory=memory)
result = agent.do(Task("Continue where we left off"))
print(result)
Use Case Examples
| Use Case | Recommended Configuration |
|---|
| Customer Support | full_session_memory=True, user_analysis_memory=True |
| Meeting Notes | summary_memory=True |
| Personal Assistant | All three memory types |
| Quick Q&A | full_session_memory=True only |
| Learning Platform | All three memory types |
| Code Assistant | full_session_memory=True, feed_tool_call_results=True |
| High-Volume Production | All three save flags True, load_full_session_memory=False, load_summary_memory=True |