exa-web-search について
exa-web-searchは、AIエージェント向けのExa.aiセマンティック検索スキルで、調査、コンテンツ集約、ウェブデータ取得に使えます。クロール、コンテンツ抽出、ハイライト、日付フィルターを組み合わせています。
主な機能
- 01クエリの意図に沿ったセマンティック検索
- 02検索結果のページをクロール
- 03テキスト、画像、メタデータの抽出
- 04関連する語句やセクションのハイライト
- 05日付による絞り込みとページネーション
活用シーン
- 01新しい記事からトレンドを調査
- 02分析用のウェブコンテンツ抽出
- 03検索結果を集約して他のツールに渡す
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill exa-web-searchインストール後、Claude Code で/exa-web-searchを入力して読み込まれたか確認します。
詳細
exa-web-search
目的
このスキルは、Exa.ai のニューラルエンジンを使用したセマンティックなウェブ検索を可能にし、高度な検索クエリ、ウェブクロール、コンテンツ抽出、重要なセクションのハイライト、日付によるフィルタリングを実現します。リアルタイムまたは過去の情報の取得が必要なタスクで、AI エージェントがウェブデータを効率的に取得し、処理できるように設計されています。
使用するタイミング
キーワードの一致を超えたセマンティック検索が必要な場合に、このスキルを使用します。たとえば、最近の記事からトレンドを分析する場合、クロールしたページからデータを抽出する場合、関連するコンテンツをハイライトする場合などです。調査タスク、コンテンツの集約、ウェブデータを AI ワークフローに統合する場合、特にほかの検索ツールで文脈の微妙な違いを捉えられない場合に活用してください。
主な機能
- ニューラルネットワークを使用して検索クエリの意図を理解するセマンティック検索。
- 検索クエリに基づいてページを動的に取得するウェブクロール。
- ページからテキスト、画像、メタデータを取り出すコンテンツ抽出。
- 検索結果内の重要なフレーズやセクションのハイライト。
- 直近 7 日間など、特定の期間に結果を絞り込む日付フィルタリング。
- 拡張性の高い検索クエリに対応するページネーションと結果数の上限。
使用パターン
環境変数を使用して認証を行ってから、必ず初期化してください。CLI では、バッチ処理のためにループ内で検索を実行します。コードでは、ブロッキングを避けるために非同期 API 呼び出しを使用します。精度を高めるため、特定のフラグを指定して検索クエリを組み立て、レスポンスを解析してハイライトやメタデータを抽出します。まず小さな上限値でテストし、結果を確認してください。
主なコマンド/API
Exa.ai は CLI ツールと REST API を使用します。使用する前に、API キーを $EXA_API_KEY に設定してください。
CLI コマンド:
- 基本検索:
exa search --query "AI advancements" --limit 5 --date-after "2023-01-01"例:result = subprocess.run(['exa', 'search', '--query', 'climate change'], capture_output=True) print(result.stdout) - クロールと抽出を行う場合:
exa search --query "open source tools" --crawl-depth 2 --extract-content例:import subprocess output = subprocess.check_output(['exa', 'search', '--query', 'web frameworks', '--highlight'])
API エンドポイント:
- 主なエンドポイント:
POST https://api.exa.ai/v1/searchリクエストボディの形式(JSON):
例:{ "query": "machine learning", "limit": 10, "date_after": "2022-01-01", "crawl_depth": 1 }import requests headers = {'Authorization': f'Bearer {os.environ.get("EXA_API_KEY")}'} response = requests.post('https://api.exa.ai/v1/search', headers=headers, json={"query": "neural networks"}) data = response.json() - エラー確認用エンドポイント:
GET https://api.exa.ai/v1/statusを使用して、サービスが利用可能か確認します。
設定形式:
- 永続的な設定には
.exa-config.jsonファイルを使用します:
コード内で読み込みます:{ "default_limit": 20, "api_endpoint": "https://api.exa.ai/v1/search" }with open('.exa-config.json') as f: config = json.load(f)
統合に関する注意事項
環境内で $EXA_API_KEY を設定するか、ヘッダー経由で渡して統合します。AI エージェントでは、API 呼び出しを try-except ブロックで囲み、ノンブロッキング処理には aiohttp などの非同期ライブラリを使用します。結果をパイプで渡すなどして、ほかのスキルと組み合わせます。たとえば、検索結果を要約ツールに渡します。遅延を追加して、レート制限(例:100 リクエスト/分)を必ず守ってください。クラスタリングでは、関連スキルと連携するために「community」タグを参照します。
エラー処理
API レスポンスの HTTP ステータスコード(例:認証されていない場合は 401。response.status_code でアクセス)を確認してください。CLI では、stderr を解析して「Query exceeded limits」などのメッセージを確認します。よくあるエラーには、無効な検索クエリ(入力文字列を検証して修正)やネットワークの問題(指数バックオフで再試行)があります。コードでは、次のようにします:
if response.status_code != 200:
raise Exception(f"API error: {response.json().get('error')}")
エラーコードなどの詳細を記録し、一時的な障害については最大 3 回まで再試行してください。
グラフ上の関係
- 関連:検索スキル(例:一般的なウェブ検索ツール)
- 依存:API アクセス用の認証サービス
- 補完:結果の後処理に使うデータ抽出スキル
- クラスタ:セマンティック分析用のコミュニティツール