tavily-dynamic-search

Cari web, filter hasil, dan ekstrak konten sehingga data pencarian mentah tidak pernah masuk ke jendela konteks Anda. Hanya keluaran print() yang telah dikurasi yang akan kembali.

npx skills add https://github.com/tavily-ai/skills --skill tavily-dynamic-search

Tavily Dynamic Search

Keep large raw web payloads on disk and return only the evidence needed for the task. This is useful when using --include-raw-content, combining several queries, or extracting multiple long pages. Do not use this workflow for a simple lookup that a normal tvly search --json can answer directly.

Before running

Search and extract support capped keyless access. Run them directly when tvly is available. If tvly is missing, follow the tavily-cli setup. Do not look for an API key or authenticate before the first request. If the keyless cap is reached in an interactive session, run tvly login to open browser OAuth, then retry the blocked request once. In an unattended environment, report the cap and authentication options instead of starting an interactive flow.

Workflow

  1. Search broadly without raw content and inspect titles, URLs, scores, and snippets.
  2. Fetch full content only for the best sources.
  3. When raw output could be large, save it with -o and filter the file before printing anything to the model context.
  4. Preserve source URLs beside every extracted fact.

When the user restricts evidence to official or named domains, validate the hostname of every selected URL during local filtering. --include-domains narrows the search but is not proof that every returned result belongs to an allowed host. If full-page extraction is unavailable, label conclusions as search-snippet evidence instead of implying that the page body was verified.

Keep the process in one turn when the relevant sources and filters are already known. Use another turn only when the first search changes what should be extracted.

Create a unique temporary task directory before saving evidence so concurrent agents do not overwrite one another. Python's tempfile.mkdtemp() is available when mktemp is not permitted. Reuse that directory for all raw and filtered artifacts from the task.

Small result: filter a direct JSON response

For a small search response, a pipe is enough:

tvly search "query" --max-results 5 --json | python3 -c '
import json, sys
data = json.load(sys.stdin)
for result in data.get("results", []):
    score = result.get("score") or 0
    title = result.get("title") or ""
    print(f"[{score:.2f}] {title}")
    print(result.get("url", ""))
    print(result.get("content", "")[:300])
'

Do not discard stderr. Authentication failures, keyless-cap messages, and API errors are actionable and must remain visible.

Large result: save first, then filter

Use the CLI's file output so raw page content does not pass through the tool response:

tvly search "query" \
  --include-raw-content markdown \
  --max-results 8 \
  --json \
  -o /tmp/tavily-search-results.json

Then print only bounded evidence:

python3 -c '
import json
from pathlib import Path

data = json.loads(Path("/tmp/tavily-search-results.json").read_text())
for result in data.get("results", []):
    title = result.get("title") or ""
    url = result.get("url") or ""
    print(f"## {title}")
    print(f"URL: {url}")
    print((result.get("raw_content") or result.get("content") or "")[:1200])
    print()
'

Adjust the filtering logic to the question. Prefer relevant paragraphs or fields over fixed character slices when the target information is known. Aim for roughly 150-600 tokens per source unless a table or code block genuinely requires more.

Targeted extraction

When search identifies the right URLs, extract only those pages:

tvly extract "https://example.com/article" \
  --json \
  -o /tmp/tavily-extract-results.json

For topic-focused pages, let Tavily reduce the response before local filtering:

tvly extract "https://example.com/docs" \
  --query "authentication API" \
  --chunks-per-source 3 \
  --json \
  -o /tmp/tavily-extract-results.json

Multiple queries

For multi-angle research, run a small set of focused searches, deduplicate by URL, and rank before extracting. Use subprocess.run(..., capture_output=True, text=True) when orchestrating commands in Python. Check returncode; if a command fails, surface its stderr and stop or retry deliberately. Never use a blanket except Exception: continue that hides missing evidence.

Response shapes

tvly search --json returns query, optional answer, results, and response_time. Each result commonly contains url, title, content, score, and optional raw_content.

tvly extract --json returns results, failed_results, and response_time. Each successful result commonly contains url, raw_content, and optional images.

Treat fields as optional and use .get() while filtering. Inspect failed_results instead of assuming every requested URL succeeded.

Useful options

OptionPurpose
--max-resultsBound the search result count; default 5, maximum 20
--depthChoose ultra-fast, fast, basic, or advanced
--time-rangeRestrict results to day, week, month, or year
--include-domainsRestrict results to a comma-separated list of trusted domains
--exclude-domainsExclude a comma-separated list of domains
--include-raw-contentInclude full content as markdown or text
-o, --outputSave the complete response to a file

Use jq only for short filters when Python is unavailable:

tvly search "query" --json | jq '[.results[] | {title, url, score, content}]'

Lebih banyak skill dari tavily-ai

