Tools
Exa search
Exa AI is a web_search provider with neural, keyword, and
hybrid search modes plus built-in content extraction (highlights, text,
summaries).
Install plugin
openclaw plugins install @openclaw/exa-pluginopenclaw gateway restartGet 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 webConfig
{ 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. See
Env vars.
Base URL override
Set plugins.entries.exa.config.webSearch.baseUrl to route Exa search
requests through a compatible proxy or alternate endpoint. OpenClaw
normalizes bare hosts by prepending https:// and appends /search unless
the path already ends there. The resolved endpoint is part of the search
cache key, so results from different endpoints are never shared.
Tool parameters
querystringrequiredSearch query.
countnumberdefault: 5Results to return (1-100, subject to Exa search-type limits).
type'auto' | 'neural' | 'fast' | 'deep' | 'deep-reasoning' | 'instant'Search mode.
freshness'day' | 'week' | 'month' | 'year'Time filter. Cannot be combined with date_after/date_before.
date_afterstringResults after this date (YYYY-MM-DD).
date_beforestringResults before this date (YYYY-MM-DD).
contentsobjectContent extraction options (see below).
Content extraction
Pass a contents object to control extracted content in results:
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 |
If contents is omitted, Exa defaults to { highlights: true } so results
include key-sentence excerpts. Result descriptions resolve from highlights
first, then summary, then full text -- whichever is available first. Results
also preserve the raw highlightScores and summary fields from the Exa API
response when available.
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
countaccepts up to 100, subject to Exa search-type limits.- Results are cached for 15 minutes by default. Configure the shared
tools.web.search.cacheTtlMinutes(minutes) andtools.web.search.timeoutSeconds(default 30s) to change caching and request timeout for allweb_searchproviders, including Exa.
Related
- Web Search overview -- all providers and auto-detection
- Brave Search -- structured results with country/language filters
- Perplexity Search -- structured results with domain filtering