Azure OpenAI O3 Mini with Tools
Pair o3-mini on Azure OpenAI with YFinance tools to write a stock comparison report.
"""
O3 Mini With Tools
==================
Demonstrates this reasoning cookbook example.
"""
from agno.agent import Agent
from agno.models.azure.openai_chat import AzureOpenAI
from agno.tools.yfinance import YFinanceTools
# ---------------------------------------------------------------------------
# Create Example
# ---------------------------------------------------------------------------
def run_example() -> None:
agent = Agent(
model=AzureOpenAI(id="o3-mini"),
tools=[YFinanceTools()],
instructions="Use tables to display data.",
markdown=True,
)
agent.print_response("Write a report comparing NVDA to TSLA", stream=True)
# ---------------------------------------------------------------------------
# Run Example
# ---------------------------------------------------------------------------
if __name__ == "__main__":
run_example()Azure schedules o3-mini for retirement on October 1, 2026, which differs from the native OpenAI API's date. See the Azure retirement schedule. Create a compatible deployment before running; check replacement tool and streaming support when migrating.
Run the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno openai yfinanceExport environment variables
export AZURE_OPENAI_API_KEY="your_azure_openai_api_key_here"
export AZURE_OPENAI_ENDPOINT="your_azure_openai_endpoint_here"Select 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 o3_mini_with_tools.py, then run:
python o3_mini_with_tools.pyFull source: cookbook/10_reasoning/models/azure_openai/o3_mini_with_tools.py