Skip to content

Search

v2.1.0

The Search LOP provides a unified interface for performing web searches across multiple AI-optimized backends. It handles intelligent provider selection based on search type, cost optimization, and automatic fallback. All results are stored in a RAG-compatible table format, making them ready for downstream indexing or agent consumption.

🔧 GetTool Enabled 1 tool

This operator exposes 1 tool that allow Agent and Gemini Live LOPs to perform web searches across multiple providers, with configurable search types including general web, deep research, academic, news, images, videos, maps, and website scraping.

When connected to an Agent LOP, the search tool allows the agent to query the web for any topic. The operator exposes a single unified tool — the agent never sees or selects individual providers. Provider routing is always controlled by your parameter settings.

On the Agent page, you can configure how agent tool calls behave:

  • Agent Calls Add to Table — when enabled, agent-initiated searches also populate the output tables, not just return data to the agent.
  • Agent Execution Mode — choose between “Wait for Completion” (agent blocks until results arrive) or “Background Processing” (agent gets an immediate acknowledgment while the search runs asynchronously).
  • Agent Return Content — controls how much data goes back to the agent: “Status Only”, “Summary Only” (titles and URLs), “Truncated Content” (first N characters per result), or “Full Content”.
  • Expose Search Type to LLM and Expose Max Results to LLM — let the agent choose the search type or result count, rather than using your current parameter values.
  • API Keys: At least one search provider API key is required. Obtain keys for any combination of Tavily, Firecrawl, Brave, Exa, or Serper. Select a provider on the Search page, then paste your key into the API Key field. Pulse Get API Keys to open the selected provider’s sign-up page in your browser.
ProviderBest ForContent DepthFree Tier
TavilyWeb, research, academic, newsFull content (500-5000+ chars)1,000 searches
FirecrawlWeb search, website scrapingFull markdown extraction1,000 searches
BraveWeb, newsSnippets (100-300 chars)2,000 searches/month
ExaWeb, research, academic (semantic/neural)Full content with highlights$10 in credits
SerperWeb, news, images, videos, maps, academicSnippets and basic info2,500 searches

When Search Provider is set to “Auto (Cheapest)”, the operator picks the cheapest available provider that supports your selected search type.

The Search Type menu controls what kind of results you get:

  • General web search — standard web results from any provider
  • Deep research with citations — in-depth results via Tavily or Exa
  • Academic and scholarly content — scholarly papers via Tavily, Exa, or Serper
  • Recent news and current events — news-focused results via Tavily, Brave, or Serper
  • Image search results — image results via Serper
  • Video content search — video results via Serper
  • Local business and location search — map/business data via Serper
  • Website content extraction — full page scraping via Firecrawl

Not all providers support all search types. The Expected Results read-only field on the Search page shows you what to expect for your current provider and search type combination.

None. Queries are configured via parameters on the Search page.

The single output carries one of the following internal DAT tables:

  • results_table — cumulative log of all search results in RAG-indexer compatible format (doc_id, filename, content, metadata, source_path, timestamp).
  • last_result_table — only the most recent search results, same RAG-compatible columns. Toggle out1 Last Result Only on the Search page to switch the output between cumulative and last-result-only.
  • query_table — logs each query attempt with its ID, status, provider, and timestamp.

The RAG-compatible format means you can wire the output directly into a RAG Index LOP for embedding and retrieval.

  1. On the Search page, type your query into Search Query.
  2. Choose a Search Type (defaults to “General web search”).
  3. Select a Search Provider or leave it on “Auto (Cheapest)”.
  4. Adjust Max Results if needed (default is 5, range 1-50).
  5. Pulse Search.
  6. Results appear in the output table. Check Estimated Cost and Last Search Content for cost and content stats.
  1. Place a Search LOP and a RAG Index LOP in your network.
  2. Enable out1 Last Result Only on the Search LOP so only the latest results flow downstream.
  3. Wire the Search LOP output into the RAG Index LOP input.
  4. Each time you pulse Search, the results are automatically available for embedding and retrieval.
  1. Create an Agent LOP and a Search LOP.
  2. Wire the Search LOP into the Agent’s tool input.
  3. On the Search LOP’s Agent page, set Agent Return Content to “Full Content” so the agent receives complete search results.
  4. Enable Expose Search Type to LLM if you want the agent to pick the most appropriate search type for each query.
  5. Ask the agent a research question — it will call the search tool automatically and incorporate the results into its response.

Background Search for Fast Agent Responses

Section titled “Background Search for Fast Agent Responses”
  1. On the Agent page, set Agent Execution Mode to “Background Processing”.
  2. Enable Agent Calls Add to Table so results still populate the output table.
  3. When the agent calls the search tool, it receives an immediate acknowledgment and continues its response without waiting. Results arrive in the output table asynchronously.

On the Advanced page:

  • Include Raw Content — includes full page content in results. Increases cost but provides richer data for RAG indexing.
  • Include AI Answer — some providers (Tavily) can generate an AI summary alongside results.
  • Enable Provider Fallback — if your selected provider fails, automatically tries another available provider.
  • Exa Search Type — when using Exa, choose between “Auto (Best)”, “Neural (Semantic)”, or “Keyword (Exact)” search algorithms.
  • Brave Locale — set the locale for Brave Search results (e.g., “us-en”, “de-de”).
  • “No search providers available” — No API keys are configured. Select a provider on the Search page, paste your key into API Key, and it will be stored automatically.
  • “Not supported by this provider” — The current search type is not available with your selected provider. Switch to “Auto” or choose a provider that supports your desired search type (check the provider table above).
  • Snippets only / low content — Providers like Brave and Serper return short snippets by default. For full content, use Tavily, Firecrawl, or Exa, and enable Include Raw Content on the Advanced page.
  • Search already in progress — The operator prevents concurrent searches. Wait for the current search to complete before starting another.
