OpenAI DB
Persist AzureOpenAI agent sessions in Postgres and add history to follow-up runs.
"""Run `uv pip install ddgs sqlalchemy anthropic` to install dependencies."""
from agno.agent import Agent
from agno.db.postgres import PostgresDb
from agno.models.azure import AzureOpenAI
from agno.tools.websearch import WebSearchTools
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
# Setup the database
db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
db = PostgresDb(db_url=db_url)
agent = Agent(
model=AzureOpenAI(id="gpt-5.2"),
db=db,
tools=[WebSearchTools()],
add_history_to_context=True,
)
agent.print_response("How many people live in Canada?")
agent.print_response("What is their national anthem called?")
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
passRun the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno "psycopg[binary]" ddgs openai sqlalchemyExport environment variables
export AZURE_OPENAI_API_KEY="your_azure_openai_api_key_here"
export AZURE_OPENAI_ENDPOINT="your_azure_openai_endpoint_here"Run PgVector
docker run -d \
-e POSTGRES_DB=ai \
-e POSTGRES_USER=ai \
-e POSTGRES_PASSWORD=ai \
-e PGDATA=/var/lib/postgresql \
-v pgvolume:/var/lib/postgresql \
-p 5532:5432 \
--name pgvector \
agnohq/pgvector:18Select the Azure OpenAI deployment
Deploy the model used by the source in the resource identified by AZURE_OPENAI_ENDPOINT. Set its deployment name before running Python:
export AZURE_OPENAI_DEPLOYMENT="your_deployment_name"Keep the underlying model ID in AzureOpenAI(id=...). This variable selects the Azure deployment used in the request URL. Without it, the SDK uses the model ID as the deployment name, which works only when the names match. See Azure deployment setup.
Run the example
Save the code above as db.py, then run:
python db.pyFull source: cookbook/90_models/azure/openai/db.py