Tool Use

Add WebSearchTools to a Claude agent running on Azure AI Foundry.

tool_use.py
"""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/activate

Install dependencies

uv pip install -U agno anthropic ddgs

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 tool_use.py, then run:

python tool_use.py

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