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
針對任何主題進行全面研究,自動收集來源、分析並提供引用。執行多來源網路研究並附上明確引用,適合比較、時事、市場分析及詳細報告。提供三種模型選項:mini 針對單一主題的目標研究(約30秒)、pro 進行全面的多角度分析(約60-120秒),以及 auto 透過 API 驅動的複雜度偵測。透過 Tavily MCP 伺服器以 OAuth 進行驗證,並在...上自動執行基於瀏覽器的登入。
search
tavily-ai
使用LLM優化結果的網路搜尋,具備相關性評分與靈活篩選功能。支援四種搜尋深度模式(極速、快速、基本、進階),可配置延遲與相關性權衡。包含網域篩選、時間範圍限制、日期區間、國家加權及原始內容提取。回傳結果包含標題、網址、內容摘要與相關性評分;可選圖片結果與網站圖示。透過Tavily MCP伺服器或API金鑰配置自動進行OAuth驗證;...
tavily-best-practices
tavily-ai
專為LLM設計的網路搜尋API,具備即時資料存取、內容擷取、網站爬取及AI驅動研究功能。五大核心方法:search()用於搜尋網頁結果、extract()用於擷取URL內容、crawl()用於全站擷取、map()用於URL探索,以及research()用於端到端AI綜合分析。支援Python與JavaScript SDK,提供非同步客戶端以進行平行查詢,並可設定搜尋深度(極速/快速/基本/進階)。Crawl方法接受語意指令,以聚焦於特定內容的擷取...
tavily-cli
tavily-ai
透過 Tavily CLI 進行網路搜尋、內容提取、網站爬取與深度研究。五種指令模式涵蓋搜尋、提取、URL 發現、批量爬取及附引用來源的多來源研究。所有指令皆支援 JSON 輸出與檔案儲存,適用於結構化、代理式工作流程。升級模式引導您從簡單搜尋,逐步進展至提取、映射、爬取,乃至依需求進行的全面研究。需安裝 tavily-cli 並透過 tvly login 進行 API 金鑰驗證。
tavily-crawl
tavily-ai
多頁面網站爬蟲,具備語意過濾與Markdown匯出功能。可透過深度與廣度控制爬取整個網站區塊;依路徑正則表達式、網域或自然語言指令進行過濾,以聚焦結果。透過--output-dir將每個頁面儲存為本機Markdown檔案,或回傳結構化JSON供代理處理。使用語意指令搭配區塊提取,避免將結果餵入LLM時發生上下文膨脹;採用全頁提取進行離線文件下載。支援...
tavily-extract
tavily-ai
從最多20個URL中提取乾淨的Markdown或純文字,支援JavaScript渲染與查詢聚焦區塊切割。可處理JavaScript渲染頁面,並提供可設定的提取深度(基本模式適用於簡單頁面,進階模式適用於動態SPA與表格)。支援查詢聚焦提取,僅回傳相關內容區塊而非完整頁面。預設回傳經LLM最佳化的Markdown格式,亦可選擇純文字格式與結構化JSON輸出。單次呼叫可處理最多20個URL;...
tavily-research
tavily-ai
全面的AI驅動研究,具備多來源綜合與引用功能。可生成基於網路來源的結構化報告,耗時30-120秒,視模型選擇而定(mini適用於精準查詢,pro適用於複雜比較)。支援多種輸出格式:Markdown報告、自訂架構的JSON,以及可設定的引用格式(數字、MLA、APA、芝加哥)。包含非同步工作流程,可透過--no-wait、status和poll指令進行長時間研究,並支援即時...
tavily-search
tavily-ai
使用LLM優化結果、內容摘要及相關性分數進行網路搜尋。支援四種搜尋深度(極快、快速、基本、進階),可設定最多20筆結果,並提供網域過濾與時間範圍限制。回傳結構化JSON輸出,包含內容摘要、相關性分數及專為LLM設計的元數據。內建新聞與財經主題的專用搜尋模式,可選用AI生成答案及完整頁面內容提取。整合至...