tavily-dynamic-search

Rechercher sur le web, filtrer les résultats et extraire le contenu afin que les données brutes de recherche n’entrent jamais dans votre fenêtre de contexte. Seul votre résultat print() organisé est renvoyé.

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}]'

Plus de skills de tavily-ai

research
tavily-ai
Recherche approfondie sur n'importe quel sujet avec collecte automatique des sources, analyse et citations. Effectue des recherches web multi-sources avec citations explicites, idéal pour les comparaisons, l'actualité, l'analyse de marché et les rapports détaillés. Propose trois options de modèle : mini pour une recherche ciblée sur un seul sujet (~30s), pro pour une analyse complète multi-angle (~60-120s), et auto pour la détection de complexité via API. S'authentifie via OAuth via le serveur MCP Tavily avec connexion automatique basée sur le navigateur...
search
tavily-ai
We need to translate the given English text into French, preserving the name "search" if it appears. The text is a description of a web search agent skill. The instruction says to translate only the text inside <text>, and not include the name unless it appears in the source text. The name "search" is not in the provided text? Actually the text starts with "Web search..." so "search" is part of the phrase "Web search". But the instruction says "Name to preserve: search" - that likely means the skill name is "search", but it's not explicitly in the text as a standalone name. The text says "Web search" which includes "search". We should preserve that as is? The instruction says "Do not include the name unless it appears in the source text." Since "search" appears as part of "Web search", we should keep "Web search" as is? But we are translating to French, so "Web search" would become "Recherche Web" or "Recherche sur le Web"? However, the instruction says
tavily-best-practices
tavily-ai
API de recherche web pour LLMs avec accès aux données en temps réel, extraction de contenu, exploration de sites et recherche assistée par IA. Cinq méthodes principales : search() pour les résultats web, extract() pour le contenu d'URL, crawl() pour l'exploration complète d'un site, map() pour la découverte d'URL, et research() pour la synthèse IA de bout en bout. Prend en charge les SDK Python et JavaScript avec des clients asynchrones pour les requêtes parallèles et une profondeur de recherche configurable (ultra-rapide/rapide/basique/avancée). La méthode crawl accepte des instructions sémantiques pour concentrer l'extraction sur...
tavily-cli
tavily-ai
Recherche web, extraction de contenu, exploration de sites et recherche approfondie via Tavily CLI. Cinq modes de commande couvrant la recherche, l'extraction, la découverte d'URL, l'exploration en masse et la recherche multi-sources avec citations. Toutes les commandes prennent en charge la sortie JSON et la sauvegarde de fichiers pour des workflows structurés et agentiques. Un modèle d'escalade vous guide de la recherche simple à l'extraction, la cartographie, l'exploration, jusqu'à la recherche complète selon vos besoins. Nécessite l'installation de tavily-cli et l'authentification par clé API via tvly login.
tavily-crawl
tavily-ai
Robot de site web multi-pages avec filtrage sémantique et export en Markdown. Parcourez des sections entières de site avec contrôle de la profondeur et de la largeur ; filtrez par expression régulière de chemin, domaine ou instructions en langage naturel pour cibler les résultats. Enregistrez chaque page sous forme de fichiers Markdown locaux via --output-dir, ou renvoyez du JSON structuré pour un traitement agentique. Utilisez des instructions sémantiques avec extraction par fragments pour éviter le gonflement du contexte lors de l’envoi des résultats aux LLM ; utilisez l’extraction de page entière pour les téléchargements de documentation hors ligne. Prend en charge...
tavily-extract
tavily-ai
Extrayez du markdown ou du texte propre à partir de jusqu'à 20 URL, avec prise en charge du rendu JavaScript et du découpage ciblé par requête. Gère les pages rendues par JavaScript avec une profondeur d'extraction configurable (basique pour les pages simples, avancée pour les SPA dynamiques et les tableaux). Prend en charge l'extraction ciblée par requête pour ne renvoyer que les fragments de contenu pertinents au lieu des pages entières. Renvoie par déf
tavily-research
tavily-ai
Recherche complète alimentée par l'IA avec synthèse multi-sources et citations. Produit des rapports structurés basés sur des sources web, prenant 30 à 120 secondes selon le modèle choisi (mini pour les requêtes ciblées, pro pour les comparaisons complexes). Prend en charge plusieurs formats de sortie : rapports en markdown, JSON avec schémas personnalisés et styles de citation configurables (numérotés, MLA, APA, Chicago). Inclut un flux de travail asynchrone pour les recherches longues via les commandes --no-wait, status et poll, ainsi qu'un temps réel...
tavily-search
tavily-ai
Recherche web avec résultats optimisés pour LLM, extraits de contenu et scores de pertinence. Prend en charge quatre profondeurs de recherche (ultra-rapide, rapide, basique, avancée) avec des nombres de résultats configurables jusqu'à 20, plus un filtrage par domaine et des contraintes de plage temporelle. Renvoie une sortie JSON structurée avec des extraits de contenu, des scores de pertinence et des métadonnées optimisées pour la consommation par LLM. Inclut des modes de recherche spécialisés pour les sujets d'actualité et financiers, avec des réponses générées par IA optionnelles et une extraction complète du contenu des pages. S'intègre dans...