OpenClaw 搜索 Provider 选型指南(Brave/Gemini/Grok/Tavily/SerpAPI 等)

AI Expert

难度: 中级 | 时长: 20 分钟 | 收获: 掌握如何根据实际场景为 OpenClaw 选择最合适的搜索 Provider

目标读者

  • 已完成 OpenClaw 基础搭建,准备认真接入搜索能力的开发者
  • 面对 10 个 Provider 不知道怎么选的工程师
  • 想在特定场景(RAG / 舆情监控 / 电商追踪等)深度定制搜索行为的朋友

核心依赖

  • OpenClaw(最新版本)
  • Node.js 18+
  • 至少一个搜索 Provider 的 API Key

项目结构

openclaw/
├── config.yaml     # 所有 Provider 配置都在这里
└── .env            # API Key 存这里,不要提交到仓库

1. OpenClaw 搜索能力概览

OpenClaw 的 Agentic Loop 里,搜索工具扮演的是"实时感知层"的角色——当 Agent 判断自己的训练数据不够用时,会主动调用搜索工具补充信息,再决定下一步行动。

用户提问
   ↓
Agent 思考:我需要最新信息吗?
   ↓ 是
调用搜索 Provider → 获取结果
   ↓
整合信息 → 生成回答

[!TIP]
没有搜索 Provider,OpenClaw 只能依赖模型训练数据,遇到"最新版本是什么""今天的新闻"这类问题就会胡说。配置搜索是让 Agent 真正"活"起来的第一步。

目前 OpenClaw 支持 10 个搜索 Provider,分两类:

类型Provider特点免费额度起步价
官方Perplexity结构化结果、时间/域名过滤$1/M tokens
官方Brave Search隐私优先、区域搜索~1,000 次/月$5/1k
官方GeminiGoogle 生态、自动 Grounding免费额度充足按 prompt 计费
官方Grok网络 + X 平台双搜索$10/1k 工具调用
官方Kimi256K 超长上下文$0.60/M tokens
第三方Tavily专为 LLM 优化,结构化输出1,000 次/月按量付费
第三方Serper.dev最快最便宜的 Google SERP注册送 2,500 次$0.30/1k
第三方SerpAPI多引擎全覆盖、支持截图250 次/月$7.50/1k
第三方Exa语义神经网络搜索免费试用按量付费
第三方DataForSEO企业级、10+ 引擎$1 试用金$0.60/1k

2. 选型核心维度

选 Provider 前先对齐这 4 个维度:

维度关键问题影响决策
时效性结果需要多新鲜?实时 / 周内 / 月内都够?新闻类必须选实时索引
质量需要原始链接列表,还是预处理过的摘要?AI Agent 场景优先选摘要型
成本月均调用量预估是多少?高频场景省钱空间极大
功能需要域名白名单 / 地理位置模拟 / 特定引擎吗?垂直场景功能差异很关键

3. 10 大场景选型指南

场景 1:代码问答 Agent

需求特征:用户问"这个报错怎么修""这个库最新 API 是什么",答案基本在 GitHub、Stack Overflow、官方文档里。

推荐:Perplexity + searchDomainFilter

原因是 Perplexity 的 sonar 模型对技术内容理解最好,加上域名白名单可以强制只从权威技术站点取结果,避免低质量博客污染答案。

tools:
  web:
    search:
      enabled: true
      provider: perplexity
      maxResults: 5
      perplexity:
        apiKey:
          source: env
          provider: default
          id: PERPLEXITY_API_KEY
        model: sonar                # 轻量快速,够用了
        searchRecencyFilter: month  # 一个月内的内容,过滤掉太旧的文档
        searchDomainFilter:
          - "github.com"
          - "stackoverflow.com"
          - "docs.python.org"
          - "developer.mozilla.org"
          - "pkg.go.dev"

效果:Agent 回答代码问题时,引用来源全部来自可信技术站点,可信度大幅提升。


场景 2:新闻摘要 Bot

需求特征:每天早上汇总指定领域(AI / 科技 / 金融)的最新新闻,时效性是第一优先级。

推荐:Serper.dev,type: news

Serper 有专门的 News 端点,直接拉 Google News 实时结果,响应 1–2 秒,定价是所有 Provider 里最低的之一。

tools:
  web:
    search:
      enabled: true
      provider: serper
      maxResults: 10
      cacheTtlMinutes: 30       # 新闻缓存 30 分钟,同一时段多次询问不重复打 API
      serper:
        apiKey:
          source: env
          provider: default
          id: SERPER_API_KEY
        type: news              # 切换到 News 端点
        num: 10                 # 每次取 10 条

