Context-hub tavily-best-practices
Build production-ready Tavily integrations with best practices for web search, content extraction, crawling, and research in agentic workflows, RAG systems, and autonomous agents
git clone https://github.com/andrewyng/context-hub
T=$(mktemp -d) && git clone --depth=1 https://github.com/andrewyng/context-hub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/content/tavily/skills/tavily-best-practices" ~/.claude/skills/andrewyng-context-hub-tavily-best-practices && rm -rf "$T"
content/tavily/skills/tavily-best-practices/SKILL.mdTavily
Tavily is a search API designed for LLMs, enabling AI applications to access real-time web data.
Installation
Python:
pip install tavily-python
JavaScript:
npm install @tavily/core
See references/sdk.md for complete SDK reference.
Client Initialization
from tavily import TavilyClient # Uses TAVILY_API_KEY env var (recommended) client = TavilyClient() #With project tracking (for usage organization) client = TavilyClient(project_id="your-project-id") # Async client for parallel queries from tavily import AsyncTavilyClient async_client = AsyncTavilyClient()
Choosing the Right Method
For custom agents/workflows:
| Need | Method |
|---|---|
| Web search results | |
| Content from specific URLs | |
| Content from entire site | |
| URL discovery from site | |
For out-of-the-box research:
| Need | Method |
|---|---|
| End-to-end research with AI synthesis | |
Quick Reference
search() - Web Search
response = client.search( query="quantum computing breakthroughs", # Keep under 400 chars max_results=10, search_depth="advanced" ) print(response)
Key parameters:
query, max_results, search_depth (ultra-fast/fast/basic/advanced), include_domains, exclude_domains, time_range
See references/search.md for complete search reference.
extract() - URL Content Extraction
# Simple one-step extraction response = client.extract( urls=["https://docs.example.com"], extract_depth="advanced" ) print(response)
Key parameters:
urls (max 20), extract_depth, query, chunks_per_source (1-5)
See references/extract.md for complete extract reference.
crawl() - Site-Wide Extraction
response = client.crawl( url="https://docs.example.com", instructions="Find API documentation pages", # Semantic focus extract_depth="advanced" ) print(response)
Key parameters:
url, max_depth, max_breadth, limit, instructions, chunks_per_source, select_paths, exclude_paths
See references/crawl.md for complete crawl reference.
map() - URL Discovery
response = client.map( url="https://docs.example.com" ) print(response)
research() - AI-Powered Research
import time # For comprehensive multi-topic research result = client.research( input="Analyze competitive landscape for X in SMB market", model="pro" # or "mini" for focused queries, "auto" when unsure ) request_id = result["request_id"] # Poll until completed response = client.get_research(request_id) while response["status"] not in ["completed", "failed"]: time.sleep(10) response = client.get_research(request_id) print(response["content"]) # The research report
Key parameters:
input, model ("mini"/"pro"/"auto"), stream, output_schema, citation_format
See references/research.md for complete research reference.
Detailed Guides
For complete parameters, response fields, patterns, and examples:
- references/sdk.md - Python & JavaScript SDK reference, async patterns, Hybrid RAG
- references/search.md - Query optimization, search depth selection, domain filtering, async patterns, post-filtering
- references/extract.md - One-step vs two-step extraction, query/chunks for targeting, advanced mode
- references/crawl.md - Crawl vs Map, instructions for semantic focus, use cases, Map-then-Extract pattern
- references/research.md - Prompting best practices, model selection, streaming, structured output schemas
- references/integrations.md - LangChain, LlamaIndex, CrewAI, Vercel AI SDK, and framework integrations