Tools

Exa search

OpenClaw supports Exa AI as a web_search provider. Exa offers neural, keyword, and hybrid search modes with built-in content extraction (highlights, text, summaries).

Get an API key

  • Create an account

    Sign up at exa.ai and generate an API key from your dashboard.

  • Store the key

    Set EXA_API_KEY in the Gateway environment, or configure via:

    openclaw configure --section web
    
  • Config

    {
      plugins: {
        entries: {
          exa: {
            config: {
              webSearch: {
                apiKey: "exa-...", // optional if EXA_API_KEY is set
                baseUrl: "https://api.exa.ai", // optional; OpenClaw appends /search
              },
            },
          },
        },
      },
      tools: {
        web: {
          search: {
            provider: "exa",
          },
        },
      },
    }
    

    Environment alternative: set EXA_API_KEY in the Gateway environment. For a gateway install, put it in ~/.openclaw/.env.

    Base URL override

    Set plugins.entries.exa.config.webSearch.baseUrl when Exa search requests should go through a compatible proxy or alternate Exa endpoint. OpenClaw normalizes bare hosts by prepending https:// and appends /search unless the path already ends there. The resolved endpoint is included in the search cache key, so results from different Exa endpoints are not shared.

    Tool parameters

    querystringrequired

    Search query.

    countnumber

    Results to return (1–100).

    type'auto' | 'neural' | 'fast' | 'deep' | 'deep-reasoning' | 'instant'

    Search mode.

    freshness'day' | 'week' | 'month' | 'year'

    Time filter.

    date_afterstring

    Results after this date (YYYY-MM-DD).

    date_beforestring

    Results before this date (YYYY-MM-DD).

    contentsobject

    Content extraction options (see below).

    Content extraction

    Exa can return extracted content alongside search results. Pass a contents object to enable:

    await web_search({
      query: "transformer architecture explained",
      type: "neural",
      contents: {
        text: true, // full page text
        highlights: { numSentences: 3 }, // key sentences
        summary: true, // AI summary
      },
    });
    
    Contents option Type Description
    text boolean | { maxCharacters } Extract full page text
    highlights boolean | { maxCharacters, query, numSentences, highlightsPerUrl } Extract key sentences
    summary boolean | { query } AI-generated summary

    Search modes

    Mode Description
    auto Exa picks the best mode (default)
    neural Semantic/meaning-based search
    fast Quick keyword search
    deep Thorough deep search
    deep-reasoning Deep search with reasoning
    instant Fastest results

    Notes

    • If no contents option is provided, Exa defaults to { highlights: true } so results include key sentence excerpts
    • Results preserve highlightScores and summary fields from the Exa API response when available
    • Result descriptions are resolved from highlights first, then summary, then full text — whichever is available
    • freshness and date_after/date_before cannot be combined — use one time-filter mode
    • Up to 100 results can be returned per query (subject to Exa search-type limits)
    • Results are cached for 15 minutes by default (configurable via cacheTtlMinutes)
    • Exa is an official API integration with structured JSON responses