[!TIP]
新闻场景把 cacheTtlMinutes 设到 30 很合理——同一批新闻 30 分钟内不会大变,重复调用完全是浪费。


场景 3:学术研究 Agent

需求特征:帮研究人员检索论文、分析某个研究方向的最新进展,需要理解语义,不能只匹配关键词。

推荐:Exa,语义检索 + 域名过滤

Exa 基于 embedding 向量索引,能理解"量子计算在密码学中的应用"这类语义查询,而不是只匹配"量子 密码 计算"这些关键词。

tools:
  web:
    search:
      enabled: true
      provider: exa
      maxResults: 8
      exa:
        apiKey:
          source: env
          provider: default
          id: EXA_API_KEY
        endpoint: auto          # 自动平衡速度与质量
        includeDomains:
          - "arxiv.org"
          - "semanticscholar.org"
          - "pubmed.ncbi.nlm.nih.gov"
          - "nature.com"
          - "science.org"
        startPublishedDate: "2024-01-01"   # 只看 2024 年以后的论文

对比普通关键词搜索:同样的 query,Exa 能找到语义相关但标题里没有关键词的论文,召回率明显更高。


场景 4:X/Twitter 舆情监控

需求特征:追踪某个品牌、产品、话题在 X 平台的实时讨论,普通网络搜索根本抓不到 X 的内容。

推荐:Grok,启用 x_search

这是 Grok 独有的能力——直接检索 X 平台内容,其他 Provider 做不到。

tools:
  web:
    search:
      enabled: true
      provider: grok
      grok:
        apiKey:
          source: env
          provider: default
          id: XAI_API_KEY
        model: grok-4-1-fast    # 专为 agentic 搜索优化的模型
        inlineCitations: true
        tools:
          - type: x_search
            fromDate: "2025-01-01"      # 只看指定日期之后的帖子
            allowedXHandles:            # 可选:只追踪特定账号
              - "sama"
              - "karpathy"
              - "ylecun"
          - type: web_search            # 同时开网络搜索,补充背景信息
            enableImageUnderstanding: true

[!WARNING]
web_searchx_search 各 $10/1000 次工具调用,高频监控场景注意设置 cacheTtlMinutes 或在应用层做去重,避免短时间内重复触发。


场景 5:电商价格追踪

需求特征:监控竞品在 Google Shopping 上的价格变动,或者帮用户查某个商品的最低价。

推荐:SerpAPI,engine: google_shopping

SerpAPI 是目前唯一把 Google Shopping 数据结构化输出做得比较完整的 Provider,能拿到价格、商家、评分等字段。

tools:
  web:
    search:
      enabled: true
      provider: serpapi
      maxResults: 20
      cacheTtlMinutes: 60       # 价格数据 1 小时缓存,避免频繁打 API
      serpapi:
        apiKey:
          source: env
          provider: default
          id: SERPAPI_API_KEY
        engine: google_shopping  # 切换到 Shopping 引擎
        gl: us                   # 美国市场
        hl: en
        # 可选:指定地理位置模拟
        location: "New York, New York, United States"

返回数据示例(SerpAPI 结构化输出):

{
  "shopping_results": [
    {
      "title": "Product Name",
      "price": "$29.99",
      "source": "Amazon",
      "rating": 4.5,
      "reviews": 1234,
      "link": "https://..."
    }
  ]
}

场景 6:SEO 内容生成

需求特征:批量分析关键词的 SERP 结构(标题、摘要、竞品文章),帮内容团队制定选题策略。

推荐:DataForSEO,mode: normal

DataForSEO 的 normal 模式走队列(约 5 分钟返回),价格仅 $0.0006/次,比实时模式便宜 3 倍多。SEO 分析本来就不需要实时,用 normal 模式大幅降低成本。

tools:
  web:
    search:
      enabled: true
      provider: dataforseo
      maxResults: 10
      cacheTtlMinutes: 1440     # SEO 数据变化慢,缓存 24 小时
      dataforseo:
        login:
          source: env
          provider: default
          id: DATAFORSEO_LOGIN
        password:
          source: env
          provider: default
          id: DATAFORSEO_PASSWORD
        engine: google
        mode: normal            # 队列模式,$0.0006/次(live 是 $0.002/次)
        locationCode: 2840      # 2840 = 美国;2826 = 英国;2392 = 日本
        languageCode: en

