exa-search について
Exa AI 検索 API を利用する人向けの検索スキルです。ウェブ検索、コンテンツ抽出、類似ページ検索、調査用スクリプトを備え、絞り込みや構造化結果を活用できます。
主な機能
- 01ニューラルウェブ検索
- 02URL のコンテンツ抽出と要約
- 03類似ページの検索
- 04引用付き AI リサーチ
- 05非同期の Pro リサーチと構造化出力
活用シーン
- 01ドメインや日付でウェブ検索結果を絞り込む
- 02選択したページの内容を長さ指定で抽出する
- 03研究論文と関連ページを探す
- 04引用付き調査や RAG 用コンテキストを作成する
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tdimino/ claude-code-minoan --skill exa-searchインストール後、Claude Code で/exa-searchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
codex-agent-guide.mdREADME.mdreferences/exa-scripts-reference.mdscripts/exa_contents.pyexa_research_async.pyexa_research.pyexa_search.pyexa_similar.pytest_exa.py詳細
Exa Search スキル
Exa AI 検索 API 用の 5 つの特化スクリプトです。ニューラル検索、コンテンツ抽出、類似ページの検索、引用付きの調査、非同期のプロ向け調査を行います。
前提条件: EXA_API_KEY 環境変数が必要です。キーは https://dashboard.exa.ai で取得できます。
トークン効率の高い検索
Anthropic の動的フィルタリングに着想を得ています。推論の前に必ずフィルタリングします。トークンを約 24% 節約し、精度を約 11% 向上させます。
原則:安価に検索 → フィルタリング → 必要なものだけ抽出 → 推論
推奨:
# Step 1: Search with --no-text (titles/URLs only — cheapest)
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" -n 20 --no-text
# Step 2: Evaluate titles, pick best 3-5 URLs
# Step 3: Extract only those URLs with bounded content
python3 ~/.claude/skills/exa-search/scripts/exa_contents.py URL1 URL2 --highlights --max-chars 3000
非推奨: 50 件の結果を全文検索してから、そのすべてについて推論すること。
まず API レベルのフィルターを使用する(無料のフィルタリング)
結果を確認する前に、API レベルで結果を絞り込みます。
--must-include "term"— 結果にこの文字列が含まれている必要があります--must-exclude "term"— 無関係な結果を除外します--domains site1.com site2.com— 信頼できる情報源に限定します--category "research paper"— 無関係なコンテンツタイプを除外します--after 2025-01-01/--before— 時間で絞り込みます
全文ではなく要約を使用する
生のコンテンツではなく要点が必要な場合:
# AI-distilled summaries — much smaller than full text
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" --summary "Key findings" -n 5
RAG ではコンテキストを制限する
# Capped context string — prevents unbounded token usage
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" --context --context-chars 5000
filter_web_results.py で後処理する
Exa の JSON 出力を Firecrawl のフィルタースクリプトに渡して、さらに絞り込みます。
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" --json | \
python3 ~/.claude/skills/firecrawl/scripts/filter_web_results.py \
--fields "title,url,text" --max-chars 3000
コスト階層 — タスクに合わせて選択
| 種類 | レイテンシ | 1,000 件あたりのコスト | 用途 |
|---|---|---|---|
--instant | <150ms | 最安 | リアルタイム検索、オートコンプリート |
--fast | ~500ms | 低 | 簡単な確認、検証 |
auto (default) | -- | 中 | 一般的な検索 |
--deep | 4-12s | $12 | 包括的な調査 |
--deep-reasoning | 12-50s | $15 | 最大限の深さと統合 |
構造化されたディープ検索(Exa Deep)
ディープ検索とディープ推論検索では、outputSchema による構造化 JSON 出力をサポートしています。API は、フィールドごとの根拠となる引用と信頼度スコアを含む解析済みコンテンツを output.content に返します。
| 簡単な例 | 用途 |
|---|---|
... --deep --text-output "Short answer" | 簡潔なテキスト回答 |
... --deep-reasoning --schema-preset company | 企業に関する構造化調査 |
... --deep --output-schema '{"type":"object","properties":{"answer":{"type":"string"}}}' | カスタムスキーマ |
... --deep --schema-file ~/schemas/analysis.json | ファイルからスキーマを読み込み |
プリセット:company、paper-survey、competitor-analysis、person、news-digest
出力にはフィールドレベルの根拠が含まれます。各フィールドに引用と、[H]高/[M]中/[L]低の信頼度が付与されます。
利用可能なスクリプト
1. exa_search.py — ニューラルウェブ検索
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" [options]
| 簡単な例 | 用途 |
|---|---|
... exa_search.py "AI frameworks" | 基本検索 |
... exa_search.py "transformers" --category "research paper" -n 20 | 学術論文 |
... exa_search.py "query" --deep --additional-queries "alt query" | ディープ検索 |
... exa_search.py "query" --domains docs.python.org | ドメインで絞り込み |
... exa_search.py "query" --after 2025-01-01 --category news | 最新ニュース |
... exa_search.py "query" --context --context-chars 10000 | RAG コンテキスト |
... exa_search.py "query" --instant -n 5 | 150ms 未満の検索 |
... exa_search.py "Top AI startups" --deep-reasoning --schema-preset company | 企業に関する構造化調査 |
... exa_search.py "Who is CEO of Stripe?" --deep --text-output "Short answer" | 簡単な事実確認 |
カテゴリ: company、research paper、news、pdf、github、personal site、people、financial report
2. exa_contents.py — URL コンテンツ抽出
python3 ~/.claude/skills/exa-search/scripts/exa_contents.py URL [URL2...] [options]
| 簡単な例 | 用途 |
|---|---|
... exa_contents.py "https://arxiv.org/abs/2307.06435" | 論文を抽出 |
... exa_contents.py URL --summary "Key methods" --highlights | 要約付きで抽出 |
... exa_contents.py URL --livecrawl always | 最新のコンテンツ |
... exa_contents.py URL --max-chars 5000 | 長さを制限して抽出 |
3. exa_similar.py — 類似ページを検索
python3 ~/.claude/skills/exa-search/scripts/exa_similar.py URL [options]
| すぐに使える例 | 目的 |
|---|---|
... exa_similar.py "https://stripe.com" --category company --exclude-source | 競合他社を検索 |
... exa_similar.py "https://arxiv.org/abs/..." -n 15 | 関連論文 |
... exa_similar.py URL --summary "How different?" | 比較の概要 |
4. exa_research.py — AI を活用した調査
python3 ~/.claude/skills/exa-search/scripts/exa_research.py "question" [options]
| すぐに使える例 | 目的 |
|---|---|
... exa_research.py "React vs Vue differences?" --sources | 引用付きの調査 |
... exa_research.py "query" --stream | リアルタイムストリーミング |
... exa_research.py "query" --domains docs.python.org | 信頼性の高い情報源 |
... exa_research.py "query" --markdown | 引用付きの Markdown |
... exa_research.py "query" --answer-only | パイプに適した出力 |
5. exa_research_async.py — 非同期の Pro 調査
python3 ~/.claude/skills/exa-search/scripts/exa_research_async.py "question" [options]
| すぐに使える例 | 目的 |
|---|---|
... exa_research_async.py "Compare AI frameworks" --pro --wait | Pro モデル |
... exa_research_async.py "Quick overview" --fast | 高速モデル |
... exa_research_async.py "query" --schema '{...}' | 構造化出力 |
... exa_research_async.py status r_abc123 | ジョブの確認 |
... exa_research_async.py list | ジョブの一覧表示 |
スクリプトの選択ガイド
| タスク | 最適なスクリプト |
|---|---|
| フィルター付きのウェブ検索 | exa_search.py |
| 研究論文 | exa_search.py --category "research paper" |
| 企業・スタートアップの情報 | exa_search.py --category company |
| GitHub リポジトリ・コード | exa_search.py --category github |
| URL がわかっているコンテンツの抽出 | exa_contents.py |
| 競合他社の検索 | exa_similar.py --exclude-source |
| 引用付きの簡単な回答 | exa_research.py --sources |
| 複雑な構造化調査 | exa_research_async.py --pro |
| リアルタイム検索 | exa_search.py --instant |
| RAG コンテキストの構築 | exa_search.py --context |
| 根拠に基づく構造化調査 | exa_search.py --deep-reasoning --schema-preset company |
| 事実に関する簡潔な回答 | exa_search.py --deep --text-output "Short answer" |
Exa と Firecrawl と Claude ネイティブツールの比較
| ニーズ | 最適なツール | 理由 |
|---|---|---|
| セマンティック検索・ニューラル検索 | Exa exa_search.py | AI による関連性判定 |
| 研究論文の検索 | Exa --category "research paper" | 学術インデックス |
| 簡単な調査回答 | Exa exa_research.py | 引用+統合 |
| 類似ページの検索 | Exa exa_similar.py | セマンティック類似性 |
| 単一ページ → Markdown | Firecrawl scrape --only-main-content | 最もクリーンな出力 |
| サイト全体のクロール | Firecrawl crawl --wait --progress | リンクをたどる |
| 自律的なデータ検索 | Firecrawl agent | URL 不要 |
| 検索+スクレイピングを一括実行 | Firecrawl search --scrape | 1 回の操作 |
| Claude API エージェントの構築 | ネイティブ web_search_20260209 | 組み込みの動的フィルタリング |
| Twitter/X のコンテンツ | jina URL | 動作する唯一のツール |
よくあるワークフロー
トピックの調査
python3 ~/.claude/skills/exa-search/scripts/exa_research.py "How does RAG work?" --sources --markdown
文献レビュー
# Find papers, then find similar to best hit
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "transformer optimization" --category "research paper" -n 20 --summary "Key contributions"
python3 ~/.claude/skills/exa-search/scripts/exa_similar.py "https://arxiv.org/abs/1706.03762" --category "research paper" -n 15
ドキュメントの調査
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "React useEffect cleanup" --domains react.dev developer.mozilla.org --context
RAG コンテキストの構築
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "Python async patterns" --context --context-chars 15000 --domains docs.python.org
リファレンスドキュメント
| ファイル | 内容 |
|---|---|
references/exa-scripts-reference.md | 5 つすべてのスクリプトの全パラメーター、コスト表、MCP の比較、テストスイート |
テストスイート
python3 ~/.claude/skills/exa-search/scripts/test_exa.py --quick # Quick validation
python3 ~/.claude/skills/exa-search/scripts/test_exa.py # Full suite
python3 ~/.claude/skills/exa-search/scripts/test_exa.py --endpoint search # Specific endpoint