Portkey Tool Use

Call web search tools from an agent routed through the Portkey gateway.

Apply the account model and explicit-key setup below before running the preserved source.

tool_use.py
"""
Portkey Tool Use
================

Cookbook example for `portkey/tool_use.py`.
"""

import asyncio

from agno.agent import Agent
from agno.models.portkey import Portkey
from agno.tools.websearch import WebSearchTools

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

agent = Agent(
    model=Portkey(id="@first-integrati-707071/gpt-5-nano"),
    tools=[WebSearchTools()],
    markdown=True,
)

# Print the response in the terminal

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    # --- Sync ---
    agent.print_response("What are the latest developments in AI gateways?")

    # --- Sync + Streaming ---
    agent.print_response(
        "What are the latest developments in AI gateways?", stream=True
    )

    # --- Async ---
    asyncio.run(
        agent.aprint_response("What are the latest developments in AI gateways?")
    )

    # --- Async + Streaming ---
    asyncio.run(
        agent.aprint_response(
            "What are the latest developments in AI gateways?", 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 portkey-ai

Export your Portkey API key

export PORTKEY_API_KEY="your_portkey_api_key_here"

Select and configure your Portkey model

In the Portkey model catalog, configure an AI Provider integration with its provider credentials and enable the model for your workspace. Copy its full model slug, including your integration prefix. The source's @first-integrati-707071 prefix belongs to a different account.

export PORTKEY_MODEL_ID="@your-integration/your-enabled-model"

Replace the placeholder with your copied slug. Add from os import environ to the saved file, then replace every model construction with Portkey(id=environ["PORTKEY_MODEL_ID"], portkey_api_key=environ["PORTKEY_API_KEY"]). Keep any additional model options you need. This revision requires the explicit portkey_api_key argument; setting the environment variable alone is insufficient. Choose a model that supports this example's tools or JSON Schema when those are used.

Run the example

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

python tool_use.py

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