Basic State
This example demonstrates how to create an agent with basic session state management, maintaining a shopping list across interactions using SQLite storage.
Create a Python file
1from kern.agent import Agent2from kern.db.sqlite import SqliteDb3from kern.models.openai import OpenAIResponses456def add_item(session_state, item: str) -> str:7 """Add an item to the shopping list."""8 session_state["shopping_list"].append(item)9 return f"The shopping list is now {session_state['shopping_list']}"101112agent = Agent(13 model=OpenAIResponses(id="gpt-5.2"),14 session_state={"shopping_list": []},15 db=SqliteDb(db_file="tmp/agents.db"),16 tools=[add_item],17 instructions="Current state (shopping list) is: {shopping_list}",18 markdown=True,19)2021agent.print_response("Add milk, eggs, and bread to the shopping list", stream=True)22print(f"Final session state: {agent.get_session_state()}")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_basic.py