Documents

Search Auto-Routing Plan

Try it

Plan which search provider to use before multi-provider skills run — score query signals, pick Serper/Tavily/Exa/Brave/Firecrawl, define fallback chain, and...

What it does

Plan which search provider to use before multi-provider skills run — score query signals, pick Serper/Tavily/Exa/Brave/Firecrawl, define fallback chain, and document why.

The skill document

Search Auto-Routing Plan

Purpose

Produce a search routing plan before invoking multi-provider skills (web-search-plus, custom routers, or chained search tools). Routers execute automatically but rarely explain why a provider was chosen — this skill makes routing explicit, auditable, and tunable.

This skill does not call search APIs, store API keys, or fetch live results.

When to use

Use when the user mentions:

  • Auto-routing across Serper, Tavily, Exa, Brave, Firecrawl, Perplexity, etc.
  • Which search provider fits a query
  • Web Search Plus or unified search skills
  • Reducing search cost or improving result quality via smarter routing
  • Fallback chains when the first provider returns thin results

Not for: routing LLM prompts between local/cloud models (see task-complexity skills).

Safety and boundaries

Do not request or echo API keys for any search provider.

Do not claim live search results — planning only.

Do not recommend circumventing robots.txt, paywalls, or provider ToS.

Privacy: If the query contains PII, recommend providers/modes that minimize logging and note user consent.

Required inputs

  1. Search goal — what answer or artifact is needed.
  2. Query or task description — the actual text to search for (or “generate from goal”).
  3. Constraints — freshness, geography, max latency, budget sensitivity, offline/air-gapped.
  4. Available providers (optional) — which keys/skills the user actually has; default to common stack: Serper, Tavily, Exa, Brave, Firecrawl.
  5. Output need — snippets, full page text, structured JSON, citations only.

Signal scoring

Score each dimension 0–2 (0=low, 1=medium, 2=high):

Signal012
Specificityvague explorationnamed topicexact entity/error/ID
Freshnessevergreenweekshours/breaking
Depthquick factmulti-sourcedeep research
Structureprose pagesmixeddocs/repos/PDFs
Privacypublic OKsemi-sensitivePII/regulated

Provider fit (default rubric)

ProviderBest whenWeak when
Serper (Google)exact matches, site: queries, local/businessfuzzy conceptual discovery
Tavilyresearch synthesis, Q&A style answerssingle known URL lookup
Exaneural/semantic discovery, similar pages, companies/papersliteral error strings
Braveprivacy-weighted general web, independent indexdeep academic corpora
Firecrawlknown URL → clean markdown extractopen-ended discovery

Tie-breakers: cost ↑ with depth; latency ↑ with crawl/extract.

Workflow

  1. Restate goal and score the five signals.
  2. Rank providers 1–3 with short rationale.
  3. Output plan (format below) including fallback chain (if #1 thin → try #2).
  4. Suggest query tweaks per primary provider (keyword vs neural phrasing).

Output format

Search routing plan — {short goal}

SignalScore (0–2)
Specificity
Freshness
Depth
Structure
Privacy

Primary route

FieldValue
ProviderSerper / Tavily / Exa / Brave / Firecrawl
Modekeyword / neural / extract / answer
Why1–2 sentences tied to signal scores
Query for providerprovider-optimized phrasing

Fallback chain

  1. If <condition> then <provider + query adjustment>

Executor hints

Optional YAML for downstream skills:

primary: serper|tavily|exa|brave|firecrawl
fallback: []
maxResults: 5-10
extractContent: true|false
freshness: null|ISO range

Post-route quality checks

  • Top results match entity type and freshness
  • Snippets are answer-bearing (not directory pages)
  • Cost/latency within stated constraints
  • Fallback triggered if <3 usable sources

Quality bar

  • Every pick cites signals — no “use Tavily because it’s good.”
  • Fallbacks are conditional — not a generic provider list.
  • Queries differ by provider — Serper keywords ≠ Exa sentences.
  • Respects available providers — don’t recommend Firecrawl if user only has Serper.

Examples

Good rationale: “Freshness=2 + Depth=2 → Tavily primary for synthesized recent coverage; Serper fallback for exact product name confirmation.”

Bad rationale: “Use Exa for better results.”

Good fallback: “If Exa returns <3 corporate homepages, retry Serper with site:linkedin.com/company {name}.”

Related skills

Plan Exa neural web searches before calling any Exa wrapper — craft queries, pick categories, set domain/date filters, define fallbacks, and decide when Exa...

1 installs

DEFAULT search skill for OpenClaw. Aggregates Tavily, Firecrawl, Exa, and optional X/social search behind one search path. Use for ANY external lookup that n...

23 installs1 stars

Route Tavily web searches across multiple API keys with automatic failover and quota awareness.

17 installs1 stars