tavily-dynamic-search

Поиск в интернете, фильтрация результатов и извлечение контента, чтобы необработанные данные

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

Больше skills от tavily-ai

research
tavily-ai
Всестороннее исследование любой темы с автоматическим сбором источников, анализом и цитированием. Проводит многоисточниковый веб-поиск с явными ссылками, идеально подходит для сравнений, текущих событий, анализа рынка и детальных отчетов. Предлагает три варианта модели: mini для целенаправленного исследования одной темы (~30 с), pro для всестороннего многоаспектного анализа (~60–120 с) и auto для автоматического определения сложности через API. Аутентификация через OAuth через сервер MCP Tavily с автоматическим входом через браузер...
search
tavily-ai
Веб-поиск с оптимизированными для LLM результатами, оценкой релевантности и гибкой фильтрацией. Поддерживает четыре режима глубины поиска (ультрабыстрый, быстрый, базовый, расширенный) с настраиваемыми компромиссами между задержкой и релевантностью. Включает фильтрацию доменов, ограничения по временному диапазону, даты, повышение приоритета стран и извлечение необработанного контента. Возвращает результаты с заголовком, URL, фрагментом содержимого и оценкой релевантности; опционально изображения и фавиконы. Автоматическая аутентификация OAuth через сервер Tavily MCP или настройка API-ключа;...
tavily-best-practices
tavily-ai
Веб-поисковый API для LLM с доступом к данным в реальном времени, извлечением контента, сканированием сайтов и AI-исследованиями. Пять основных методов: search() для веб-результатов, extract() для контента URL, crawl() для сканирования всего сайта, map() для обнаружения URL и research() для сквозного AI-синтеза. Поддерживает SDK для Python и JavaScript с асинхронными клиентами для параллельных запросов и настраиваемой глубиной поиска (ultra-fast/fast/basic/advanced). Метод crawl принимает семантические инструкции для фокусировки извлечения на...
tavily-cli
tavily-ai
Веб-поиск, извлечение контента, сканирование сайтов и глубокое исследование через Tavily CLI. Пять режимов команд, охватывающих поиск, извлечение, обнаружение URL, массовое сканирование и многоисточниковое исследование с цитированием. Все команды поддерживают вывод в JSON и сохранение в файл для структурированных агентных рабочих процессов. Схема эскалации ведет вас от простого поиска через извлечение, картографирование, сканирование к всестороннему исследованию в зависимости от ваших потребностей. Требуется установка tavily-cli и аутентификация по API-ключу через tvly login.
tavily-crawl
tavily-ai
Многостраничный веб-сканер с семантической фильтрацией и экспортом в Markdown. Сканируйте целые разделы сайтов с контролем глубины и ширины; фильтруйте по регулярному выражению пути, домену или инструкциям на естественном языке для фокусировки результатов. Сохраняйте каждую страницу в виде локальных Markdown-файлов через --output-dir или возвращайте структурированный JSON для агентной обработки. Используйте семантические инструкции с извлечением фрагментов для предотвращения раздувания контекста при передаче результатов LLM; используйте извлечение полных страниц для загрузки офлайн-документации. Поддерживает...
tavily-extract
tavily-ai
Извлекает чистый Markdown или текст из до 20 URL-адресов с поддержкой рендеринга JavaScript и разбивки на фрагменты по запросу. Обрабатывает страницы с рендерингом JavaScript с настраиваемой глубиной извлечения (базовая для простых страниц, продвинутая для динамических SPA и таблиц). Поддерживает извлечение по запросу, возвращая только релевантные фрагменты контента вместо полных страниц. По умолчанию возвращает оптимизированный для LLM Markdown с возможностью выбора формата обычного текста и структурированного вывода JSON. Обрабатывает до 20 URL-адресов за один вызов;...
tavily-research
tavily-ai
Комплексное исследование на основе ИИ с синтезом из нескольких источников и цитированием. Создаёт структурированные отчёты на основе веб-источников, занимая 30–120 секунд в зависимости от выбранной модели (mini для целевых запросов, pro для сложных сравнений). Поддерживает несколько форматов вывода: отчёты в Markdown, JSON с пользовательскими схемами и настраиваемые стили цитирования (нумерованный, MLA, APA, Chicago). Включает асинхронный рабочий процесс для длительных исследований через команды --no-wait, status и poll, а также работу в реальном времени...
tavily-search
tavily-ai
Веб-поиск с оптимизированными для LLM результатами, фрагментами контента и оценками релевантности. Поддерживает четыре глубины поиска (ультрабыстрый, быстрый, базовый, расширенный) с настраиваемым количеством результатов до 20, а также фильтрацию по доменам и временным ограничениям. Возвращает структурированный JSON-вывод с фрагментами контента, оценками релевантности и метаданными, оптимизированными для использования LLM. Включает специализированные режимы поиска по новостям и финансам с опциональными ответами, сгенерированными ИИ, и извлечением полного содержимого страниц. Интегрируется в...