State in Context
This example demonstrates how to use session state and manage user context across different sessions. It shows how session state persists and can be retrieved for different users and sessions.
Create a Python file
1from kern.agent import Agent2from kern.db.sqlite import SqliteDb3from kern.models.openai import OpenAIResponses45db = SqliteDb(db_file="tmp/agent.db")67agent = Agent(8 model=OpenAIResponses(id="gpt-5.2"),9 instructions="Users name is {user_name} and age is {age}",10 db=db,11)1213# Sets the session state for the session with the id "user_1_session_1"14agent.print_response(15 "What is my name?",16 session_id="user_1_session_1",17 user_id="user_1",18 session_state={"user_name": "John", "age": 30},19 stream=True,20)2122# Will load the session state from the session with the id "user_1_session_1"23agent.print_response("How old am I?", session_id="user_1_session_1", user_id="user_1", stream=True)2425# Sets the session state for the session with the id "user_2_session_1"26agent.print_response(27 "What is my name?",28 session_id="user_2_session_1",29 user_id="user_2",30 session_state={"user_name": "Jane", "age": 25},31 stream=True,32)3334# Will load the session state from the session with the id "user_2_session_1"35agent.print_response("How old am I?", session_id="user_2_session_1", user_id="user_2", stream=True)Set up your virtual environment
1uv venv --python 3.122source .venv/bin/activate1uv venv --python 3.122.venv\Scripts\activateInstall dependencies
1uv pip install -U kern-ai openaiExport your OpenAI API key
Set OpenAI Key
Set your OPENAI_API_KEY as an environment variable. You can get one from OpenAI.
1export OPENAI_API_KEY=sk-***1setx OPENAI_API_KEY sk-***Run Agent
1python session_state_in_context.py