返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

exa-rag

使用Exa.ai构建实时网页检索的RAG管道。在构建检索增强生成、将Exa与LangChain、LlamaIndex、Vercel AI SDK集成,或实现具有网页搜索能力的AI代理时使用。触发条件:RAG管道、检索增强生成、Exa LangChain、Exa LlamaIndex、ExaSearchRetriever、ExaSearchResults、Exa MCP、Exa工具调用、Claude工具使用、AI代理网页搜索、基于事实的生成、引用生成、事实核查、幻觉检测、OpenAI兼容性、聊天补全。

person作者: jakexiaohubgithub

Exa RAG Integration

Quick Reference

| Topic | When to Use | Reference | |-------|-------------|-----------| | LangChain | Building RAG chains with LangChain | langchain.md | | LlamaIndex | Using Exa as a LlamaIndex data source | llamaindex.md | | Vercel AI SDK | Adding web search to Next.js AI apps | vercel-ai.md | | MCP & Tools | Claude MCP server, OpenAI tools, function calling | mcp-tools.md |

Essential Patterns

LangChain Retriever

from langchain_exa import ExaSearchRetriever

retriever = ExaSearchRetriever(
    exa_api_key="your-key",
    k=5,
    highlights=True
)

docs = retriever.invoke("latest AI research papers")

LlamaIndex Reader

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 Tool

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-Compatible Endpoint

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?"}]
)

Integration Selection

| Framework | Best For | Key Feature | |-----------|----------|-------------| | LangChain | Complex chains, agents | ExaSearchRetriever, tool integration | | LlamaIndex | Document indexing, Q&A | ExaReader, query engines | | Vercel AI SDK | Next.js apps, streaming | Tool definitions, edge-ready | | OpenAI Compat | Drop-in replacement | Minimal code changes | | Claude MCP | Claude Desktop, Claude Code | Native tool calling |

Common Mistakes

  1. Not using highlights for RAG - Full text wastes context; use highlights=True for relevant snippets
  2. Missing source attribution - Always include result.url in citations for grounded responses
  3. Ignoring summaries - summary=True provides concise context without full page overhead
  4. Over-fetching results - Start with 3-5 results; more isn't always better for RAG quality
  5. Not filtering domains - Use include_domains to limit to authoritative sources
  6. Skipping date filters - For current events, always add start_published_date to avoid stale info
  7. Forgetting async patterns - Use async retrievers in production for better throughput