mcpField
E
Exa Agent

Exa Agent

github.com/exa-labs生産性5.2k173 回インストール今日更新
リポジトリ

Exa Agent について

Exa Agent Researchは、Exa Agentを使った複数段階のウェブ調査、リスト作成、データ補完、網羅性確認のスキルです。構造化出力の定義、実行の継続、根拠の検証を案内します。

主な機能

  1. 01複数段階のウェブ調査
  2. 02リスト作成と発見
  3. 03データ補完
  4. 04構造化出力スキーマ
  5. 05実行の継続と検証

活用シーン

  1. 01企業や人物の発見
  2. 02既知のデータ行の補完
  3. 03過去の調査の継続や絞り込み

MCP 対応

このスキルはMCP経由でExa Agentを利用し、`agent_run`ツールで調査を開始・継続します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/exa-labs/exa-mcp-server --skill exa-agent

インストール後、Claude Code で/exa-agentを入力して読み込まれたか確認します。

詳細

Exa Agent Research

MCP 経由で Exa Agent を操作します。Exa Agent は、複数ステップにわたるウェブ調査、リスト作成、情報の補完、構造化出力、実行の継続、網羅性の検証を実行できるツールです。

必須ツール

  • agent_run

Exa Connect プロバイダー

実行時に Exa のウェブ検索とあわせてプレミアムパートナーデータが必要な場合は、agent_run に dataSources を渡してください。

現在セルフサービスで利用できるプロバイダーのみを使用してください。

  • fiber:B2B 企業、人材、求人、連絡先情報の補完
  • financial_datasets:米国の公開企業のティッカーに基づくニュース
  • similarweb:ウェブサイトのトラフィック推定、ランキング、競合の発見
  • baselayer:米国企業の確認、役員、登記、KYB
  • affiliate:商品カタログ検索、価格、ブランド、販売者リンク
  • particle:話者情報とタイムスタンプ付きのポッドキャスト文字起こし検索
  • jinko:運賃順に並べた旅行先の検索

ユーザーが自身の Exa アカウントでリクエスト制のプロバイダーがすでに有効になっていると明示しない限り、そのプロバイダーを提案しないでください。

判断フロー

作業を開始する前に、作業方法を選択してください。

  1. 既知の入力行があり、同じ形式の情報補完を大規模に繰り返す場合

    • Exa API を直接使用する決定的なスクリプトを作成します。
    • 同時実行数に上限を設け、指数バックオフ、チェックポイント、安定した出力ファイルを使用します。
    • 出力ファイルを読み込み、内容をまとめます。
    • 同一のツール呼び出しを何百回も手作業で繰り返し、コンテキストを浪費しないでください。
  2. 対象範囲が未確定の調査、リスト作成、人材・企業の発見、複数段階の調査、構造化調査、過去の作業に関するフォローアップの場合

    • Exa Agent を使用します。
    • 実行を作成する前に、目的と outputSchema を定義します。

実行を作成する前に

以下を必ず書き出してください。

  • 目的:実行によって何に答えるのか。
  • 対象範囲:どのようなエンティティが該当するのか。
  • セグメント:地域、業界、ペルソナ、日付、資産クラス、その他の区分。
  • 網羅性の目標:希望件数、最大件数、「十分」と判断する基準。
  • 出力フィールド:最終回答に必要な列。
  • エビデンス要件:URL、ソースタイトル、日付、信頼度。
  • 除外対象:過去の結果、または対象外のエンティティ。

ユーザーが「最近」「過去6か月」「IPO 後」など相対的な期間を指定した場合は、まず今日の日付を基準に正確な日付を計算してください。

スキーマのルール

リスト作成、情報補完、金融・企業調査、再現可能なワークフローには outputSchema を使用してください。

ルール:

  • 最上位にオブジェクトを使用します。
  • リストの行は、名前付きの配列フィールドに格納します。
  • 可能な場合は、配列に maxItems を追加します。
  • 結論だけでなく、ソース/エビデンスのフィールドも含めます。
  • 安定した識別子(企業名、ウェブサイト/ドメイン、人材の LinkedIn URL、ティッカー、CIK など)を含めます。
  • 判断が不確かな場合は、信頼度または根拠のフィールドを含めます。
  • 必須フィールドは、存在が不可欠なものに限定します。
  • 必要に応じて format: "uri"、format: "email"、または format: "phone" を使用します。

企業リストのスキーマ例:

{
  "type": "object",
  "properties": {
    "companies": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "object",
        "properties": {
          "company_name": { "type": "string" },
          "website": { "type": "string", "format": "uri" },
          "segment": { "type": "string" },
          "why_it_qualifies": { "type": "string" },
          "evidence_url": { "type": "string", "format": "uri" },
          "confidence": { "type": "string", "enum": ["low", "medium", "high"] }
        },
        "required": ["company_name", "website", "why_it_qualifies", "evidence_url"]
      }
    },
    "coverage_notes": { "type": "string" },
    "known_gaps": {
      "type": "array",
      "items": { "type": "string" }
    }
  },
  "required": ["companies", "coverage_notes"]
}

Exa Connect を使用する例:

{
  "tool": "agent_run",
  "arguments": {
    "query": "Find 10 fast-growing B2B SaaS companies and return estimated monthly website visits from Similarweb.",
    "dataSources": [
      { "provider": "similarweb" }
    ],
    "outputSchema": {
      "type": "object",
      "properties": {
        "companies": {
          "type": "array",
          "maxItems": 10,
          "items": {
            "type": "object",
            "properties": {
              "name": { "type": "string" },
              "domain": { "type": "string" },
              "monthlyVisits": {
                "type": "number",
                "description": "Estimated monthly visits from Similarweb"
              }
            },
            "required": ["name", "domain", "monthlyVisits"]
          }
        }
      },
      "required": ["companies"]
    }
  }
}

