Agent skill

tavily

AI-optimized web search using Tavily Search API. Use when you need comprehensive web research, current events lookup, domain-specific search, or AI-generated answer summaries. Tavily is optimized for LLM consumption with clean structured results, answer generation, and raw content extraction. Best for research tasks, news queries, fact-checking, and gathering authoritative sources.

Stars 1,878
Forks 294

Install this agent skill to your Project

npx add-skill https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/tavily

SKILL.md

Tavily AI Search

Overview

Tavily is a search engine specifically optimized for Large Language Models and AI applications. Unlike traditional search APIs, Tavily provides AI-ready results with optional answer generation, clean content extraction, and domain filtering capabilities.

Key capabilities:

  • AI-generated answer summaries from search results
  • Clean, structured results optimized for LLM processing
  • Fast (basic) and comprehensive (advanced) search modes
  • Domain filtering (include/exclude specific sources)
  • News-focused search for current events
  • Image search with relevant visual content
  • Raw content extraction for deeper analysis

Architecture

mermaid
graph TB
    A[User Query] --> B{Search Mode}
    B -->|basic| C[Fast Search<br/>1-2s response]
    B -->|advanced| D[Comprehensive Search<br/>5-10s response]
    
    C --> E[Tavily API]
    D --> E
    
    E --> F{Topic Filter}
    F -->|general| G[Broad Web Search]
    F -->|news| H[News Sources<br/>Last 7 days]
    
    G --> I[Domain Filtering]
    H --> I
    
    I --> J{Include Domains?}
    J -->|yes| K[Filter to Specific Domains]
    J -->|no| L{Exclude Domains?}
    K --> M[Search Results]
    L -->|yes| N[Remove Unwanted Domains]
    L -->|no| M
    N --> M
    
    M --> O{Response Options}
    O --> P[AI Answer<br/>Summary]
    O --> Q[Structured Results<br/>Title, URL, Content, Score]
    O --> R[Images<br/>if requested]
    O --> S[Raw HTML Content<br/>if requested]
    
    P --> T[Return to Agent]
    Q --> T
    R --> T
    S --> T
    
    style E fill:#4A90E2
    style P fill:#7ED321
    style Q fill:#7ED321
    style R fill:#F5A623
    style S fill:#F5A623

Quick Start

Basic Search

bash
# Simple query with AI answer
scripts/tavily_search.py "What is quantum computing?"

# Multiple results
scripts/tavily_search.py "Python best practices" --max-results 10

Advanced Search

bash
# Comprehensive research mode
scripts/tavily_search.py "Climate change solutions" --depth advanced

# News-focused search
scripts/tavily_search.py "AI developments 2026" --topic news

Domain Filtering

bash
# Search only trusted domains
scripts/tavily_search.py "Python tutorials" \
  --include-domains python.org docs.python.org realpython.com

# Exclude low-quality sources
scripts/tavily_search.py "How to code" \
  --exclude-domains w3schools.com geeksforgeeks.org

With Images

bash
# Include relevant images
scripts/tavily_search.py "Eiffel Tower architecture" --images

Search Modes

Basic vs Advanced

Mode Speed Coverage Use Case
basic 1-2s Good Quick facts, simple queries
advanced 5-10s Excellent Research, complex topics, comprehensive analysis

Decision tree:

  1. Need a quick fact or definition? → Use basic
  2. Researching a complex topic? → Use advanced
  3. Need multiple perspectives? → Use advanced
  4. Time-sensitive query? → Use basic

General vs News

Topic Time Range Sources Use Case
general All time Broad web Evergreen content, tutorials, documentation
news Last 7 days News sites Current events, recent developments, breaking news

Decision tree:

  1. Query contains "latest", "recent", "current", "today"? → Use news
  2. Looking for historical or evergreen content? → Use general
  3. Need up-to-date information? → Use news

API Key Setup

Option 1: Clawdbot Config (Recommended)

Add to your Clawdbot config:

json
{
  "skills": {
    "entries": {
      "tavily": {
        "enabled": true,
        "apiKey": "tvly-YOUR_API_KEY_HERE"
      }
    }
  }
}

Access in scripts via Clawdbot's config system.

Option 2: Environment Variable

bash
export TAVILY_API_KEY="tvly-YOUR_API_KEY_HERE"

Add to ~/.clawdbot/.env or your shell profile.

Getting an API Key

  1. Visit https://tavily.com
  2. Sign up for an account
  3. Navigate to your dashboard
  4. Generate an API key (starts with tvly-)
  5. Note your plan's rate limits and credit allocation

Common Use Cases

1. Research & Fact-Finding

bash
# Comprehensive research with answer
scripts/tavily_search.py "Explain quantum entanglement" --depth advanced

# Multiple authoritative sources
scripts/tavily_search.py "Best practices for REST API design" \
  --max-results 10 \
  --include-domains github.com microsoft.com google.com

2. Current Events

bash
# Latest news
scripts/tavily_search.py "AI policy updates" --topic news

# Recent developments in a field
scripts/tavily_search.py "quantum computing breakthroughs" \
  --topic news \
  --depth advanced

3. Domain-Specific Research

bash
# Academic sources only
scripts/tavily_search.py "machine learning algorithms" \
  --include-domains arxiv.org scholar.google.com ieee.org

# Technical documentation
scripts/tavily_search.py "React hooks guide" \
  --include-domains react.dev

4. Visual Research

bash
# Gather visual references
scripts/tavily_search.py "modern web design trends" \
  --images \
  --max-results 10

5. Content Extraction

bash
# Get raw HTML content for deeper analysis
scripts/tavily_search.py "Python async/await" \
  --raw-content \
  --max-results 5

Response Handling

AI Answer

