mcpField
E
exa-web-search

exa-web-search

github.com/alphaonedev生産性46 回インストール
リポジトリ

exa-web-search について

exa-web-searchは、AIエージェント向けのExa.aiセマンティック検索スキルで、調査、コンテンツ集約、ウェブデータ取得に使えます。クロール、コンテンツ抽出、ハイライト、日付フィルターを組み合わせています。

主な機能

  1. 01クエリの意図に沿ったセマンティック検索
  2. 02検索結果のページをクロール
  3. 03テキスト、画像、メタデータの抽出
  4. 04関連する語句やセクションのハイライト
  5. 05日付による絞り込みとページネーション

活用シーン

  1. 01新しい記事からトレンドを調査
  2. 02分析用のウェブコンテンツ抽出
  3. 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 アクセス用の認証サービス
  • 補完:結果の後処理に使うデータ抽出スキル
  • クラスタ:セマンティック分析用のコミュニティツール

コメント