Session Options
Use conversation history while omitting copied history messages from each later run record.
Simple example demonstrating store_history_messages option.
"""
Session Options
=============================
Simple example demonstrating store_history_messages option.
"""
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIResponses
from agno.utils.pprint import pprint_run_response
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIResponses(id="gpt-5-mini"),
db=SqliteDb(db_file="tmp/example_no_history.db"),
add_history_to_context=True, # Use history during execution
num_history_runs=3,
store_history_messages=False, # Don't store history messages in database
)
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
print("\n=== First Run: Establishing context ===")
response1 = agent.run("My name is Alice and I love Python programming.")
pprint_run_response(response1)
print("\n=== Second Run: Using history (but not storing it) ===")
response2 = agent.run("What is my name and what do I love?")
pprint_run_response(response2)
# Check what was stored
stored_run = agent.get_last_run_output()
if stored_run and stored_run.messages:
history_messages = [m for m in stored_run.messages if m.from_history]
print("\n Storage Info:")
print(f" Total messages stored: {len(stored_run.messages)}")
print(f" History messages: {len(history_messages)} (scrubbed!)")
print("\n History was used during execution (agent knew the answer)")
print(" but history messages are NOT stored in the database!")store_history_messages=False removes messages marked from_history from the current run record. The original turns remain in their own stored runs and can still supply future context. The source's “not stored” labels refer only to those copied messages. This flag does not delete earlier conversations or disable the model provider's response storage.
Run the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno openai sqlalchemyExport your OpenAI API key
export OPENAI_API_KEY="your_openai_api_key_here"Run the example
Save the code above as session_options.py, then run:
python session_options.pyFull source: cookbook/02_agents/05_state_and_session/session_options.py