exa-rag について
exa-ragは、Exaを使ったウェブ検索や質問応答アプリを構築する開発者向けのリファレンススキルです。LangChain、LlamaIndex、Vercel AI SDK、OpenAI互換エンドポイント、MCPとの連携方法を扱います。
主な機能
- 01LangChainリトリーバー連携
- 02LlamaIndexデータソース連携
- 03Vercel AI SDK検索ツール
- 04OpenAI互換エンドポイント
- 05RAG検索結果の絞り込み指針
活用シーン
- 01LangChainのRAGチェーンにウェブ検索を追加
- 02LlamaIndexの文書Q&AでExaを利用
- 03Next.js AIアプリに検索ツールを設定
MCP 対応
Claude MCPやツール呼び出しでExaを利用する連携方法を説明します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ejirocodes/ agent-skills --skill exa-ragインストール後、Claude Code で/exa-ragを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/langchain.mdllamaindex.mdmcp-tools.mdvercel-ai.md詳細
Exa RAG 統合
クイックリファレンス
| トピック | 使用する場面 | リファレンス |
|---|---|---|
| LangChain | LangChain で RAG チェーンを構築する | langchain.md |
| LlamaIndex | Exa を LlamaIndex のデータソースとして使用する | llamaindex.md |
| Vercel AI SDK | Next.js の AI アプリにウェブ検索を追加する | vercel-ai.md |
| MCP & ツール | Claude MCP サーバー、OpenAI ツール、関数呼び出し | mcp-tools.md |
基本パターン
LangChain リトリーバー
from langchain_exa import ExaSearchRetriever
retriever = ExaSearchRetriever(
exa_api_key="your-key",
k=5,
highlights=True
)
docs = retriever.invoke("latest AI research papers")
LlamaIndex リーダー
from llama_index.readers.web import ExaReader
reader = ExaReader(api_key="your-key")
documents = reader.load_data(
query="machine learning best practices",
num_results=10
)
Vercel AI SDK ツール
import { exa } from "@agentic/exa";
import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";
const result = await generateText({
model: openai("gpt-4"),
tools: { search: exa.searchAndContents },
prompt: "Search for the latest TypeScript features",
});
OpenAI 互換エンドポイント
from openai import OpenAI
client = OpenAI(
base_url="https://api.exa.ai/v1",
api_key="your-exa-key"
)
response = client.chat.completions.create(
model="exa",
messages=[{"role": "user", "content": "What are the latest AI trends?"}]
)
統合方法の選択
| フレームワーク | 最適な用途 | 主な機能 |
|---|---|---|
| LangChain | 複雑なチェーン、エージェント | ExaSearchRetriever、ツール統合 |
| LlamaIndex | ドキュメントのインデックス作成、Q&A | ExaReader、クエリエンジン |
| Vercel AI SDK | Next.js アプリ、ストリーミング | ツール定義、エッジ対応 |
| OpenAI Compat | 置き換えてすぐに使用 | コードの変更を最小限に抑える |
| Claude MCP | Claude Desktop、Claude Code | ネイティブなツール呼び出し |
よくある間違い
- RAG でハイライトを使用しない - 全文はコンテキストを浪費します。関連する抜粋には
highlights=Trueを使用してください - ソースの出典を示さない - 根拠のある応答にするため、引用には必ず
result.urlを含めてください - 要約を無視する -
summary=Trueを指定すると、ページ全体を取得する負荷を抑えながら簡潔なコンテキストを得られます - 結果を取得しすぎる - まずは 3~5 件から始めてください。件数を増やしても、RAG の品質が必ずしも向上するわけではありません
- ドメインをフィルタリングしない - 信頼できるソースに絞るには
include_domainsを使用してください - 日付フィルターを省略する - 最新の出来事を扱う場合は、古い情報を避けるため
start_published_dateを必ず追加してください - 非同期パターンを忘れる - 本番環境では、スループットを向上させるために非同期リトリーバーを使用してください
コメント
Markdown 対応