[!TIP]
DataForSEO 用 locationCode 数字代码指定地区,常用代码:美国 2840、英国 2826、德国 2276、日本 2392。在官方地区列表可查完整清单。


场景 7:企业内部知识搜索

需求特征:公司有内部 Wiki、技术文档站点,想让 Agent 优先从这些可信来源搜索,屏蔽无关的外部网站。

推荐:Brave Search + Goggles

Brave 的 Goggles 功能允许自定义搜索排名规则——可以把内部文档站点的权重拉满,同时降低或屏蔽竞品站点。

tools:
  web:
    search:
      enabled: true
      provider: brave
      maxResults: 8
      brave:
        apiKey:
          source: env
          provider: default
          id: BRAVE_API_KEY
        # Goggles URL:在 search.brave.com/goggles 创建并发布后获得
        goggles_id: "https://raw.githubusercontent.com/your-org/goggles/main/internal-docs.goggle"
        freshness: pm           # 搜索一个月内的内容

Goggles 配置示例.goggle 文件内容):

# 公司内部文档优先级最高
$boost=10,site=docs.yourcompany.com
$boost=10,site=wiki.yourcompany.com

# 竞品站点降权
$downrank=5,site=competitor.com

# 屏蔽低质量内容农场
$discard,site=spamsite.example

场景 8:多语言市场研究

需求特征:做全球市场分析,需要模拟在不同国家/语言环境下的搜索结果,了解各市场的本地竞争格局。

推荐:SerpAPI,灵活配置 location + hl + gl

SerpAPI 支持精细的地理位置模拟,可以"伪装"成指定城市的用户发起搜索。

tools:
  web:
    search:
      enabled: true
      provider: serpapi
      serpapi:
        apiKey:
          source: env
          provider: default
          id: SERPAPI_API_KEY
        engine: google
        # 示例:模拟德国柏林的用户
        location: "Berlin, Berlin, Germany"
        hl: de          # 界面语言:德语
        gl: de          # 地区:德国

多市场配置思路:在不同 Agent 任务里动态传入 location / hl / gl 参数,同一个 Provider 即可覆盖全球市场:

市场locationhlgl
美国New York, New York, United Statesenus
英国London, England, United Kingdomengb
德国Berlin, Berlin, Germanydede
日本Tokyo, Tokyo, Japanjajp
法国Paris, Ile-de-France, Francefrfr
巴西São Paulo, São Paulo, Brazilptbr

场景 9:高频低成本批量任务

需求特征:Agent 需要频繁触发搜索(比如每隔几分钟监控一批关键词),成本是最大顾虑。

推荐:Serper.dev 大批量档位 + 激进缓存策略

Serper 大批量可低至 $0.30/1k,加上合理缓存,综合成本可以降到行业最低。

tools:
  web:
    search:
      enabled: true
      provider: serper
      maxResults: 5             # 够用就好,不要贪多
      timeoutSeconds: 15        # 快速失败,不等太久
      cacheTtlMinutes: 120      # 2 小时缓存,相同 query 不重复打 API
      serper:
        apiKey:
          source: env
          provider: default
          id: SERPER_API_KEY
        type: search
        num: 5

成本计算对比(每月 10,000 次搜索):

Provider单价月成本
SerpAPI$7.50/1k$75
Perplexity sonar-pro$6/M tokens(约 $3/1k)$30
Serper.dev$0.30/1k$3
Tavily basic~$0.004/次$40

配合 2 小时缓存,实际有效调用量通常只有原始量的 30%–50%,实际月成本更低。


场景 10:预算 $0 起步

需求特征:个人项目或早期验证阶段,不想花钱,但又想让搜索功能真正可用。

策略:三个免费额度轮换使用

Provider免费额度合计
Brave Search~1,000 次/月
Tavily1,000 次/月
SerpAPI250 次/月
合计~2,250 次/月

配置思路是把三个 Provider 的 API Key 都设好,用 OpenClaw 的默认 Provider 指向最适合当前场景的那个,在快用完时手动或自动切换:

tools:
  web:
    search:
      enabled: true
      provider: tavily          # 主力:每月 1000 次免费
      maxResults: 5
      cacheTtlMinutes: 60       # 缓存 1 小时,最大化利用免费额度
      tavily:
        apiKey:
          source: env
          provider: default
          id: TAVILY_API_KEY
        searchDepth: basic      # 用 basic(1 credit),别用 advanced(2 credits)
        maxResults: 5
        includeAnswer: true

