Change State On Run
Demonstrates per-run session state overrides for different users/sessions.
"""
Change State On Run
===================
Demonstrates per-run session state overrides for different users/sessions.
"""
from agno.db.in_memory import InMemoryDb
from agno.models.openai import OpenAIResponses
from agno.team import Team
# ---------------------------------------------------------------------------
# Create Team
# ---------------------------------------------------------------------------
team = Team(
db=InMemoryDb(),
model=OpenAIResponses(id="gpt-5.2"),
members=[],
instructions="Users name is {user_name} and age is {age}",
)
# ---------------------------------------------------------------------------
# Run Team
# ---------------------------------------------------------------------------
if __name__ == "__main__":
team.print_response(
"What is my name?",
session_id="user_1_session_1",
user_id="user_1",
session_state={"user_name": "John", "age": 30},
)
team.print_response(
"How old am I?",
session_id="user_1_session_1",
user_id="user_1",
)
team.print_response(
"What is my name?",
session_id="user_2_session_1",
user_id="user_2",
session_state={"user_name": "Jane", "age": 25},
)
team.print_response(
"How old am I?",
session_id="user_2_session_1",
user_id="user_2",
)State lifetime
The first call supplies each user's state; the next call reloads it from the same session in InMemoryDb. This state lasts for the lifetime of the database object. Reuse the same session and user IDs, and configure a persistent database to keep it across process restarts.
Run the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno openaiExport your OpenAI API key
export OPENAI_API_KEY="your_openai_api_key_here"Run the example
Save the code above as change_state_on_run.py, then run:
python change_state_on_run.pyFull source: cookbook/03_teams/21_state/change_state_on_run.py