tavily-dynamic-search

作成者: tavily-ai

ウェブを検索し、結果をフィルタリングしてコンテンツを抽出することで、生の検索データがコンテキストウィンドウに入ることはありません。厳選されたprint()出力のみが返されます。

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

tavily-aiのその他のスキル

research
tavily-ai
あらゆるトピックについて、自動的な情報収集、分析、引用を伴う包括的なリサーチを実施。明示的な引用付きで複数ソースのウェブリサーチを行い、比較、時事問題、市場分析、詳細レポートに最適。3つのモデルオプションを提供:ミニ(対象を絞った単一トピックのリサーチ、約30秒)、プロ(包括的な多角的分析、約60~120秒)、オート(APIによる複雑性検出で自動選択)。Tavily MCPサーバーを通じてOAuth認証を行い、自動ブラウザベースのログインを...
search
tavily-ai
LLM最適化された結果、関連性スコアリング、柔軟なフィルタリングを備えたWeb検索。4つの検索深度モード(超高速、高速、基本、高度)をサポートし、レイテンシと関連性のトレードオフを設定可能。ドメインフィルタリング、時間範囲制約、日付範囲、国別ブースト、生コンテンツ抽出を含む。タイトル、URL、コンテンツスニペット、関連性スコアを含む結果を返し、オプションで画像結果とファビコンも提供。Tavily MCPサーバーまたはAPIキー設定による自動OAuth認証。
tavily-best-practices
tavily-ai
LLM向けWeb検索API。リアルタイムデータアクセス、コンテンツ抽出、サイトクローリング、AI駆動のリサーチを提供。5つのコアメソッド:search()(Web結果取得)、extract()(URLコンテンツ抽出)、crawl()(サイト全体の抽出)、map()(URL発見)、research()(エンドツーエンドのAI合成)。PythonおよびJavaScript SDKに対応し、非同期クライアントによる並列クエリと設定可能な検索深度(ultra-fast/fast/basic/advanced)をサポート。Crawlメソッドはセマンティック指示を受け付け、抽出を特定の内容に集中させる。
tavily-cli
tavily-ai
Web検索、コンテンツ抽出、サイトクローリング、およびTavily CLIによる深層リサーチ。検索、抽出、URL発見、一括クローリング、引用付きマルチソースリサーチをカバーする5つのコマンドモード。すべてのコマンドはJSON出力とファイル保存に対応し、構造化されたエージェントワークフローを実現。エスカレーションパターンにより、単純な検索から抽出、マッピング、クローリング、包括的なリサーチまで、ニーズに応じてガイド。tavily-cliのインストールと、tvly loginによるAPIキー認証が必要。
tavily-crawl
tavily-ai
マルチページウェブサイトクローラーで、セマンティックフィルタリングとマークダウンエクスポート機能を備えています。深さと幅を制御してサイト全体のセクションをクロールし、パス正規表現、ドメイン、または自然言語の指示でフィルタリングして結果を絞り込みます。各ページを--output-dirでローカルのマークダウンファイルとして保存するか、エージェント処理用に構造化JSONを返します。結果をLLMに渡す際のコンテキスト肥大化を防ぐために、チャンク抽出を伴うセマンティック指示を使用します。オフラインのドキュメントダウンロードには全ページ抽出を使用します。対応...
tavily-extract
tavily-ai
最大20件のURLからクリーンなマークダウンまたはテキストを抽出。JavaScriptレンダリングとクエリに焦点を当てたチャンク分割をサポート。JavaScriptでレンダリングされたページを処理し、抽出深度を設定可能(シンプルなページは基本、動的なSPAやテーブルは高度)。クエリに焦点を当てた抽出をサポートし、全ページではなく関連コンテンツのチャンクのみを返却。デフォルトでLLM最適化されたマークダウンを返し、プレーンテキスト形式や構造化JSON出力のオプションも提供。1回の呼び出しで最大20件のURLを処理。
tavily-research
tavily-ai
包括複数ソースの統合と引用を備えた包括的なAI駆動型リサーチ。ウェブソースに基づいた構造化レポートを生成し、モデル選択(ミニは対象クエリ、プロは複雑な比較用)に応じて30~120秒かかります。複数の出力形式(マークダウンレポート、カスタムスキーマ付きJSON、設定可能な引用スタイル(番号付き、MLA、APA、シカゴ))をサポート。非同期ワークフローによる長時間リサーチを--no-wait、status、pollコマンドで実行可能で、リアルタイム...
tavily-search
tavily-ai
LLMに最適化された結果、コンテンツスニペット、関連性スコアを提供するウェブ検索。4つの検索深度(超高速、高速、基本、詳細)をサポートし、最大20件までの設定可能な結果数、ドメインフィルタリング、時間範囲制約に対応。LLMでの利用に最適化されたコンテンツスニペット、関連性スコア、メタデータを含む構造化JSON出力を返す。ニュースや金融トピック向けの専門検索モード、オプションのAI生成回答、全ページコンテンツ抽出機能を備え、...に統合。