tavily-dynamic-search

Busca en la web, filtra resultados y extrae contenido para que los datos de búsqueda sin procesar nunca entren en tu ventana de contexto. Solo tu salida curada de print() regresa.

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

Más skills de tavily-ai

research
tavily-ai
Investigación exhaustiva sobre cualquier tema con recopilación automática de fuentes, análisis y citas. Realiza investigación web de múltiples fuentes con citas explícitas, ideal para comparaciones, eventos actuales, análisis de mercado e informes detallados. Ofrece tres opciones de modelo: mini para investigación dirigida de un solo tema (~30s), pro para análisis integral de múltiples ángulos (~60-120s) y auto para detección de complejidad impulsada por API. Se autentica mediante OAuth a través del servidor MCP de Tavily con inicio de sesión automático basado en navegador en...
search
tavily-ai
Búsqueda web con resultados optimizados para LLM, puntuación de relevancia y filtrado flexible. Compatible con cuatro modos de profundidad de búsqueda (ultrarrápido, rápido, básico, avanzado) con compensaciones configurables entre latencia y relevancia. Incluye filtrado por dominio, restricciones de rango temporal, rangos de fechas, priorización por país y extracción de contenido sin procesar. Devuelve resultados con título, URL, fragmento de contenido y puntuación de relevancia; resultados de imágenes opcionales y favicons. Autenticación OAuth automática a través del servidor MCP de Tavily o configuración de clave API;...
tavily-best-practices
tavily-ai
API de búsqueda web para LLMs con acceso a datos en tiempo real, extracción de contenido, rastreo de sitios e investigación impulsada por IA. Cinco métodos principales: search() para resultados web, extract() para contenido de URL, crawl() para extracción en todo el sitio, map() para descubrimiento de URL y research() para síntesis de IA de extremo a extremo. Compatible con SDKs de Python y JavaScript con clientes asíncronos para consultas paralelas y profundidad de búsqueda configurable (ultra-rápida/rápida/básica/avanzada). El método crawl acepta instrucciones semánticas para enfocar la extracción en...
tavily-cli
tavily-ai
Búsqueda web, extracción de contenido, rastreo de sitios e investigación profunda a través de Tavily CLI. Cinco modos de comando que cubren búsqueda, extracción, descubrimiento de URL, rastreo masivo e investigación multifuente con citas. Todos los comandos admiten salida JSON y guardado en archivos para flujos de trabajo estructurados y agentivos. Un patrón de escalamiento te guía desde la búsqueda simple hasta la extracción, mapeo, rastreo e investigación exhaustiva según tus necesidades. Requiere instalación de tavily-cli y autenticación mediante clave API a través de tvly login.
tavily-crawl
tavily-ai
Rastreador de sitios web multipágina con filtrado semántico y exportación a Markdown. Rastrea secciones completas del sitio con control de profundidad y amplitud; filtra por expresión regular de ruta, dominio o instrucciones en lenguaje natural para enfocar los resultados. Guarda cada página como archivos Markdown locales mediante --output-dir, o devuelve JSON estructurado para procesamiento agéntico. Usa instrucciones semánticas con extracción por fragmentos para evitar la saturación de contexto al alimentar resultados a LLMs; usa extracción de página completa para descargas de documentación sin conexión. Compatible con...
tavily-extract
tavily-ai
Extrae markdown limpio o texto de hasta 20 URL, con renderizado de JavaScript y soporte de fragmentación enfocada en consultas. Maneja páginas renderizadas con JavaScript con profundidad de extracción configurable (básica para páginas simples, avanzada para SPA dinámicas y tablas). Admite extracción enfocada en consultas para devolver solo fragmentos de contenido relevantes en lugar de páginas completas. Devuelve markdown optimizado para LLM de forma predeterminada, con opciones para formato de texto plano y salida JSON estructurada. Procesa hasta 20 URL en una sola llamada;...
tavily-research
tavily-ai
Investigación integral impulsada por IA con síntesis de múltiples fuentes y citas. Produce informes estructurados basados en fuentes web, tomando entre 30 y 120 segundos según la selección del modelo (mini para consultas específicas, pro para comparaciones complejas). Admite múltiples formatos de salida: informes en markdown, JSON con esquemas personalizados y estilos de cita configurables (numerados, MLA, APA, Chicago). Incluye flujo de trabajo asíncrono para investigaciones de larga duración mediante los comandos --no-wait, status y poll, además de tiempo real...
tavily-search
tavily-ai
Búsqueda web con resultados optimizados para LLM, fragmentos de contenido y puntuaciones de relevancia. Admite cuatro profundidades de búsqueda (ultrarrápida, rápida, básica, avanzada) con recuentos de resultados configurables de hasta 20, además de filtrado por dominio y restricciones de rango temporal. Devuelve una salida JSON estructurada con fragmentos de contenido, puntuaciones de relevancia y metadatos optimizados para el consumo de LLM. Incluye modos de búsqueda especializados para temas de noticias y finanzas, con respuestas generadas por IA opcionales y extracción completa del contenido de la página. Se integra en...