Agentic State

This example demonstrates how to enable agentic session state management, allowing the agent to automatically update and manage session state based on conversation context. The agent can modify the shopping list based on user interactions.

Create a Python file

1from kern.agent import Agent
2from kern.db.sqlite import SqliteDb
3from kern.models.openai import OpenAIResponses
4
5db = SqliteDb(db_file="tmp/agents.db")
6agent = Agent(
7 model=OpenAIResponses(id="gpt-5.2"),
8 db=db,
9 session_state={"shopping_list": []},
10 add_session_state_to_context=True,
11 enable_agentic_state=True,
12)
13
14agent.print_response("Add milk, eggs, and bread to the shopping list", stream=True)
15
16agent.print_response("I picked up the eggs, now what's on my list?", stream=True)
17
18print(f"Session state: {agent.get_session_state()}")

Set up your virtual environment

1uv venv --python 3.12
2source .venv/bin/activate
1uv venv --python 3.12
2.venv\Scripts\activate

Install dependencies

1uv pip install -U kern-ai openai

Export 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 agentic_session_state.py