Azure AI Foundry Claude Basic
Run Claude Sonnet on Azure AI Foundry with sync, async, and streaming responses.
"""
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/activateInstall dependencies
uv pip install -U agno anthropicExport 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.pyFull source: cookbook/90_models/azure/claude/basic.py