Skip to main content

Overview

Summary Memory generates and maintains an evolving summary of key conversation points.

Basic Usage

from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage

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

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

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

result1 = agent.do(Task("Let's discuss Python web frameworks"))
result2 = agent.do(Task("How does Django compare to Flask?"))
result3 = agent.do(Task("What have we discussed so far?"))
print(result3)  # Uses summary for context

Combined with Conversation Memory

Use both for detailed context + cost-efficient summaries:
from upsonic import Agent, Task
from upsonic.storage.memory import Memory
from upsonic.storage.sqlite import SqliteStorage

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

memory = Memory(
    storage=storage,
    session_id="session_001",
    full_session_memory=True,
    summary_memory=True,
    num_last_messages=10,  # Recent history + summary for older context
    model="openai/gpt-4o-mini"
)

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

result = agent.do(Task("Continue our database optimization discussion"))
print(result)

How It Works

  1. After each completed run, the session summary is updated
  2. Summary includes key points, user preferences, and topics discussed
  3. Summary is injected as context for subsequent interactions
  4. Older message history can be replaced by summary to reduce costs

Parameters

ParameterTypeDefaultDescription
summary_memoryboolFalseEnable summary generation
session_idstrauto-generatedSession identifier
modelstr | Model(required)Model for generating summaries