Tool Use
Add WebSearchTools to a Claude agent running on Azure AI Foundry.
"""Run `uv pip install ddgs` to install dependencies."""
import asyncio
from agno.agent import Agent
from agno.models.azure.claude import Claude
from agno.tools.websearch import WebSearchTools
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=Claude(id="claude-sonnet-4-6"),
tools=[WebSearchTools()],
markdown=True,
)
# String syntax alternative:
# agent = Agent(model="azure-foundry-claude:claude-sonnet-4-5", tools=[WebSearchTools()], markdown=True)
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
# --- Sync ---
agent.print_response("Whats happening in France?")
# --- Sync + Streaming ---
agent.print_response("Whats happening in France?", stream=True)
# --- Async + Streaming ---
asyncio.run(agent.aprint_response("Whats happening in France?", 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 anthropic ddgsExport 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 tool_use.py, then run:
python tool_use.pyFull source: cookbook/90_models/azure/claude/tool_use.py