tavily について
Tavilyは、最新情報を必要とするLLMアプリ向けのウェブ検索・コンテンツ取得サービスです。サイトのマッピングやクロール、自律型リサーチにも対応するAPIを提供します。
主な機能
- 01LLM向けウェブ検索
- 02URLからコンテンツを抽出
- 03ウェブサイト構造のマッピング
- 04指示に沿ったサイトクロール
- 05自律型の詳細リサーチ
活用シーン
- 01RAGアプリへの最新ウェブ情報の追加
- 02AIエージェントによる最新情報の検索
- 03処理対象となるウェブページの取得
- 04複雑な複数段階の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ itechmeat/ llm-code --skill tavilyインストール後、Claude Code で/tavilyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api.mdbest-practices.mdintegrations.mdjavascript.mdpython.md詳細
Tavily
リアルタイムのウェブデータを活用して LLM アプリケーションを構築するための、AI に最適化された検索エンジンです。
リンク
クイックナビゲーション
| トピック | リファレンス |
|---|---|
| REST API | api.md |
| Python SDK | python.md |
| JavaScript SDK | javascript.md |
| ベストプラクティス | best-practices.md |
| インテグレーション | integrations.md |
使用する場面
- リアルタイムのウェブデータを使った RAG アプリケーションの構築
- 最新情報が必要な AI エージェント
- ウェブページからのコンテンツ抽出
- AI の指示に基づくサイトのクロール
- 自律型の調査タスク
インストール
インストール:pip install tavily-python(Python)または npm i @tavily/core(JavaScript)。
クイックスタート
Python
from tavily import TavilyClient
client = TavilyClient(api_key="tvly-YOUR_API_KEY")
response = client.search("What is the latest news about AI?")
print(response)
JavaScript
import { tavily } from "@tavily/core";
const client = tavily({ apiKey: "tvly-YOUR_API_KEY" });
const response = await client.search("What is the latest news about AI?");
console.log(response);
cURL
curl -X POST https://api.tavily.com/search \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tvly-YOUR_API_KEY" \
-d '{"query": "What is the latest news about AI?"}'
コア API
| API | 用途 | クレジット |
|---|---|---|
| Search | LLM 向けに最適化されたウェブ検索 | リクエストごとに 1~2 |
| Extract | URL からコンテンツを抽出 | 5 URL ごとに 1~2 |
| Map | ウェブサイトの構造をマッピング | 10 ページごとに 1~2 |
| Crawl | サイトをクロールしてコンテンツを抽出 | Map + Extract |
| Research | 自律型の詳細調査(ベータ版) | タスクごとに 4~250 |
料金とクレジット
無料プラン: 月間 1,000 クレジット(クレジットカード不要)
| プラン | 月間クレジット | クレジット単価 |
|---|---|---|
| Researcher | 1,000 | 無料 |
| Project | 4,000 | $0.0075 |
| Bootstrap | 15,000 | $0.0067 |
| Startup | 38,000 | $0.0058 |
| Growth | 100,000 | $0.005 |
| 従量課金 | 使用量に応じて | $0.008 |
クレジット消費量
| API | 基本 | 高度 |
|---|---|---|
| Search | 1 | 2 |
| Extract | 5 URL あたり 1 | 5 URL あたり 2 |
| Map | 10 ページあたり 1 | 10 ページあたり 2 |
| Crawl | Map + Extract のコスト | |
| Research (mini) | 4~110 | - |
| Research (pro) | 15~250 | - |
レート制限
| 環境 | RPM(リクエスト/分) |
|---|---|
| 開発環境 | 100 |
| 本番環境 | 1,000 |
注: Crawl エンドポイントは、どちらの環境でも 100 RPM に制限されています。
本番用キーを使用するには、有料プランまたは PAYGO の有効化が必要です。
Search API
LLM に最適化されたウェブ検索の主要エンドポイントです。
response = client.search(
query="Latest AI developments",
search_depth="advanced", # "basic" (1 credit) or "advanced" (2 credits)
max_results=10, # 1-20 results
include_answer=True, # Include AI-generated answer
include_raw_content=False, # Include raw HTML
include_domains=["arxiv.org"], # Filter to specific domains
exclude_domains=["pinterest.com"] # Exclude domains
)
レスポンス構造
{
"query": "...",
"answer": "AI-generated summary...", # if include_answer=True
"results": [
{
"title": "Page Title",
"url": "https://...",
"content": "Extracted relevant content...",
"score": 0.95,
"raw_content": "..." # if include_raw_content=True
}
]
}
Extract API
指定した URL からコンテンツを抽出します。
response = client.extract(
urls=["https://example.com/article1", "https://example.com/article2"],
extract_depth="basic" # "basic" or "advanced"
)
Crawl API
AI の指示に基づいてウェブサイトをクロールします。
response = client.crawl(
url="https://docs.example.com",
instructions="Find all pages about Python SDK", # Optional AI guidance
max_depth=2,
limit=50
)
Map API
コンテンツを抽出せずに、ウェブサイトの構造を取得します。
response = client.map(
url="https://docs.example.com",
instructions="Find documentation pages" # Optional
)
Research API(ベータ版)
複雑なトピックについて自律的に詳細調査します。
response = client.research(
input="What are the implications of quantum computing on cryptography?",
model="pro" # "pro" (15-250 credits) or "mini" (4-110 credits)
)
Tavily を選ぶ理由
| 特徴 | 従来の検索 | Tavily |
|---|---|---|
| 出力 | URL + スニペット | 全コンテンツ |
| スクレイピング | 手動 | 組み込み |
| LLM 最適化 | なし | 専用設計 |
| フィルタリング | 手動 | AI による処理 |
| コンテキスト制限 | 対応なし | 最適化済み |
ベストプラクティス
- シンプルなクエリには
search_depth="basic"を使用します(クレジットを節約できます) - 手早く要約するには
include_answer=Trueを使用します - 関連性を高めるにはドメインをフィルタリングします
- 特定の URL がわかっている場合は Extract を使用します
- 複雑で複数の手順が必要なクエリには Research を使用します
- Python のキーレスモードは試用時にのみ使用します。利用できるのは
search()とextract()のみで、レート制限も適用されます
禁止事項
-
クライアント側のコードで API キーを公開しないでください
-
レート制限を超えないでください(バックオフを実装してください)
-
Tavily クローラーをブロックしているサイトをスクレイピングしないでください
コメント
Markdown 対応