Use SingleStore as the database for an agent

Store agent sessions in SingleStore using connection settings from environment variables.

singlestore_for_agent.py
"""Use SingleStore as the database for an agent.

Run `uv pip install ddgs sqlalchemy openai` to install dependencies."""

from os import getenv

from agno.agent import Agent
from agno.db.singlestore.singlestore import SingleStoreDb
from agno.tools.websearch import WebSearchTools

# ---------------------------------------------------------------------------
# Setup
# ---------------------------------------------------------------------------
USERNAME = getenv("SINGLESTORE_USERNAME")
PASSWORD = getenv("SINGLESTORE_PASSWORD")
HOST = getenv("SINGLESTORE_HOST")
PORT = getenv("SINGLESTORE_PORT")
DATABASE = getenv("SINGLESTORE_DATABASE")

db_url = (
    f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}?charset=utf8mb4"
)
db = SingleStoreDb(db_url=db_url)

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
    db=db,
    tools=[WebSearchTools()],
    add_history_to_context=True,
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response("How many people live in Canada?")
    agent.print_response("What is their national anthem called?")

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno ddgs openai pymysql sqlalchemy

Export environment variables

export OPENAI_API_KEY="your_openai_api_key_here"
export SINGLESTORE_DATABASE="your_singlestore_database_here"
export SINGLESTORE_HOST="your_singlestore_host_here"
export SINGLESTORE_PASSWORD="your_singlestore_password_here"
export SINGLESTORE_PORT="your_singlestore_port_here"
export SINGLESTORE_USERNAME="your_singlestore_username_here"

Run the example

Save the code above as singlestore_for_agent.py, then run:

python singlestore_for_agent.py

Full source: cookbook/06_storage/singlestore/singlestore_for_agent.py