Why do we need Session Storage? Teams are ephemeral and stateless. When you run a Team, no state is persisted automatically. In production environments, we serve (or trigger) Teams via an API and need to continue the same session across multiple requests. Storage persists the session history and state in a database and allows us to pick up where we left off. Here is a simple example showing how to configure storage for a Team:
from agno.team import Team
from agno.db.postgres import PostgresDb

db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
db = PostgresDb(db_url=db_url)

team = Team(members=[], db=db)
team.print_response("What is the capital of France?")
team.print_response("What was my question?")

See Agent Session Storage for more details on how sessions are stored in general.

Session table schema

If you have a db configured for your team, the sessions will be stored in the sessions table in your database. The schema for the sessions table is as follows:
FieldTypeDescription
session_idstrThe unique identifier for the session.
session_typestrThe type of the session.
agent_idstrThe agent ID of the session.
team_idstrThe team ID of the session.
workflow_idstrThe workflow ID of the session.
user_idstrThe user ID of the session.
session_datadictThe data of the session.
agent_datadictThe data of the agent.
team_datadictThe data of the team.
workflow_datadictThe data of the workflow.
metadatadictThe metadata of the session.
runslistThe runs of the session.
summarydictThe summary of the session.
created_atintThe timestamp when the session was created.
updated_atintThe timestamp when the session was last updated.
This data is best displayed on the sessions page of the AgentOS UI.

Developer Resources