How to Integrate Tavily Search API into Your AI Agent for Real-Time Research
Building AI agents that can access real-time information is one of the most impactful applications of modern AI. However, connecting an LLM to the web requires a search API that returns clean, structured results — not the noisy, SEO-optimized content that traditional search APIs provide. Tavily solves this by being purpose-built for AI consumption. This tutorial shows you how to integrate Tavily into a Python-based AI agent.
Step 1: Get Your Tavily API Key
Sign up at tavily.com and create a free account. Navigate to the API dashboard and generate your API key. The free tier provides 1,000 API calls per month — more than enough for development and testing. Save your API key securely; you’ll need it for all API calls.
Step 2: Install the Tavily Python SDK
Open your terminal and install the Tavily Python package:
pip install tavily-python
If you’re using LangChain, also install the LangChain integration:
pip install langchain-tavily
Step 3: Make Your First Search Query
Create a simple Python script to test Tavily’s search capabilities:
from tavily import TavilyClient
client = TavilyClient(api_key="your-api-key-here")
result = client.search("What are the latest developments in quantum computing in 2026?")
for item in result["results"]:
print(f"Title: {item['title']}")
print(f"URL: {item['url']}")
print(f"Content: {item['content'][:200]}...")
print("---")
Notice that Tavily returns clean, extracted content — not raw HTML. This is exactly what your LLM needs to process search results accurately.
Step 4: Use Tavily’s Extract Feature for Deep Research
For more detailed research, use Tavily’s extract feature to get in-depth content from specific URLs:
extraction = client.extract(urls=["https://example.com/research-paper"])
for item in extraction["results"]:
print(item["raw_content"])
This is invaluable when your agent needs to dive deep into specific sources rather than relying on search snippets alone.
Step 5: Integrate with LangChain for Agent Workflows
Create a LangChain agent that uses Tavily for real-time research:
from langchain_tavily import TavilySearch
from langchain_openai import ChatOpenAI
from langchain.agents import create_tool_calling_agent, AgentExecutor
search_tool = TavilySearch(max_results=5)
llm = ChatOpenAI(model="gpt-4o")
agent = create_tool_calling_agent(llm, [search_tool])
agent_executor = AgentExecutor(agent=agent, tools=[search_tool])
result = agent_executor.invoke({"input": "Research the top 3 AI companies by revenue in 2026 and provide a summary"})
print(result["output"])
Step 6: Add Domain Filtering for Specialized Research
For academic or specialized research, restrict Tavily to authoritative sources:
result = client.search(
"machine learning healthcare applications",
include_domains=["arxiv.org", "nature.com", "pubmed.ncbi.nlm.nih.gov"]
)
This ensures your agent only pulls information from credible, peer-reviewed sources — critical for research applications where accuracy matters.
