tavily について
Tavily APIを使ったウェブ検索とURL本文抽出のスキルです。最新情報や技術ドキュメント、指定ページの本文が必要なワークフロー向けで、検索結果を構造化JSONで返し、ニュースの期間指定やディープ検索にも対応します。
主な機能
- 01クエリによるウェブ検索
- 02公開日によるニュースの絞り込み
- 03技術ドキュメントのディープ検索
- 04指定URLから本文を抽出
- 05構造化JSONで結果を返却
活用シーン
- 01トピックの最新情報を検索
- 02直近数日間のニュースを調査
- 03指定したウェブページの全文を取得
- 04ライブラリのドキュメントを詳しく調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mathews-tom/ armory --skill tavilyインストール後、Claude Code で/tavilyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/cases.yamlscripts/extract.mjssearch.mjs詳細
Tavily Search
Tavily API を活用したウェブ検索と URL コンテンツの抽出機能です。AI が利用しやすい、クリーンで構造化された結果を返します。HTML のノイズ、Cookie バナー、ページネーションは含まれません。
Tavily と他のツールの使い分け
| 状況 | ツール | 理由 |
|---|---|---|
| トピックに関する最新情報が必要 | search.mjs | Tavily はリアルタイムの結果を集約し、順位付けします |
| 過去 N 日間のニュースが必要 | search.mjs --topic news --days N | ニュースモードでは新しさに基づいて絞り込みます |
| 特定の URL があり、全文が必要 | extract.mjs | URL からクリーンな記事コンテンツを抽出します |
| ライブラリのドキュメントが必要 | search.mjs --deep | ディープモードではドキュメントサイトを徹底的に検索します |
| 既知の静的リソースが必要 | 直接取得または読み込み | リアルタイム検索が不要なら Tavily を使わずに済ませます |
| 競合する複数の視点が必要 | search.mjs -n 10 | 結果数を増やして幅広く検索します |
スクリプト
どちらのスクリプトも scripts/ にあり、環境に TAVILY_API_KEY が必要です。
scripts/search.mjs— クエリベースのウェブ検索scripts/extract.mjs— URL からコンテンツ全体を抽出
検索
node {baseDir}/scripts/search.mjs "query"
node {baseDir}/scripts/search.mjs "query" -n 10
node {baseDir}/scripts/search.mjs "query" --deep
node {baseDir}/scripts/search.mjs "query" --topic news
node {baseDir}/scripts/search.mjs "query" --topic news --days 3
検索オプション
| オプション | デフォルト | 説明 |
|---|---|---|
-n <count> | 5 | 返す結果の数(最大:20)。より広く検索するには増やしてください。 |
--deep | オフ | 高度な検索モードです。時間はかかりますが、より包括的です。複雑な調査の質問、技術的な詳細調査、または標準の結果では不十分な場合に使用してください。 |
--topic <topic> | general | 標準検索には general、新しさに基づいて絞り込んだ最新ニュースには news を指定します。 |
--days <n> | — | --topic news と併用する場合のみ有効です。過去 n 日以内に公開された記事に結果を限定します。 |
URL からコンテンツを抽出
node {baseDir}/scripts/extract.mjs "https://example.com/article"
URL がすでにわかっていて、ページのコンテンツ全体が必要な場合に使用します。Tavily はナビゲーション、広告、定型文を取り除き、構造化された記事テキストを返します。
出力形式
検索結果は JSON 配列で返されます。各結果には次の内容が含まれます。
[
{
"title": "Article or page title",
"url": "https://source.com/path",
"content": "Clean text snippet (AI-optimized excerpt)",
"score": 0.92
}
]
score は Tavily による関連度の順位付け(0~1)です。数値が高いほど関連性が高くなります。結果を解析する際は、要約に content、出典の提示に url を使用してください。content を記事全文として扱わないでください。全文が必要な場合は、URL に対して extract.mjs を使用してください。
抽出結果は単一のオブジェクトで返されます。
{
"url": "https://source.com/path",
"raw_content": "Full extracted page text..."
}
エラー処理
| エラー | 原因 | 解決方法 |
|---|---|---|
TAVILY_API_KEY not set | 環境変数が設定されていません | 実行前に TAVILY_API_KEY を設定します。キーは https://tavily.com で取得できます |
401 Unauthorized | API キーが無効です | キーの値を確認します。必要に応じて Tavily ダッシュボードで再発行してください |
429 Too Many Requests | レート制限に達しました | リクエスト頻度を下げます。無料プランでは月あたり1000 API クレジットを利用できます |
結果配列が空 [] | 一致する結果が見つかりません | クエリを広げるか言い換えます。ニッチなトピックでは --deep を試してください |
ETIMEDOUT / タイムアウト | ネットワークまたは API の遅延 | 1 回再試行します。--deep 検索は時間がかかります(最大 30s) |
| Extract が空のコンテンツを返す | ページがスクレイパーをブロックしています | 別のソースを使うか、手動で取得する方法に切り替えてください |
制限事項
- レート制限:無料プランでは月あたり1000 API クレジットを利用できます。検索 1 回につき 1 クレジットが必要です。
--deepはさらに多くのクレジットを消費します。 - コンテンツの鮮度:結果は Tavily のインデックスを反映しています。ごく最近のコンテンツ(直近数時間)は
generalモードで表示されない場合があります。鮮度が重要なクエリでは--topic newsを使用してください。 - 結果の品質:Tavily は AI が読み取りやすいコンテンツを優先しますが、事実の正確性を保証するものではありません。重要な主張は一次情報で確認してください。
- ペイウォールのあるコンテンツ:ペイウォールの向こう側にある記事では、公開されている抜粋のみが返されます。
- テキスト以外のコンテンツ:PDF、画像、メディアページは、うまく抽出できないか、まったく抽出できない場合があります。
- 言語:英語のクエリで最良の結果が得られます。他の言語もサポートされていますが、結果の品質にはばらつきがあります。
コメント
Markdown 対応