BraveSearch Tool

Guide for using the BraveSearch tool with PraisonAI agents.

The BraveSearch tool lets an agent search the web through the Brave Search API.

Diagram

Brave Search

User

Agent

search_brave

Brave Search API

Results

Overview

The BraveSearch tool is a tool that allows you to search the web using the BraveSearch API.

bash
pip install langchain-community google-search-results
bash
export BRAVE_SEARCH_API="${BRAVE_SEARCH_API:?Set BRAVE_SEARCH_API in your shell}"
export OPENAI_API_KEY="${OPENAI_API_KEY:?Set OPENAI_API_KEY in your shell}"
python
from praisonaiagents import Agent, AgentTeam
from langchain_community.tools import BraveSearch
import os


def search_brave(query: str):
    """Searches using BraveSearch and returns results."""
    api_key = os.environ['BRAVE_SEARCH_API']
    tool = BraveSearch.from_api_key(api_key=api_key, search_kwargs={"count": 3})
    return tool.run(query)

data_agent = Agent(instructions="Search about AI job trends in 2025", tools=[search_brave])
editor_agent = Agent(instructions="Write a blog article")
agents = AgentTeam(agents=[data_agent, editor_agent])
agents.start()

Generate your BraveSearch API key from BraveSearch

How It Works

Diagram
Brave Search APIsearch_braveAgentUserBrave Search APIsearch_braveAgentUser“Search for X”search_brave(query)HTTPS requestJSON resultsparsed resultfinal answer

Getting Started

  1. Simple Usage
    1. Install dependencies (see Overview above)
    2. Set required API keys in your environment
    3. Run the agent example in Overview
  2. With Configuration

    Use the same tool with an agent — see the Overview example, or pass env vars from the sections above.

Best Practices

Keep API keys out of code

Read the key with os.environ['BRAVE_SEARCH_API'] and set it in your shell or a .env file. Never hard-code the key in the tool function.

Cap the result count

BraveSearch.from_api_key accepts search_kwargs={"count": 3}. Keep count low so the agent processes fewer tokens and answers faster.

Handle rate limits

Brave returns HTTP 429 when the plan quota is exceeded. Wrap tool.run(query) in a try/except so the agent can fall back to another search tool instead of crashing.

Related Tools