Azure OpenAI o3

Configure an Agno agent with Azure OpenAI's o3 model and YFinance tools to compare stock data in tables.

This example uses non-streaming output. Azure o1 does not stream; o3 streaming requires eligible access. See Azure reasoning support. Set the deployment variable to a deployment of the model used below.

Add the following code to your Python file

azure_openai.py
from agno.agent import Agent
from agno.models.azure.openai_chat import AzureOpenAI
from agno.tools.yfinance import YFinanceTools

agent = Agent(
    model=AzureOpenAI(id="o3"),
    tools=[
        YFinanceTools(
            enable_stock_price=True,
            enable_analyst_recommendations=True,
            enable_company_info=True,
            enable_company_news=True,
        )
    ],
    instructions="Use tables to display data.",
    markdown=True,
)
agent.print_response("Write a report comparing NVDA to TSLA", stream=False)

Set up your virtual environment

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

Install dependencies

uv pip install -U openai agno yfinance

Set your Azure OpenAI credentials

  export AZURE_OPENAI_API_KEY="xxx"
  export AZURE_OPENAI_ENDPOINT="xxx"
  export AZURE_OPENAI_DEPLOYMENT="xxx"

Run Agent

python azure_openai.py