From 0b07b4c45fc5884a25b606c69f4b99babe497279 Mon Sep 17 00:00:00 2001 From: Tanishq <30299564+10ishq@users.noreply.github.com> Date: Tue, 17 Mar 2026 20:57:41 +0530 Subject: [PATCH] docs: update Exa Search Tool page with improved naming, description, and configuration options (#4800) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: update Exa Search Tool page with improved naming, description, and configuration options Co-Authored-By: Tanishq Jaiswal * docs: fix API key link and remove neural/keyword search type references Co-Authored-By: Tanishq Jaiswal * docs: add instant, fast, auto, deep search types Co-Authored-By: Tanishq Jaiswal --------- Co-authored-by: João Moura --- .../tools/search-research/exasearchtool.mdx | 123 +++++++++++++----- 1 file changed, 90 insertions(+), 33 deletions(-) diff --git a/docs/en/tools/search-research/exasearchtool.mdx b/docs/en/tools/search-research/exasearchtool.mdx index fe180baef..3136cdcbb 100644 --- a/docs/en/tools/search-research/exasearchtool.mdx +++ b/docs/en/tools/search-research/exasearchtool.mdx @@ -1,53 +1,110 @@ --- -title: EXA Search Web Loader -description: The `EXASearchTool` is designed to perform a semantic search for a specified query from a text's content across the internet. -icon: globe-pointer +title: "Exa Search Tool" +description: "Search the web using the Exa Search API to find the most relevant results for any query, with options for full page content, highlights, and summaries." +icon: "magnifying-glass" mode: "wide" --- -# `EXASearchTool` - -## Description - -The EXASearchTool is designed to perform a semantic search for a specified query from a text's content across the internet. -It utilizes the [exa.ai](https://exa.ai/) API to fetch and display the most relevant search results based on the query provided by the user. +The `EXASearchTool` lets CrewAI agents search the web using the [Exa](https://exa.ai/) search API. It returns the most relevant results for any query, with options for full page content and AI-generated summaries. ## Installation -To incorporate this tool into your project, follow the installation instructions below: +Install the CrewAI tools package: ```shell pip install 'crewai[tools]' ``` -## Example +## Environment Variables -The following example demonstrates how to initialize the tool and execute a search with a given query: +Set your Exa API key as an environment variable: -```python Code -from crewai_tools import EXASearchTool - -# Initialize the tool for internet searching capabilities -tool = EXASearchTool() +```bash +export EXA_API_KEY='your_exa_api_key' ``` -## Steps to Get Started +Get an API key from the [Exa dashboard](https://dashboard.exa.ai/api-keys). -To effectively use the EXASearchTool, follow these steps: +## Example Usage - - - Confirm that the `crewai[tools]` package is installed in your Python environment. - - - Acquire a [exa.ai](https://exa.ai/) API key by registering for a free account at [exa.ai](https://exa.ai/). - - - Store your obtained API key in an environment variable named `EXA_API_KEY` to facilitate its use by the tool. - - +Here's how to use the `EXASearchTool` within a CrewAI agent: -## Conclusion +```python +import os +from crewai import Agent, Task, Crew +from crewai_tools import EXASearchTool -By integrating the `EXASearchTool` into Python projects, users gain the ability to conduct real-time, relevant searches across the internet directly from their applications. -By adhering to the setup and usage guidelines provided, incorporating this tool into projects is streamlined and straightforward. +# Initialize the tool +exa_tool = EXASearchTool() + +# Create an agent that uses the tool +researcher = Agent( + role='Research Analyst', + goal='Find the latest information on any topic', + backstory='An expert researcher who finds the most relevant and up-to-date information.', + tools=[exa_tool], + verbose=True +) + +# Create a task for the agent +research_task = Task( + description='Find the top 3 recent breakthroughs in quantum computing.', + expected_output='A summary of the top 3 breakthroughs with source URLs.', + agent=researcher +) + +# Form the crew and kick it off +crew = Crew( + agents=[researcher], + tasks=[research_task], + verbose=True +) + +result = crew.kickoff() +print(result) +``` + +## Configuration Options + +The `EXASearchTool` accepts the following parameters during initialization: + +- `type` (str, optional): The search type to use. Defaults to `"auto"`. Options: `"auto"`, `"instant"`, `"fast"`, `"deep"`. +- `content` (bool, optional): Whether to include full page content in results. Defaults to `False`. +- `summary` (bool, optional): Whether to include AI-generated summaries of each result. Requires `content=True`. Defaults to `False`. +- `api_key` (str, optional): Your Exa API key. Falls back to the `EXA_API_KEY` environment variable if not provided. +- `base_url` (str, optional): Custom API server URL. Falls back to the `EXA_BASE_URL` environment variable if not provided. + +When calling the tool (or when an agent invokes it), the following search parameters are available: + +- `search_query` (str): **Required**. The search query string. +- `start_published_date` (str, optional): Filter results published after this date (ISO 8601 format, e.g. `"2024-01-01"`). +- `end_published_date` (str, optional): Filter results published before this date (ISO 8601 format). +- `include_domains` (list[str], optional): A list of domains to restrict the search to. + +## Advanced Usage + +You can configure the tool with custom parameters for richer results: + +```python +# Get full page content with AI summaries +exa_tool = EXASearchTool( + content=True, + summary=True, + type="deep" +) + +# Use it in an agent +agent = Agent( + role="Deep Researcher", + goal="Conduct thorough research with full content and summaries", + tools=[exa_tool] +) +``` + +## Features + +- **Semantic Search**: Find results based on meaning, not just keywords +- **Full Content Retrieval**: Get the full text of web pages alongside search results +- **AI Summaries**: Get concise, AI-generated summaries of each result +- **Date Filtering**: Limit results to specific time periods with published date filters +- **Domain Filtering**: Restrict searches to specific domains