Plan Exa neural web searches before calling any Exa wrapper — craft queries, pick categories, set domain/date filters, define fallbacks, and decide when Exa...
文档
Search Auto-Routing Plan
试用Plan which search provider to use before multi-provider skills run — score query signals, pick Serper/Tavily/Exa/Brave/Firecrawl, define fallback chain, and...
它能做什么
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.
技能文档
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}.”
相关技能
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...
在多个 Tavily API key 之间路由搜索请求,按配额自动选 key 并故障转移。
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...