mcpField
E
exa-rag

exa-rag

github.com/ejirocodes開発6235 回インストール18 週間前に更新
リポジトリ

exa-rag について

exa-ragは、Exaを使ったウェブ検索や質問応答アプリを構築する開発者向けのリファレンススキルです。LangChain、LlamaIndex、Vercel AI SDK、OpenAI互換エンドポイント、MCPとの連携方法を扱います。

主な機能

  1. 01LangChainリトリーバー連携
  2. 02LlamaIndexデータソース連携
  3. 03Vercel AI SDK検索ツール
  4. 04OpenAI互換エンドポイント
  5. 05RAG検索結果の絞り込み指針

活用シーン

  1. 01LangChainのRAGチェーンにウェブ検索を追加
  2. 02LlamaIndexの文書Q&AでExaを利用
  3. 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.md
llamaindex.md
mcp-tools.md
vercel-ai.md

詳細

Exa RAG 統合

クイックリファレンス

トピック使用する場面リファレンス
LangChainLangChain で RAG チェーンを構築するlangchain.md
LlamaIndexExa を LlamaIndex のデータソースとして使用するllamaindex.md
Vercel AI SDKNext.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&AExaReader、クエリエンジン
Vercel AI SDKNext.js アプリ、ストリーミングツール定義、エッジ対応
OpenAI Compat置き換えてすぐに使用コードの変更を最小限に抑える
Claude MCPClaude Desktop、Claude Codeネイティブなツール呼び出し

よくある間違い

  1. RAG でハイライトを使用しない - 全文はコンテキストを浪費します。関連する抜粋には highlights=True を使用してください
  2. ソースの出典を示さない - 根拠のある応答にするため、引用には必ず result.url を含めてください
  3. 要約を無視する - summary=True を指定すると、ページ全体を取得する負荷を抑えながら簡潔なコンテキストを得られます
  4. 結果を取得しすぎる - まずは 3~5 件から始めてください。件数を増やしても、RAG の品質が必ずしも向上するわけではありません
  5. ドメインをフィルタリングしない - 信頼できるソースに絞るには include_domains を使用してください
  6. 日付フィルターを省略する - 最新の出来事を扱う場合は、古い情報を避けるため start_published_date を必ず追加してください
  7. 非同期パターンを忘れる - 本番環境では、スループットを向上させるために非同期リトリーバーを使用してください

コメント