Search with Exa's semantic API and real-time crawling. Includes live content extraction and relevance scoring.
Use this when you want to define the Exa search tool yourself with the Exa SDK and control how results are trimmed before reaching the model.
Similar patterns, and when each one is the better fit.

Search - Exa AI (robust)FreeUse this when you want Exa search split into separate tools for news, Reddit, Wikipedia, and URLs, so the model picks the right source.
@exalabs webSearch ToolUse this when you want Exa search in an agent without defining any tool yourself, by importing the ready-made webSearch tool from @exalabs/ai-sdk.
Web Search ToolUse this when you want OpenAI's built-in web_search_preview tool forced on every query so answers are grounded in live web results.
Search - Firecrawl (robust)FreeUse this when Firecrawl is your search provider and your chat agent needs to find pages by query rather than scrape URLs you already have.Requirements, wiring steps, and what this pattern adds to your project.
Pick how you want to pull this pattern in. Then wire env vars and routes the same way.
Download → Next.js app
Use Download → Next.js app in the preview toolbar. You get a zip scaffold (Pro downloads rewrite preview `/view/.../api/*` paths to `/api/*` automatically).
Extract the zip and install dependencies
Unzip the archive, then run `pnpm install` (or npm / yarn) in the project folder.
Fill .env.local
The download includes .env.local placeholders when needed. Add real values for: EXA_API_KEY.
Customize the agent and tool files
Adapt prompts, tools, and stop conditions in the generated project for your product.
Run the app and open the pattern route
Run `pnpm dev`, open the setup/checklist page if present, then navigate to the generated pattern route and verify responses.
EXA_API_KEYGet keyAI SDK APIs
streamTextstepCountIsconvertToModelMessagestoolExternal services
app/page.tsxapp/layout.tsxapp/api/websearch-exa/route.tscomponents/websearch-demo.tsxlib/websearch-exa-tool.tslib/request-utils.tsREADME.mdnpm packages
7
Registry components
lib/websearch-exa-tool.tsCustom Exa web search tool definition using exa-js SDK. Implements searchAndContents with livecrawl, result limiting, and content truncation.
websearch-exa/route.tsAPI route wiring the custom Exa web search tool with streamText. Shows stepCountIs(3) for tool call limiting and smooth stream transform.
Search with Exa's semantic API and real-time crawling. Includes live content extraction and relevance scoring.
Use this when you want to define the Exa search tool yourself with the Exa SDK and control how results are trimmed before reaching the model.
Similar patterns, and when each one is the better fit.

Search - Exa AI (robust)FreeUse this when you want Exa search split into separate tools for news, Reddit, Wikipedia, and URLs, so the model picks the right source.
@exalabs webSearch ToolUse this when you want Exa search in an agent without defining any tool yourself, by importing the ready-made webSearch tool from @exalabs/ai-sdk.
Web Search ToolUse this when you want OpenAI's built-in web_search_preview tool forced on every query so answers are grounded in live web results.
Search - Firecrawl (robust)FreeUse this when Firecrawl is your search provider and your chat agent needs to find pages by query rather than scrape URLs you already have.Requirements, wiring steps, and what this pattern adds to your project.
Pick how you want to pull this pattern in. Then wire env vars and routes the same way.
Download → Next.js app
Use Download → Next.js app in the preview toolbar. You get a zip scaffold (Pro downloads rewrite preview `/view/.../api/*` paths to `/api/*` automatically).
Extract the zip and install dependencies
Unzip the archive, then run `pnpm install` (or npm / yarn) in the project folder.
Fill .env.local
The download includes .env.local placeholders when needed. Add real values for: EXA_API_KEY.
Customize the agent and tool files
Adapt prompts, tools, and stop conditions in the generated project for your product.
Run the app and open the pattern route
Run `pnpm dev`, open the setup/checklist page if present, then navigate to the generated pattern route and verify responses.
EXA_API_KEYGet keyAI SDK APIs
streamTextstepCountIsconvertToModelMessagestoolExternal services
app/page.tsxapp/layout.tsxapp/api/websearch-exa/route.tscomponents/websearch-demo.tsxlib/websearch-exa-tool.tslib/request-utils.tsREADME.mdnpm packages
7
Registry components
lib/websearch-exa-tool.tsCustom Exa web search tool definition using exa-js SDK. Implements searchAndContents with livecrawl, result limiting, and content truncation.
websearch-exa/route.tsAPI route wiring the custom Exa web search tool with streamText. Shows stepCountIs(3) for tool call limiting and smooth stream transform.
Loading preview…
Early-bird pricing — limited time


Open on desktop for the interactive preview.
Search with Exa's semantic API and real-time crawling. Includes live content extraction and relevance scoring.
Loading preview…
Early-bird pricing — limited time


Open on desktop for the interactive preview.
Search with Exa's semantic API and real-time crawling. Includes live content extraction and relevance scoring.