exa-search について
exa-searchは、ウェブ検索や指定URLの内容取得を行うリサーチ向けスキルです。Exa検索とURL抽出を組み合わせ、学術情報を優先するための指針も含みます。
主な機能
- 01Exaウェブ検索
- 02URLからのコンテンツ抽出
- 03学術情報検索の指針
- 04Python SDKのCLIスクリプト
活用シーン
- 01最新トピックのウェブ調査
- 02技術的な質問の学術資料検索
- 03ウェブページやPDFの内容抽出
- 04複数URLの一括取得
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ k-dense-ai/ scientific-agent-skills --skill exa-searchインストール後、Claude Code で/exa-searchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/web-extract.mdweb-search.mdscripts/exa_extract.pyexa_search.py詳細
Exa Web Toolkit
Exa を基盤とした、Web を活用するリサーチタスク向けのスキルです。Web 検索と URL 抽出を提供します。Exa のインデックスは高品質なキーワード検索とセマンティック検索を組み合わせているため、科学的、技術的、概念的なクエリに適しています。
ルーティング — 適切な機能を選択する
ユーザーのリクエストを読み、以下の中から該当する機能に振り分けてください。コマンドを実行する前に、対応するリファレンスファイルを読んで詳細な手順を確認してください。
| ユーザーの目的... | 機能 | 場所 |
|---|---|---|
| 何かを調べる、トピックをリサーチする、最新情報を見つける | Web 検索 | references/web-search.md |
| 特定の URL (Web ページ、記事、PDF) からコンテンツを取得する | Web 抽出 | references/web-extract.md |
| インストールまたは認証 | セットアップ | 以下 |
判断ガイド
- トピックの調査、リサーチ上の疑問、「X とは何か?」といったクエリには、デフォルトで Web 検索を使用します。 トピックが科学的または技術的な場合は、
--category publicationを渡して学術的な情報源に寄せ、さらに学術系の--include-domains許可リストを併用します。2 パス方式の学術戦略についてはreferences/web-search.mdを参照してください。 - ユーザーが URL を提示した場合、または特定のページを読む/取得するよう求めた場合は、Web 抽出を使用します。 バッチ抽出 (1 回の呼び出しで複数の URL) や学術系 PDF では、組み込みの WebFetch よりもこちらを優先してください。
学術的情報源の優先順位
技術的または科学的なクエリでは、学術的・科学的な情報源を優先してください:
- ブログ記事やニュースよりも、査読付き学術論文や会議録
- 査読付き版が入手できない場合は、プレプリント (arXiv、bioRxiv、medRxiv)
- 商用サイトよりも、研究機関や政府の情報源 (NIH、WHO、NASA、NIST)
- 二次的な要約よりも、一次研究
Exa を学術的なコンテンツに誘導するための 2 つの手段:
--category publicationは検索結果を学術的な情報源に寄せます。--include-domainsに学術系の許可リスト (arxiv.org、nature.com、pubmed.ncbi.nlm.nih.gov など) を指定すると、対象ドメインの範囲を制限します。
両方を組み合わせて情報源の範囲を絞り込み、各情報源について出版物の種類と査読の有無を確認してください。完全なパターンについては references/web-search.md を参照してください。
学術的情報源を引用する場合は、標準の引用形式に加えて、入手可能な場合は著者名と発表年を含めてください (例: Smith et al., 2025)。DOI がある場合は、DOI リンクを優先してください。
セットアップ
このスキルは exa-py Python SDK を使用します。scripts/ 内のスクリプトは PEP 723 のインラインメタデータで依存関係を宣言しているため、別途インストール手順を踏まずに uv run で直接実行できます:
uv run "$SKILL_PATH/scripts/exa_search.py" --help
永続的にインストールしたい場合:
uv pip install "exa-py>=2.23.0,<3"
認証
すべてのコマンドは EXA_API_KEY 環境変数から API キーを読み取ります。Exa API キーは dashboard.exa.ai/api-keys で取得してください。
まず、プロジェクトルートに .env ファイルが存在し、EXA_API_KEY が含まれているかどうかを確認してください。含まれている場合は、それを読み込みます:
dotenv -f .env run -- uv run "$SKILL_PATH/scripts/exa_search.py" "your query"
dotenv が利用できない場合は、インストールしてください: uv pip install 'python-dotenv[cli]'。
.env がない場合は、そのセッション用にキーをエクスポートします:
export EXA_API_KEY="your-key"
インストールと CLI のパースを確認するには --help を使用してください。これには API キーは不要で、認証も検証されません。認証は実際のクエリが実行されるときにのみ確認されます。
抽出の制限と鮮度
抽出ツールは POST https://api.exa.ai/contents の 1 回の呼び出しにつき 1〜100 個の URL を受け付け、
各 SDK ステータス (id、status、source) を出力します。それより多いバッチは拒否されます。
--max-age-hours 0 で最新のコンテンツを要求し、-1 でキャッシュのみ、または 720 時間までの正の値を指定できます。省略した場合は Exa のキャッシュ/フォールバックポリシーが適用されます。
published_date は推定された公開メタデータであり、取得時刻ではありません。
検証済みの SDK は URL ごとのエラー詳細を破棄するため、原因を推測せずに失敗を報告してください。URL 抽出を参照してください。
検証済みの API および SDK のスコープ
2026-09-30 に Search API、
Contents API、および
Exa changelog を確認しました。どちらのルートも
JSON POST リクエストと x-api-key 認証を使用します(SDK がこのヘッダーを設定します)。
検索は POST https://api.exa.ai/search です。その SDK の kwargs は snake_case を使用し、
camelCase にシリアライズされます。現在の学術カテゴリは publication です。
research paper はこのラッパーにおける互換性エイリアスです。これらのエンドポイントには
offset またはカーソルページネーションはドキュメント化されていません。
ヘルパーは exa-py==2.23.0 でテストされており、実際の SDK を介したモック HTTP トランスポートも
含まれます。検索のコンテンツフラグは明示的です。フラグがない場合はメタデータのみを意味し、
--highlights はテキストを暗黙的に取得しません。以下およびリファレンスにある認証済みの
検索/抽出の例は例示用です。このレビュー中に有料のライブ呼び出しは行われていません。
トラッキングヘッダー
このスキル内のすべてのスクリプトは、x-exa-integration リクエストヘッダーを
k-dense-ai--scientific-agent-skills に設定するため、Exa は K-Dense AI の
scientific-agent-skills リポジトリからの使用をこのインテグレーションに帰属させることができます。
スクリプトを改変する際は、このヘッダーを削除したり名前を変更したりしないでください。
このスキル内のファイル
SKILL.md— このファイル(ルーティングとセットアップ)references/web-search.md— 学術戦略を含む詳細な Web 検索リファレンスreferences/web-extract.md— URL コンテンツ抽出リファレンスscripts/exa_search.py—client.searchの CLI ラッパーscripts/exa_extract.py—client.get_contentsの CLI ラッパー