Exa Agent のワークフロー

  1. エージェントを実行する

    • agent_run を呼び出します。
    • ツールのデフォルトである low を使用するには、effort を省略します。ユーザーがより深い調査を求めている場合、またはタスク上明らかに必要な場合に限り、auto 以上の effort を選択します。
    • 構造化された作業では outputSchema を含めます。
    • 既知の行には input.data を使用します。
    • すでに返されたエンティティや対象外のエンティティには input.exclusion を使用します。
    • セルフサービス型 Exa Connect プロバイダーのいずれかが明らかに役立つ場合に限り、dataSources を追加します。
    • Agent がウェブ検索にフォールバックせずにプロバイダーを使用するよう、プロバイダー固有のデータをクエリとスキーマの両方で指定します。
    • 後続の継続処理で previousRunId を使用する可能性がある場合は、返された id を保存します。
    • 応答が status: "running" の場合は、outputReady が true になるまで runId を指定して agent_run を再度呼び出します。この継続処理は、1 回の MCP 呼び出しを超えて保持される実行で利用できます。
    • Zero Data Retention(ZDR)チームでは、新しい実行は常にストリーミングされ、出力を取得できるのはそのライブストリーム上のみです(runId による再開はできません)。MCP 呼び出しの時間枠は約 750 秒です。ZDR の実行が 1 回の呼び出しで完了しない場合は、effort を下げるか、タスクを分割して再試行します。ZDR では previousRunId を使用できません。
  2. 結果を読む

    • outputReady が true になるまで(またはステータスが failed/cancelled になるまで)待ちます。
    • output.structured と output.grounding の両方を読みます。
    • 実行が完了したからといって、結果が網羅的だと決めつけないでください。
  3. 網羅性を検証する

    • 行数を目標と照合します。
    • セグメントの網羅状況を確認します。
    • エンティティの重複を解消します。
    • 根拠の品質を調べます。
    • 不足箇所を特定します。
  4. 必要に応じて続行する

    • 追加調査や絞り込みには、previousRunId を指定して agent_run を使用します。
    • 以前の結果が再表示されないよう、input.exclusion を使用します。
    • 対象範囲が広すぎて 1 回の実行では対応できない場合は、大きな対象群を複数の実行に分割します。
  5. 最終回答

    • 実施した内容を述べます。
    • 構造化された結果を提示します。
    • 網羅状況と制限を示します。
    • 網羅性が明示的に範囲指定され、検証済みの場合を除き、「best-effort discovery」と記載します。

継続処理のパターン

次の場合は previousRunId を使用します。

  • リストを絞り込む場合
  • 欠落しているフィールドを埋める場合
  • 別のセグメントを追加で取得する場合
  • 以前の結果を検証する場合
  • 「これらに似たもの」をさらに求める場合

次の場合は previousRunId を使用しません。

  • 以前の実行が失敗した、またはまだ実行中の場合
  • 新しいタスクに関連性がない場合
  • 別のセグメントについて独立した網羅的な調査が必要な場合

独立したセグメントについては、個別に実行し、結果を自分で集約します。

網羅性と網羅状況の表現

次のすべてを満たさない限り、網羅的だと主張しないでください。

  • 対象範囲が限定され、明確に定義されている。
  • 検索・発見の戦略が主要なセグメントを網羅している。
  • 出力件数と不足箇所を確認している。
  • 重複を解消している。
  • 根拠を調べている。
  • 残っている不明点を開示している。

十分に検証できていない場合に推奨される表現:

  • 「best-effort discovery」
  • 「信頼度の高い初期対象群」
  • 「網羅的ではありません」
  • 「X の網羅状況は比較的良好ですが、Y は弱いようです」

次の表現は避けてください。

  • 「すべての企業」
  • 「完全なリスト」
  • 「網羅的」
  • 「決定的」

ただし、検証によって裏付けられている場合を除きます。

バッチスクリプトモード

同じ形式の Exa 呼び出しを多数並列で行う必要がある場合、特に既知の企業や人物を一括で補完する場合:

  1. MCP 呼び出しを手作業で多数発行する代わりに、スクリプトを作成します。
  2. スクリプトは次の要件を満たす必要があります。
    • ファイルから決定的な入力を読み込む
    • 同時実行数に上限を設ける
    • 429/5xx に対して指数バックオフを使用する
    • 部分的な進捗をチェックポイントとして保存する
    • 決定的な JSON/CSV/TSV 出力を書き込む
    • 行ごとの未加工 API エラーを保持する
  3. スクリプトを実行します。
  4. 出力ファイルを読み込みます。
  5. 出力をもとに結果をまとめます。

タスクの難所が、対象の発見、推論、複数段階にわたる調査、または次に何を検索するかの判断である場合は、バッチスクリプトモードではなく Exa Agent を使用します。

失敗への対処

実行を開始できない場合:

  • HTTP エラーを示し、スキーマ/認証/入力を修正します。
  • Exa Agent 形式の作業で、汎用的なウェブ検索に黙ってフォールバックしないでください。

実行が失敗した場合:

  • 返された最終ステータスを基に、失敗の理由を説明します。
  • 修正内容が明確な場合に限り、修正したフォローアップ実行/新しい実行を作成します。

実行の目的/スキーマが間違っている場合は、ストリーミング呼び出しを中止してください。サーバーは上流の実行をキャンセルしようとします。その後、修正した目的/スキーマで新しい実行を作成する必要があります。

出力が少ない場合:

  • previousRunId を使用して続行します。
  • 以前の結果を除外します。
  • 対象範囲を分割します。
  • スキーマのフィールドを絞り込むか、明確にします。

コメント