Plan Exa neural web searches before calling any Exa wrapper — craft queries, pick categories, set domain/date filters, define fallbacks, and decide when Exa...
Documents
Search Auto-Routing Plan
Try itPlan 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
- Search goal — what answer or artifact is needed.
- Query or task description — the actual text to search for (or “generate from goal”).
- Constraints — freshness, geography, max latency, budget sensitivity, offline/air-gapped.
- Available providers (optional) — which keys/skills the user actually has; default to common stack: Serper, Tavily, Exa, Brave, Firecrawl.
- Output need — snippets, full page text, structured JSON, citations only.
Signal scoring
Score each dimension 0–2 (0=low, 1=medium, 2=high):
| Signal | 0 | 1 | 2 |
|---|---|---|---|
| Specificity | vague exploration | named topic | exact entity/error/ID |
| Freshness | evergreen | weeks | hours/breaking |
| Depth | quick fact | multi-source | deep research |
| Structure | prose pages | mixed | docs/repos/PDFs |
| Privacy | public OK | semi-sensitive | PII/regulated |
Provider fit (default rubric)
| Provider | Best when | Weak when |
|---|---|---|
| Serper (Google) | exact matches, site: queries, local/business | fuzzy conceptual discovery |
| Tavily | research synthesis, Q&A style answers | single known URL lookup |
| Exa | neural/semantic discovery, similar pages, companies/papers | literal error strings |
| Brave | privacy-weighted general web, independent index | deep academic corpora |
| Firecrawl | known URL → clean markdown extract | open-ended discovery |
Tie-breakers: cost ↑ with depth; latency ↑ with crawl/extract.
Workflow
- Restate goal and score the five signals.
- Rank providers 1–3 with short rationale.
- Output plan (format below) including fallback chain (if #1 thin → try #2).
- Suggest query tweaks per primary provider (keyword vs neural phrasing).
Output format
Search routing plan — {short goal}
| Signal | Score (0–2) |
|---|---|
| Specificity | |
| Freshness | |
| Depth | |
| Structure | |
| Privacy |
Primary route
| Field | Value |
|---|---|
| Provider | Serper / Tavily / Exa / Brave / Firecrawl |
| Mode | keyword / neural / extract / answer |
| Why | 1–2 sentences tied to signal scores |
| Query for provider | provider-optimized phrasing |
Fallback chain
- 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
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...
Route Tavily web searches across multiple API keys with automatic failover and quota awareness.
Helps with Agent users show strong demand for Tavily 搜索-style...
Helps with Agent users show strong demand for Tavily 搜索-style...
Helps with Agent users show strong demand for Tavily 搜索-style...