Tool Use

Answer current-events questions with web search tools on an AIML API model, sync and async.

These retained examples come from the source revision linked below. Use the installation and model configuration in the AI/ML API guide, or use the compatible OpenAILike adaptation below with an older package.

tool_use.py
"""Run `pip install ddgs` to install dependencies."""

import asyncio

from agno.agent import Agent
from agno.models.aimlapi import AIMLAPI
from agno.tools.websearch import WebSearchTools

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

agent = Agent(
    model=AIMLAPI(id="gpt-5.6-luna"),
    tools=[WebSearchTools()],
    markdown=True,
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    # --- Sync ---
    agent.print_response("Whats happening in France?")

    # --- 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 ddgs openai

Export your AI/ML API key

export AIMLAPI_API_KEY="your_aimlapi_api_key_here"

Use the working gateway adapter

In the saved Python file, replace the AIMLAPI import with:

from os import environ
from agno.models.openai.like import OpenAILike

Replace the entire AIMLAPI(...) model expression with:

OpenAILike(
    id="openai/gpt-5-2",
    api_key=environ["AIMLAPI_API_KEY"],
    base_url="https://api.aimlapi.com/v1",
)

Keep the surrounding Agent(...) settings and run calls. This route supports image input as well as text; use the provider's exact IDs when choosing another model.

Run the example

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

python tool_use.py

Full source: cookbook/90_models/aimlapi/tool_use.py