research
tavily-ai
We need to translate the given English text into Bahasa Indonesia. The instruction says to preserve product names, protocol names, URLs, numbers, and technical terms. The name "research" is to be preserved if it appears in the source text, but we are not to include the name unless it appears. The source text does not contain the word "research" as a standalone name? Actually it starts with "Comprehensive research on any topic..." so "research" is part of the text. But the instruction says "Do not include the name unless it appears in the source text." So we keep it as is. Also preserve "Tavily MCP server", "OAuth", etc. Translate the rest naturally. Let me translate: "Comprehensive research on any topic with automatic source gathering, analysis, and citations." -> "Riset komprehensif tentang topik apa pun dengan pengumpulan sumber, analisis, dan kutipan otomatis." "Conducts multi-source web research with explicit citations, ideal for comparisons, current events, market analysis, and detailed reports
search
tavily-ai
Pencarian web dengan hasil yang dioptimalkan untuk LLM, penilaian relevansi, dan penyaringan fleksibel. Mendukung empat mode kedalaman pencarian (ultra-cepat, cepat, dasar, lanjutan) dengan pengaturan latensi dan tradeoff relevansi yang dapat dikonfigurasi. Termasuk penyaringan domain, batasan rentang waktu, rentang tanggal, penguatan negara, dan ekstraksi konten mentah. Mengembalikan hasil dengan judul, URL, cuplikan konten, dan skor relevansi; hasil gambar opsional dan favicon. Otentikasi OAuth otomatis melalui server Tavily MCP atau konfigurasi kunci API;...
tavily-best-practices
tavily-ai
API pencarian web untuk LLM dengan akses data real-time, ekstraksi konten, perayapan situs, dan riset bertenaga AI. Lima metode inti: search() untuk hasil web, extract() untuk konten URL, crawl() untuk ekstraksi seluruh situs, map() untuk penemuan URL, dan research() untuk sintesis AI ujung-ke-ujung. Mendukung SDK Python dan JavaScript dengan klien asinkron untuk kueri paralel dan kedalaman pencarian yang dapat dikonfigurasi (ultra-cepat/cepat/dasar/lanjutan). Metode crawl menerima instruksi semantik untuk memfokuskan ekstraksi pada...
tavily-cli
tavily-ai
Pencarian web, ekstraksi konten, perayapan situs, dan riset mendalam melalui Tavily CLI. Lima mode perintah yang mencakup pencarian, ekstraksi, penemuan URL, perayapan massal, dan riset multi-sumber dengan kutipan. Semua perintah mendukung output JSON dan penyimpanan file untuk alur kerja terstruktur dan agen. Pola eskalasi memandu Anda dari pencarian sederhana melalui ekstraksi, pemetaan, perayapan, hingga riset komprehensif berdasarkan kebutuhan Anda. Memerlukan instalasi tavily-cli dan autentikasi kunci API melalui tvly login.
tavily-crawl
tavily-ai
Perayap situs web multi-halaman dengan penyaringan semantik dan ekspor markdown. Jelajahi seluruh bagian situs dengan kontrol kedalaman dan luas; filter berdasarkan regex jalur, domain, atau instruksi bahasa alami untuk memfokuskan hasil. Simpan setiap halaman sebagai file markdown lokal melalui --output-dir, atau kembalikan JSON terstruktur untuk pemrosesan agen. Gunakan instruksi semantik dengan ekstraksi potongan untuk mencegah pembengkakan konteks saat memberikan hasil ke LLM; gunakan ekstraksi halaman penuh untuk unduhan dokumentasi offline. Mendukung...
tavily-extract
tavily-ai
Mengekstrak markdown atau teks bersih dari hingga 20 URL, dengan dukungan rendering JavaScript dan pemotongan berbasis kueri. Menangani halaman yang dirender JavaScript dengan kedalaman ekstraksi yang dapat dikonfigurasi (dasar untuk halaman sederhana, lanjutan untuk SPA dinamis dan tabel). Mendukung ekstraksi berbasis kueri untuk mengembalikan hanya potongan konten yang relevan, bukan halaman penuh. Mengembalikan markdown yang dioptimalkan untuk LLM secara default, dengan opsi format teks biasa dan output JSON terstruktur. Memproses hingga 20 URL dalam satu panggilan;...
tavily-research
tavily-ai
Penelitian komprehensif bertenaga AI dengan sintesis multi-sumber dan kutipan. Menghasilkan laporan terstruktur yang didasarkan pada sumber web, memakan waktu 30-120 detik tergantung pada pemilihan model (mini untuk kueri tertarget, pro untuk perbandingan kompleks). Mendukung beberapa format keluaran: laporan markdown, JSON dengan skema kustom, dan gaya kutipan yang dapat dikonfigurasi (bernomor, MLA, APA, Chicago). Menyertakan alur kerja asinkron untuk penelitian jangka panjang melalui perintah --no-wait, status, dan poll, plus real-time...
tavily-search
tavily-ai
We need to translate the given English text into Bahasa Indonesia. The text describes a web search skill with LLM-optimized results, content snippets, relevance scores, search depths, configurable result counts, domain filtering, time-range constraints, structured JSON output, specialized search modes for news and finance, optional AI-generated answers, full page content extraction, and integration. We must preserve product names, protocol names, URLs, numbers, technical terms. The name "tavily-search" is not in the text, so we don't include it. We translate only the text inside <text>. No extra commentary, labels, etc. Translation: "Pencarian web dengan hasil yang dioptimalkan untuk LLM, cuplikan konten, dan skor relevansi. Mendukung empat kedalaman pencarian (sangat cepat, cepat, dasar, lanjutan) dengan jumlah hasil yang dapat dikonfigurasi hingga 20, plus pemfilteran domain dan batasan rentang waktu. Mengembalikan output JSON terstruktur dengan cuplikan konten, sk