The AI-generated answer provides a concise summary synthesized from search results:

python
{
  "answer": "Quantum computing is a type of computing that uses quantum-mechanical phenomena..."
}

Use when:

  • Need a quick summary
  • Want synthesized information from multiple sources
  • Looking for a direct answer to a question

Skip when (--no-answer):

  • Only need source URLs
  • Want to form your own synthesis
  • Conserving API credits

Structured Results

Each result includes:

  • title: Page title
  • url: Source URL
  • content: Extracted text snippet
  • score: Relevance score (0-1)
  • raw_content: Full HTML (if --raw-content enabled)

Images

When --images is enabled, returns URLs of relevant images found during search.

Best Practices

1. Choose the Right Search Depth

  • Start with basic for most queries (faster, cheaper)
  • Escalate to advanced only when:
    • Initial results are insufficient
    • Topic is complex or nuanced
    • Need comprehensive coverage

2. Use Domain Filtering Strategically

Include domains for:

  • Academic research (.edu domains)
  • Official documentation (official project sites)
  • Trusted news sources
  • Known authoritative sources

Exclude domains for:

  • Known low-quality content farms
  • Irrelevant content types (Pinterest for non-visual queries)
  • Sites with paywalls or access restrictions

3. Optimize for Cost

  • Use basic depth as default
  • Limit max_results to what you'll actually use
  • Disable include_raw_content unless needed
  • Cache results locally for repeated queries

4. Handle Errors Gracefully

The script provides helpful error messages:

bash
# Missing API key
Error: Tavily API key required
Setup: Set TAVILY_API_KEY environment variable or pass --api-key

# Package not installed
Error: tavily-python package not installed
To install: pip install tavily-python

Integration Patterns

Programmatic Usage

python
from tavily_search import search

result = search(
    query="What is machine learning?",
    api_key="tvly-...",
    search_depth="advanced",
    max_results=10
)

if result.get("success"):
    print(result["answer"])
    for item in result["results"]:
        print(f"{item['title']}: {item['url']}")

JSON Output for Parsing

bash
scripts/tavily_search.py "Python tutorials" --json > results.json

Chaining with Other Tools

bash
# Search and extract content
scripts/tavily_search.py "React documentation" --json | \
  jq -r '.results[].url' | \
  xargs -I {} curl -s {}

Comparison with Other Search APIs

vs Brave Search:

  • ✅ AI answer generation
  • ✅ Raw content extraction
  • ✅ Better domain filtering
  • ❌ Slower than Brave
  • ❌ Costs credits

vs Perplexity:

  • ✅ More control over sources
  • ✅ Raw content available
  • ✅ Dedicated news mode
  • ≈ Similar answer quality
  • ≈ Similar speed

vs Google Custom Search:

  • ✅ LLM-optimized results
  • ✅ Answer generation
  • ✅ Simpler API
  • ❌ Smaller index
  • ≈ Similar cost structure

Troubleshooting

Script Won't Run

bash
# Make executable
chmod +x scripts/tavily_search.py

# Check Python version (requires 3.6+)
python3 --version

# Install dependencies
pip install tavily-python

API Key Issues

bash
# Verify API key format (should start with tvly-)
echo $TAVILY_API_KEY

# Test with explicit key
scripts/tavily_search.py "test" --api-key "tvly-..."

Rate Limit Errors

  • Check your plan's credit allocation at https://tavily.com
  • Reduce max_results to conserve credits
  • Use basic depth instead of advanced
  • Implement local caching for repeated queries

Resources

See api-reference.md for:

  • Complete API parameter documentation
  • Response format specifications
  • Error handling details
  • Cost and rate limit information
  • Advanced usage examples

Dependencies

  • Python 3.6+
  • tavily-python package (install: pip install tavily-python)
  • Valid Tavily API key

Credits & Attribution

Expand your agent's capabilities with these related and highly-rated skills.

LeoYeAI/openclaw-master-skills

audit-website

Audit websites for SEO, performance, security, technical, content, and 15 other issue cateories with 230+ rules using the squirrelscan CLI. Returns LLM-optimized reports with health scores, broken links, meta tag analysis, and actionable recommendations. Use to discover and asses website or webapp issues and health.

1,878 294
Explore
LeoYeAI/openclaw-master-skills

firecrawl

Web search and scraping via Firecrawl API. Use when you need to search the web, scrape websites (including JS-heavy pages), crawl entire sites, or extract structured data from web pages. Requires FIRECRAWL_API_KEY environment variable.

1,878 294
Explore
LeoYeAI/openclaw-master-skills

computer-use

Full desktop computer use for headless Linux servers. Xvfb + XFCE virtual desktop with xdotool automation. 17 actions (click, type, scroll, screenshot, drag, etc). Unlike OpenClaw's browser tool, operates at the X11 level so websites cannot detect automation. Includes VNC for live viewing.

1,878 294
Explore
LeoYeAI/openclaw-master-skills

social-media-analyzer

Social media campaign analysis and performance tracking. Calculates engagement rates, ROI, and benchmarks across platforms. Use for analyzing social media performance, calculating engagement rate, measuring campaign ROI, comparing platform metrics, or benchmarking against industry standards.

1,878 294
Explore
LeoYeAI/openclaw-master-skills

business-growth-skills

4 production-ready business and growth skills: customer success manager with health scoring and churn prediction, sales engineer with RFP analysis, revenue operations with pipeline and GTM metrics, and contract & proposal writer. Python tools included (all stdlib-only). Works with Claude Code, Codex CLI, and OpenClaw.

1,878 294
Explore
LeoYeAI/openclaw-master-skills

contract-and-proposal-writer

Contract & Proposal Writer

1,878 294
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results