Azure AI Foundry Claude Basic

Run Claude Sonnet on Azure AI Foundry with sync, async, and streaming responses.

basic.py
"""
Azure AI Foundry Claude Basic
==============================

Cookbook example for `azure/claude/basic.py`.

Set the following environment variables:
- ANTHROPIC_FOUNDRY_API_KEY: Your Azure AI Foundry API key
- ANTHROPIC_FOUNDRY_RESOURCE: Your Azure resource name
"""

import asyncio

from agno.agent import Agent
from agno.models.azure.claude import Claude

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------

agent = Agent(model=Claude(id="claude-sonnet-4-6"), markdown=True)

# String syntax alternative:
# agent = Agent(model="azure-foundry-claude:claude-sonnet-4-5", markdown=True)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    # --- Sync ---
    agent.print_response("Share a 2 sentence horror story")

    # --- Sync + Streaming ---
    agent.print_response("Share a 2 sentence horror story", stream=True)

    # --- Async ---
    asyncio.run(agent.aprint_response("Share a 2 sentence horror story"))

    # --- Async + Streaming ---
    asyncio.run(agent.aprint_response("Share a 2 sentence horror story", stream=True))

Run the Example

Set up your virtual environment

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

Install dependencies

uv pip install -U agno anthropic

Export environment variables

export ANTHROPIC_FOUNDRY_API_KEY="your_anthropic_foundry_api_key_here"
export ANTHROPIC_FOUNDRY_RESOURCE="your_anthropic_foundry_resource_here"

Select the Claude deployment

Deploy Claude Sonnet 4.6 in the resource named by ANTHROPIC_FOUNDRY_RESOURCE. This variable takes the resource name, not the full endpoint URL. Set ANTHROPIC_FOUNDRY_API_KEY to that resource's key.

The source assumes the deployment is named claude-sonnet-4-6. If you chose another name, replace the model's id with your deployment name while retaining the other model settings. See Claude deployment and inference setup.

Run the example

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

python basic.py

Full source: cookbook/90_models/azure/claude/basic.py