tavily-web-search について
tavily-web-search は、Tavily API で最新のウェブ情報を取得し、検索結果をまとめる AI エージェント向けスキルです。ドメイン指定や結果数の調整に対応し、簡潔な調査や事実確認に利用できます。
主な機能
- 01最新のウェブ情報を検索
- 02検索結果を回答として要約
- 03ドメイン単位で結果を指定・除外
- 04`max_results` による結果数の調整
- 05API キーによる認証
活用シーン
- 01最近のニュースや動向の調査
- 02情報源を絞った事実確認
- 03調査資料の収集と傾向の要約
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill tavily-web-searchインストール後、Claude Code で/tavily-web-searchを入力して読み込まれたか確認します。
詳細
tavily-web-search
目的
このスキルを使うと、AI エージェントは AI ワークフロー向けに最適化されたサービスである Tavily を利用してウェブ検索を実行できます。検索結果から回答を生成し、ドメインフィルターを適用して検索の深さを調整することで、エージェントを情報過多にすることなく、関連性の高い簡潔な情報を提供します。
使用する場面
最新ニュースの取得、事実確認、調査情報の収集など、リアルタイムのウェブデータが必要な場合にこのスキルを使用します。ユーザーからの問い合わせに対する回答の生成、「.edu」サイトなど特定のドメインに検索結果を絞り込む場合や、迅速な回答のために検索の深さを制限する場合など、一般的な検索エンジンでは情報量が多すぎる場面で活用してください。内部データへのアクセスや、オフラインの情報源で十分な場合には使用しないでください。
主な機能
- 回答の生成:検索結果を自動的に要約し、一貫性のある回答を生成します。
search_depthパラメーターで指定します(例:浅い検索なら 0、深い検索なら 5)。 - ドメインのフィルタリング:「example.com」のようなドメインに検索を制限するには、
include_domainsフラグを使用します。例:include_domains=["wikipedia.org"]。 - 深さの調整:
max_results(1~10)で検索の深さを設定し、結果の量を調整します。値を大きくすると詳細が増えますが、コストも高くなります。 - AI 向けに最適化:API 経由で AI エージェントと連携し、「search」や「ai」などのタグをメタデータに埋め込めます。
- クエリの設定:カスタマイズ用のパラメーターをサポートしています。たとえば、
query文字列や認証用のapi_keyを指定できます。
使用パターン
環境変数 $TAVILY_API_KEY を使って API キーを設定し、必ず初期化してください。基本的な検索では、クエリオブジェクトを作成し、API エンドポイントを呼び出します。最初の結果をもとにクエリを改善するなど、反復処理にも利用できます。基本的な手順は、認証を設定し、フィルター付きのクエリを作成して検索を実行し、レスポンスを解析して回答を生成することです。エージェントのワークフローでは、複数ステップの処理にサブツールとして組み込み、呼び出しごとにエラーを確認してください。
一般的なコマンド/API
Tavily は REST API エンドポイント https://api.tavily.com/search を使用します。認証には、環境に $TAVILY_API_KEY を設定する必要があります。
CLI の curl コマンドの例:
curl -H "Content-Type: application/json" \
-H "X-Api-Key: $TAVILY_API_KEY" \
https://api.tavily.com/search -d '{"query": "latest AI news", "max_results": 3}'
API 呼び出しの Python コード例:
import requests
api_key = os.environ.get('TAVILY_API_KEY')
response = requests.post('https://api.tavily.com/search', headers={'X-Api-Key': api_key}, json={'query': 'climate change effects', 'include_domains': ['nytimes.com']})
results = response.json()['results']
一般的なフラグ/パラメーター:
query:文字列。必須です。例:「OpenAI updates」。max_results:整数(1~10)。結果の深さを調整します。例:バランスの取れた結果を得るには 5 を指定します。include_domains:文字列の配列。例:ニュースサイトを対象にする場合は ["bbc.com", "cnn.com"]。exclude_domains:配列。例:特定のサイトを避けるには ["socialmedia.com"]。
統合に関する注意
統合するには、まず Tavily のダッシュボードで API キーを取得し、$TAVILY_API_KEY として設定します。コードでは必要なライブラリ(Python の requests など)をインポートし、API レスポンスを JSON として処理します。OpenClaw エージェントの場合は、エージェント設定で ID「tavily-web-search」を参照して、このスキルをツールセットに追加します。例:tools: ["tavily-web-search"]。YAML の設定形式の例:
tools:
- id: tavily-web-search
config:
api_key_env: TAVILY_API_KEY
default_params:
max_results: 3
呼び出しの前に、エージェントがキーの有無を確認するようにしてください。キーがない場合は、ユーザーに入力を求めます。レスポンス形式を確認するため、サンドボックス環境で統合をテストしてください。
エラー処理
よくあるエラーには、API キーが無効な場合の 401(認証エラー)、429(レート制限超過)、400(パラメーターが無効な場合の不正なリクエスト)があります。エラーに対処するには、解析の前にレスポンスのステータスコードを確認します。401 の場合は「API key error: Set $TAVILY_API_KEY」をログに記録し、ユーザーから入力を受け取った後に再試行します。429 の場合は、指数バックオフを実装します(例:5 秒待ってから再試行)。事前に入力を検証し、たとえば query が空でないことを確認してください。コードでのエラーチェックの例:
if response.status_code == 401:
raise ValueError("Authentication failed; ensure $TAVILY_API_KEY is set")
elif response.status_code >= 400:
print(f"Error: {response.json().get('error')}")
具体的な使用例
- 事実確認:最近の出来事を確認するには、
include_domains=["reuters.com"]とmax_results=2を指定して、クエリを "2023 election results" に設定します。次に、結果を要約して重要な事実を抽出します。たとえば、コードでは次のようにします:synthesized_answer = summarize_results(results)。 - リサーチ支援:AI のトレンドを収集するには、
search_depth=3を指定して "advancements in LLMs" のようなクエリを作成します。結果を解析して日付や情報源で絞り込み、エージェントの応答で次のように使用します:「Tavily の検索によると、主なトレンドには……が含まれます」。
グラフの関係性
- 関連先:「search」タグなどを介した検索ツール
- 接続方法:コミュニティクラスター(ほかのコミュニティツールとノードを共有)
- リンク先:埋め込み用の「ai」タグを介した AI エージェント
- 依存関係:外部 API(Tavily)が必要です。設定しない限り、ほかのスキルとのグラフエッジは直接ありません。