额度快耗尽时,只需改一行 provider: brave 切换到 Brave,不用动其他配置。

[!TIP]
Tavily 在 Dashboard 可以实时看用量,建议设置用量告警,快到上限时提前切换,避免搜索功能中断。

4. 场景 → Provider 速查表

场景推荐 Provider关键配置参数月成本估算(1k次)
代码问答 AgentPerplexitysearchDomainFilter, model: sonar~$1
新闻摘要 BotSerper.devtype: news, cacheTtlMinutes: 30$0.30–$1
学术研究 AgentExaincludeDomains, endpoint: auto按量付费
X/Twitter 舆情监控Grokx_search, allowedXHandles$10/1k 工具调用
电商价格追踪SerpAPIengine: google_shopping, gl$7.50
SEO 内容生成DataForSEOmode: normal, locationCode$0.60
企业内部知识搜索Brave + Gogglesgoggles_id$5/1k
多语言市场研究SerpAPIlocation, hl, gl$7.50
高频低成本批量Serper.devcacheTtlMinutes: 120$0.30–$1
预算 $0 起步Tavily / Brave 轮换searchDepth: basic, 缓存$0

5. 进阶:多 Provider 备用策略

生产环境建议配置主备策略——主 Provider 故障或额度耗尽时自动切换,不影响 Agent 正常工作。

tools:
  web:
    search:
      enabled: true
      provider: perplexity      # 主力 Provider
      maxResults: 5
      timeoutSeconds: 20        # 超时 20 秒后触发备用逻辑
      perplexity:
        apiKey:
          source: env
          provider: default
          id: PERPLEXITY_API_KEY
        model: sonar

      # 备用 Provider(当主力不可用时自动切换)
      fallback:
        provider: serper
        serper:
          apiKey:
            source: env
            provider: default
            id: SERPER_API_KEY
          type: search
          num: 5

触发备用的常见情况

  • 主 Provider 返回 429(超速率限制)
  • 主 Provider 响应超时(timeoutSeconds 设置)
  • 主 Provider 返回 5xx 错误(服务端故障)

6. 常见问题排查

Q1: 配置了 Provider 但 Agent 没有触发搜索

原因:Agent 的 prompt 没有引导它主动使用搜索工具,或者模型判断不需要联网。

解决:在 system prompt 里加上明确指引,例如:

当你不确定最新信息时,请主动使用搜索工具获取实时数据,不要依赖训练数据做出猜测。

Q2: Perplexity searchDomainFilter 没有生效

原因:域名格式不对,不需要加 https:// 前缀。

解决

# 错误
searchDomainFilter:
  - "https://github.com"

# 正确
searchDomainFilter:
  - "github.com"

Q3: Serper.dev 返回结果和直接在 Google 搜的不一样

原因:Serper 默认模拟美国地区搜索,若需要特定地区结果,要加 gl 参数。

解决

serper:
  type: search
  gl: gb    # 英国结果
  hl: en

Q4: Grok x_search 没有返回 X 平台内容

原因:旧版 search_parameters 配置方式已于 2025 年 12 月废弃,需要用新的 tools 格式。

解决:按场景 4 的示例,确保使用 tools: [{type: x_search}] 格式,并将 OpenClaw 更新到最新版本。

Q5: DataForSEO normal 模式等了很久没返回

原因normal 模式是队列处理,平均 3–5 分钟,正常现象。

解决:如果业务需要实时结果,切换到 mode: live($0.002/次,贵约 3 倍)。批量 SEO 分析等 5 分钟完全可以接受,建议保持 normal

Q6: 免费额度用完了 Agent 报错

原因:没有配置备用 Provider,单一 Provider 额度耗尽后请求直接失败。

解决:按第 5 节配置 fallback,或在 OpenClaw 的告警里设置额度预警,提前切换。

7. 进阶方向

  • 按 query 类型智能路由:代码相关问题走 Perplexity,新闻相关走 Serper,学术内容走 Exa,用 Agent 的 prompt 引导选择
  • 搜索结果二次处理:结合 Firecrawl 抓取搜索结果页面全文,而不仅仅是摘要
  • 用量监控与自动切换:集成各 Provider Dashboard 的用量 API,在额度剩余 20% 时自动切换到备用
  • 结果质量评估:对比不同 Provider 在同一 query 下的结果,沉淀出各场景最优配置

延伸阅读