Agent with Async Tool Usage

Run a WatsonX agent with WebSearchTools asynchronously and stream the response.

Code

import asyncio

from agno.agent import Agent
from agno.models.ibm import WatsonX
from agno.tools.websearch import WebSearchTools

agent = Agent(
    model=WatsonX(id="mistralai/mistral-small-3-1-24b-instruct-2503"),
    tools=[WebSearchTools()],
    markdown=True,
)

asyncio.run(agent.aprint_response("Whats happening in France?", stream=True))

Usage

Set up your virtual environment

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

Set your API key

export IBM_WATSONX_API_KEY=xxx
export IBM_WATSONX_PROJECT_ID=xxx

Install dependencies

uv pip install -U ibm-watsonx-ai ddgs agno

Run Agent

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

python tool_use.py

The agent runs asynchronously, searches the web with WebSearchTools, and streams the response as it's generated.