Web Search Pro
Multi-engine web search with full parameter control for AI agents.
A precision supplement to OpenClaw's built-in web_search (Brave/Perplexity), providing
domain filtering, deep search, news mode, date ranges, and content extraction
that the built-in search does not support.
多引擎精细化网络搜索,为 AI Agent 设计。
作为 OpenClaw 内置 web_search(Brave/Perplexity)的精细化补充,提供域名过滤、
深度搜索、新闻模式、日期范围、内容提取等内置搜索不支持的能力。
配置一个或多个 API Key,自动选择最优引擎。
Engines / 引擎
| Engine |
Strengths |
Free Tier |
API Key Env |
| Tavily |
AI-optimized, best answer quality, full filters, extract |
1000/month |
TAVILY_API_KEY |
| Exa |
Semantic/neural search, deep research |
$10 credit |
EXA_API_KEY |
| Serper |
Real Google SERP, best news coverage |
100/month |
SERPER_API_KEY |
| SerpAPI |
Multi-engine (Google/Bing/Baidu/Yandex/DuckDuckGo) |
250/month |
SERPAPI_API_KEY |
Auto-Select Priority / 自动选择优先级
When --engine is not specified, the skill picks the best available engine:
| Query Type |
Priority |
Reason |
| Default |
Tavily > Exa > Serper > SerpAPI |
Tavily has best AI answer + full filters |
--deep |
Tavily > Exa |
Both have dedicated deep search modes |
--news |
Serper > Tavily |
Google News has widest coverage |
--include-domains |
Tavily > Exa > Serper > SerpAPI |
Tavily/Exa have native domain filters |
--search-engine baidu |
SerpAPI |
Only SerpAPI supports Baidu/Yandex |
| Chinese queries |
SerpAPI (Baidu) > Serper |
Baidu has better Chinese results |
Search / 搜索
# Basic search (auto-select engine)
node {baseDir}/scripts/search.mjs "query"
# Force specific engine
node {baseDir}/scripts/search.mjs "query" --engine tavily
# Domain filtering (only search specific sites)
node {baseDir}/scripts/search.mjs "query" --include-domains "github.com,stackoverflow.com"
# Exclude domains
node {baseDir}/scripts/search.mjs "query" --exclude-domains "pinterest.com,quora.com"
# Date range (absolute)
node {baseDir}/scripts/search.mjs "query" --from 2026-01-01 --to 2026-02-09
# Time range (relative)
node {baseDir}/scripts/search.mjs "query" --time-range week
# Deep/advanced search
node {baseDir}/scripts/search.mjs "query" --deep
# News search
node {baseDir}/scripts/search.mjs "query" --news --days 7
# Multi-engine: Baidu search
node {baseDir}/scripts/search.mjs "query" --engine serpapi --search-engine baidu
# More results
node {baseDir}/scripts/search.mjs "query" -n 10
# JSON output (for programmatic use)
node {baseDir}/scripts/search.mjs "query" --json
Extract / 内容提取
Extract readable content from URLs (Tavily Extract or Exa livecrawl):
node {baseDir}/scripts/extract.mjs "https://example.com/article"
node {baseDir}/scripts/extract.mjs "url1" "url2" "url3"
node {baseDir}/scripts/extract.mjs "url" --engine exa
node {baseDir}/scripts/extract.mjs "url" --json
All Options / 全部参数
| Option |
Description |
Engines |
--engine <name> |
Force engine: tavily|exa|serper|serpapi |
all |
-n <count> |
Number of results (default: 5) |
all |
--deep |
Deep/advanced search mode |
tavily, exa |
--news |
News search mode |
tavily, serper, serpapi |
--days <n> |
Limit news to last N days |
tavily |
--include-domains <d,...> |
Only search these domains |
all (native: tavily, exa) |
--exclude-domains <d,...> |
Exclude these domains |
all (native: tavily, exa) |
--time-range <range> |
day|week|month|year |
all |
--from <YYYY-MM-DD> |
Results after this date |
all |
--to <YYYY-MM-DD> |
Results before this date |
all |
--search-engine <name> |
SerpAPI sub-engine: google|bing|baidu|yandex|duckduckgo |
serpapi |
--country <code> |
Country code (us, cn, de...) |
serper, serpapi |
--lang <code> |
Language code (en, zh, de...) |
serper, serpapi |
--json |
Raw JSON output |
all |
Setup / 配置
Add API keys to your environment (e.g., ~/.openclaw/.env):
# Configure at least one (recommended: Tavily)
TAVILY_API_KEY=tvly-xxxxx # https://tavily.com (1000 free/month)
EXA_API_KEY=exa-xxxxx # https://exa.ai ($10 free credit)
SERPER_API_KEY=xxxxx # https://serper.dev (100 free/month)
SERPAPI_API_KEY=xxxxx # https://serpapi.com (250 free/month)
Notes / 说明
- At least one API key must be configured
- Domain filtering via
--include-domains/--exclude-domains works natively on Tavily and Exa; on Serper/SerpAPI it's implemented via site: query operators
--deep mode uses more API credits (Tavily: 2x, Exa: varies)
- Extract only works with Tavily and Exa
- All output is Markdown-formatted for AI agent consumption; use
--json for programmatic access
1---2name: web-search-pro3description: Multi-engine web search with full parameter control. Supports Tavily, Exa, Serper, and SerpAPI with domain filtering, date ranges, deep search, news mode, and content extraction. Auto-selects the best engine based on query type and available API keys. 多引擎精细化搜索:支持域名过滤、日期范围、深度搜索、新闻模式、内容提取。 根据查询类型和可用 API Key 自动选择最优引擎。4---56# Web Search Pro78Multi-engine web search with full parameter control for AI agents.9A precision supplement to OpenClaw's built-in `web_search` (Brave/Perplexity), providing10domain filtering, deep search, news mode, date ranges, and content extraction11that the built-in search does not support.1213多引擎精细化网络搜索,为 AI Agent 设计。14作为 OpenClaw 内置 `web_search`(Brave/Perplexity)的精细化补充,提供域名过滤、15深度搜索、新闻模式、日期范围、内容提取等内置搜索不支持的能力。16配置一个或多个 API Key,自动选择最优引擎。1718## Engines / 引擎1920| Engine | Strengths | Free Tier | API Key Env |21|--------|-----------|-----------|-------------|22| **Tavily** | AI-optimized, best answer quality, full filters, extract | 1000/month | `TAVILY_API_KEY` |23| **Exa** | Semantic/neural search, deep research | $10 credit | `EXA_API_KEY` |24| **Serper** | Real Google SERP, best news coverage | 100/month | `SERPER_API_KEY` |25| **SerpAPI** | Multi-engine (Google/Bing/Baidu/Yandex/DuckDuckGo) | 250/month | `SERPAPI_API_KEY` |2627## Auto-Select Priority / 自动选择优先级2829When `--engine` is not specified, the skill picks the best available engine:3031| Query Type | Priority | Reason |32|------------|----------|--------|33| Default | Tavily > Exa > Serper > SerpAPI | Tavily has best AI answer + full filters |34| `--deep` | Tavily > Exa | Both have dedicated deep search modes |35| `--news` | Serper > Tavily | Google News has widest coverage |36| `--include-domains` | Tavily > Exa > Serper > SerpAPI | Tavily/Exa have native domain filters |37| `--search-engine baidu` | SerpAPI | Only SerpAPI supports Baidu/Yandex |38| Chinese queries | SerpAPI (Baidu) > Serper | Baidu has better Chinese results |3940## Search / 搜索4142```bash43# Basic search (auto-select engine)44node {baseDir}/scripts/search.mjs "query"4546# Force specific engine47node {baseDir}/scripts/search.mjs "query" --engine tavily4849# Domain filtering (only search specific sites)50node {baseDir}/scripts/search.mjs "query" --include-domains "github.com,stackoverflow.com"5152# Exclude domains53node {baseDir}/scripts/search.mjs "query" --exclude-domains "pinterest.com,quora.com"5455# Date range (absolute)56node {baseDir}/scripts/search.mjs "query" --from 2026-01-01 --to 2026-02-095758# Time range (relative)59node {baseDir}/scripts/search.mjs "query" --time-range week6061# Deep/advanced search62node {baseDir}/scripts/search.mjs "query" --deep6364# News search65node {baseDir}/scripts/search.mjs "query" --news --days 76667# Multi-engine: Baidu search68node {baseDir}/scripts/search.mjs "query" --engine serpapi --search-engine baidu6970# More results71node {baseDir}/scripts/search.mjs "query" -n 107273# JSON output (for programmatic use)74node {baseDir}/scripts/search.mjs "query" --json75```7677## Extract / 内容提取7879Extract readable content from URLs (Tavily Extract or Exa livecrawl):8081```bash82node {baseDir}/scripts/extract.mjs "https://example.com/article"83node {baseDir}/scripts/extract.mjs "url1" "url2" "url3"84node {baseDir}/scripts/extract.mjs "url" --engine exa85node {baseDir}/scripts/extract.mjs "url" --json86```8788## All Options / 全部参数8990| Option | Description | Engines |91|--------|-------------|---------|92| `--engine <name>` | Force engine: tavily\|exa\|serper\|serpapi | all |93| `-n <count>` | Number of results (default: 5) | all |94| `--deep` | Deep/advanced search mode | tavily, exa |95| `--news` | News search mode | tavily, serper, serpapi |96| `--days <n>` | Limit news to last N days | tavily |97| `--include-domains <d,...>` | Only search these domains | all (native: tavily, exa) |98| `--exclude-domains <d,...>` | Exclude these domains | all (native: tavily, exa) |99| `--time-range <range>` | day\|week\|month\|year | all |100| `--from <YYYY-MM-DD>` | Results after this date | all |101| `--to <YYYY-MM-DD>` | Results before this date | all |102| `--search-engine <name>` | SerpAPI sub-engine: google\|bing\|baidu\|yandex\|duckduckgo | serpapi |103| `--country <code>` | Country code (us, cn, de...) | serper, serpapi |104| `--lang <code>` | Language code (en, zh, de...) | serper, serpapi |105| `--json` | Raw JSON output | all |106107## Setup / 配置108109Add API keys to your environment (e.g., `~/.openclaw/.env`):110111```bash112# Configure at least one (recommended: Tavily)113TAVILY_API_KEY=tvly-xxxxx # https://tavily.com (1000 free/month)114EXA_API_KEY=exa-xxxxx # https://exa.ai ($10 free credit)115SERPER_API_KEY=xxxxx # https://serper.dev (100 free/month)116SERPAPI_API_KEY=xxxxx # https://serpapi.com (250 free/month)117```118119## Notes / 说明120121- At least one API key must be configured122- Domain filtering via `--include-domains`/`--exclude-domains` works natively on Tavily and Exa; on Serper/SerpAPI it's implemented via `site:` query operators123- `--deep` mode uses more API credits (Tavily: 2x, Exa: varies)124- Extract only works with Tavily and Exa125- All output is Markdown-formatted for AI agent consumption; use `--json` for programmatic access