Status (Status) op('search').par.Status Str

Current operation status

Default:
"" (Empty String)
Active (Active) op('search').par.Active Toggle
Default:
False
Search (Search) op('search').par.Search Pulse

Execute search with current settings

Default:
False
Search Query (Query) op('search').par.Query Str

Enter your search query

Default:
"" (Empty String)
Search Type (Searchtype) op('search').par.Searchtype Menu

Type of search to perform

Default:
web
Options:
web, research, academic, news, images, videos, maps, scraping
Max Results (Maxresults) op('search').par.Maxresults Int

Maximum number of results to return

Default:
0
Range:
1 to 50
Slider Range:
1 to 50
Search Provider (Searchprovider) op('search').par.Searchprovider Menu

Select search provider or use auto for intelligent routing

Default:
auto
Options:
auto, tavily, firecrawl, brave, exa, serper
Estimated Cost (Costestimate) op('search').par.Costestimate Str

Estimated cost for current search configuration

Default:
"" (Empty String)
Expected Results (Expectedresults) op('search').par.Expectedresults Str

What type of results to expect from this search type

Default:
"" (Empty String)
Last Search Content (Lastsearchcontent) op('search').par.Lastsearchcontent Str

Character count and content info from the last search

Default:
"" (Empty String)
out1 Last Result Only (Lastresult) op('search').par.Lastresult Toggle
Default:
False
API Key (Apikey) op('search').par.Apikey Str

API key for selected provider

Default:
"" (Empty String)
Get API Keys (Getapikeys) op('search').par.Getapikeys Pulse

Open provider websites to obtain API keys

Default:
False
Clear Results (Clearresults) op('search').par.Clearresults Pulse

Clear all search results and reset tables

Default:
False
Agent Calls Add to Table (Agenttotable) op('search').par.Agenttotable Toggle

When enabled, agent tool calls will add search results to the output table in addition to returning them to the agent

Default:
False
Agent Execution Mode (Agentexecutionmode) op('search').par.Agentexecutionmode Menu

Controls how agent tool calls are executed. "Wait for Completion" blocks until search finishes and returns results. "Background Processing" starts the search and immediately returns success status without waiting.

Default:
wait
Options:
wait, background
Agent Return Content (Agentreturncontent) op('search').par.Agentreturncontent Menu

Controls what content is returned to the agent. "Status Only" returns just success/failure. "Summary Only" returns result count and URLs. "Truncated Content" returns first 2000 chars per result. "Full Content" returns complete search results.

Default:
none
Options:
none, summary, truncated, full
Agent Truncated Length (Agenttruncatedlength) op('search').par.Agenttruncatedlength Int

The number of characters to return for truncated content

Default:
0
Range:
0 to 1
Slider Range:
100 to 100000
Expose Search Type to LLM (Exposesearchtype) op('search').par.Exposesearchtype Toggle

Allow LLM to choose search type, otherwise uses current parameter

Default:
False
Expose Max Results to LLM (Exposemaxresults) op('search').par.Exposemaxresults Toggle

Allow LLM to specify number of results

Default:
False
Tool Name (Toolname) op('search').par.Toolname Str
Default:
"" (Empty String)
Include Raw Content (Includerawcontent) op('search').par.Includerawcontent Toggle

Include full page content in results (increases cost)

Default:
False
Include AI Answer (Includeanswer) op('search').par.Includeanswer Toggle

Generate AI summary answer (may increase cost)

Default:
False
Enable Provider Fallback (Enablefallback) op('search').par.Enablefallback Toggle

Automatically try other providers if primary fails

Default:
False
Exa Search Type (Exasearchtype) op('search').par.Exasearchtype Menu

Exa search algorithm selection

Default:
auto
Options:
auto, neural, keyword
Brave Locale (Bravelocale) op('search').par.Bravelocale Str

Brave Search locale (e.g., us-en, uk-en, de-de)

Default:
"" (Empty String)
v2.1.02025-09-01

clean menu and more transparency for what modes work with what modes / providers ,et c

v2.0.02025-08-17

Major Rewrite: Unified multi-provider search architecture replacing Serper-only implementation

# KEPT THE OLD SERPER TOOL FOR LEGACY SUPPORT - called serper_search

New Features

  • Multi-Provider Support: Added Tavily, Firecrawl, Brave Search, Exa AI alongside legacy Serper support
  • Intelligent Provider Routing: Auto-selects optimal provider based on search type and cost
  • Artist-Focused Design: Real-time cost estimates, budget protection, and transparent pricing
  • Enhanced Search Types: Expanded from basic web/images/videos to research, academic, news, maps, and content extraction
  • Fallback System: Automatic failover to alternative providers if primary fails
  • Clean Results Format: Standardized result extraction across all providers with structured output tables
  • Advanced Options: Configurable raw content inclusion, AI answer generation, and provider-specific settings
  • Tool Exposure Controls: Granular control over which parameters LLMs can modify vs. UI-controlled settings
  • Free Tier Maximization: Intelligent routing to maximize free tier usage across providers (Brave: 2000/month, Tavily: 1000/month)

Technical Improvements

  • Migrated from DotChatUtil to DotLOPUtils base class for better async handling
  • Added last_result_table for clean, structured result access
  • Enhanced error handling with detailed provider-specific logging
  • Improved cost tracking and estimation system- ...
v1.1.02025-06-30

added GetTool method to the operator so it can be used by the LOPs controllers

v1.0.12025-05-08

fixed the Selectresult parameter to auto increase to last search result.

v1.0.02024-11-10

Initial release