Picks a provider
Sends each query to the provider that fits it, chosen from the keys you configured.
One search.
Every source.
Search and page extraction for AI agents. One router in front of the providers you already have: it returns the original links and the page text, never an answer it made up.
Hermes v4.3.1 · MCP v4.3.1 · OpenClaw plugin v4.3.1 · skill v4.0.0
Sends each query to the provider that fits it, chosen from the keys you configured.
Missing key, provider error or empty result: the request moves to the next provider, and you see that it did.
Every result carries its source. The quality report records which provider answered, which fell back, and how long it took.
Every call returns the sources and a record of how it got them: which providers were in line, which one failed, which one answered, and how long each took. Field names are from the v3 response schema.
$ web_search "rust async runtime benchmarks"
status ok
routing_receipt
mode auto
candidate_order serper, you, linkup
selected_provider serper
fallback_reason selected_failed
provider_attempts
serper failed http 429 212 ms
you success 8 results 640 ms
cache_status miss
results[0]
url https://github.com/…/benchmarks
title Async runtime benchmarks
text extracted page text, not a summary
hermes plugins install web-search-plus --enableSetup ↗uvx --from web-search-plus-mcp==4.3.1 web-search-plus-mcpSetup ↗openclaw plugins install clawhub:web-search-plus-plugin-v2Setup ↗/add-web-search-plusSetup ↗grok plugin install robbyczgw-cla/web-search-plus-mcpSetup ↗One provider key is enough.
Compare providers ↗