LangChain
We’re excited to partner with Langchain as their recommended search tool!
Warning: The
langchain_community.tools.tavily_search.tool
is deprecated. While it remains functional for now, we strongly recommend migrating to the newlangchain-tavily
Python package which supports both Search and Extract functionality and receives continuous updates with the latest features.
The langchain-tavily Python package is the offical LangChain integration of Tavily, inlcuding both TavilySearch and TavilyExtract
Installation
Credentials
We also need to set our Tavily API key. You can get an API key by visiting this site and creating an account.
Tavily Search
Here we show how to instantiate an instance of the Tavily search tool. The tool accepts various parameters to customize the search. After instantiation we invoke the tool with a simple query. This tool allows you to complete search queries using Tavily’s Search API endpoint.
Instantiation
The tool accepts various parameters during instantiation:
max_results
(optional, int): Maximum number of search results to return. Default is 5.topic
(optional, str): Category of the search. Can be “general”, “news”, or “finance”. Default is “general”.include_answer
(optional, bool): Include an answer to original query in results. Default is False.include_raw_content
(optional, bool): Include cleaned and parsed HTML of each search result. Default is False.include_images
(optional, bool): Include a list of query related images in the response. Default is False.include_image_descriptions
(optional, bool): Include descriptive text for each image. Default is False.search_depth
(optional, str): Depth of the search, either “basic” or “advanced”. Default is “basic”.time_range
(optional, str): The time range back from the current date to filter results - “day”, “week”, “month”, or “year”. Default is None.include_domains
(optional, List[str]): List of domains to specifically include. Default is None.exclude_domains
(optional, List[str]): List of domains to specifically exclude. Default is None.
For a comprehensive overview of the available parameters, refer to the Tavily Search API documentation
Invoke directly with args
The Tavily search tool accepts the following arguments during invocation:
query
(required): A natural language search query- The following arguments can also be set during invokation :
include_images
,search_depth
,time_range
,include_domains
,exclude_domains
,include_images
- For reliability and performance reasons, certain parameters that affect response size cannot be modified during invocation:
include_answer
andinclude_raw_content
. These limitations prevent unexpected context window issues and ensure consistent results.
NOTE: The optional arguments are available for agents to dynamically set, if you set a argument during instantiation and then invoke the tool with a different value, the tool will use the value you passed during invokation.
output:
Agent Tool Calling
We can use our tools directly with an agent executor by binding the tool to the agent. This gives the agent the ability to dynamically set the available arguments to the Tavily search tool.
In the below example when we ask the agent to find “What is the most popular sport in the world? include only wikipedia sources” the agent will dynamically set the argments and invoke Tavily search tool : Invoking tavily_search
with {'query': 'most popular sport in the world', 'include_domains': ['wikipedia.org'], 'search_depth': 'basic'}
Tavily Extract
Here we show how to instantiate an instance of the Tavily extract tool. After instantiation we invoke the tool with a list of URLs. This tool allows you to extract content from URLs using Tavily’s Extract API endpoint.
Instantiation
The tool accepts various parameters during instantiation:
extract_depth
(optional, str): The depth of the extraction, either “basic” or “advanced”. Default is “basic ”.include_images
(optional, bool): Whether to include images in the extraction. Default is False.
For a comprehensive overview of the available parameters, refer to the Tavily Extract API documentation
Invoke directly with args
The Tavily extract tool accepts the following arguments during invocation:
urls
(required): A list of URLs to extract content from.- Both
extract_depth
andinclude_images
can also be set during invokation
NOTE: The optional arguments are available for agents to dynamically set, if you set a argument during instantiation and then invoke the tool with a different value, the tool will use the value you passed during invokation.
output:
Tavily Research Agent
This example demonstrates how to build a powerful web research agent using Tavily’s search and extract Langchain tools.
Features
- Internet Search: Query the web for up-to-date information using Tavily’s search API
- Content Extraction: Extract and analyze specific content from web pages
- Seamless Integration: Works with OpenAI’s function calling capability for reliable tool use