Oxylabs Tools

Search Google through Oxylabs and summarize the top results with OxylabsTools.

Web scraping toolkit for Google search, Amazon products, and website scraping.

oxylabs_tools.py
"""
Oxylabs Tools
=============================

Web scraping toolkit for Google search, Amazon products, and website scraping.

Requirements:
    pip install oxylabs

Environment variables:
    OXYLABS_USERNAME: Your Oxylabs username
    OXYLABS_PASSWORD: Your Oxylabs password
"""

from agno.agent import Agent
from agno.tools.oxylabs import OxylabsTools

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

agent = Agent(
    tools=[OxylabsTools()],
    markdown=True,
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    # Example 1: Google Search
    agent.print_response(
        "Search for 'latest iPhone reviews' and summarize the top 3 results.",
    )

    # Example 2: Amazon Product Search
    # agent.print_response(
    #     "Get details for Amazon product with ASIN 'B07FZ8S74R' (Echo Dot).",
    # )

    # Example 3: Multi-Domain Amazon Search
    # agent.print_response(
    #     "Use search_amazon_products to search for 'gaming keyboards' on both:\n"
    #     "1. Amazon US (domain='com')\n"
    #     "2. Amazon UK (domain='co.uk')\n"
    #     "Compare the top 3 results from each region including pricing and availability."
    # )

    # Example 4: Website Scraping with Markdown Output
    # Use markdown=True on OxylabsTools to get full Markdown content instead of parsed HTML
    # agent_markdown = Agent(
    #     tools=[OxylabsTools(markdown=True)],
    #     markdown=True,
    # )
    # agent_markdown.print_response(
    #     "Scrape the content from https://example.com and summarize it.",
    # )

The active call uses Google search result descriptions. To use the commented Amazon examples, ask for domain_code="com" or domain_code="co.uk"; domain is not the Agno tool argument. Website scraping returns a JSON envelope: the default parsed content is capped at 1,000 characters, while markdown=True returns the full Markdown content inside that envelope.

Run the Example

Set up your virtual environment

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

Install dependencies

uv pip install -U agno openai oxylabs

Export environment variables

export OPENAI_API_KEY="your_openai_api_key_here"
export OXYLABS_PASSWORD="your_oxylabs_password_here"
export OXYLABS_USERNAME="your_oxylabs_username_here"

Run the example

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

python oxylabs_tools.py

Full source: cookbook/91_tools/oxylabs_tools.py