Skip to content

网页搜索(Web Search)

web_search 工具使用你配置的提供商搜索网页并返回结果。结果按查询缓存 15 分钟(可配置)。

web_search 是轻量级 HTTP 工具,不是浏览器自动化。对于 JS 密集型站点或需要登录的页面,请使用 Web 浏览器。对于获取特定 URL,请使用 Web Fetch

快速开始

第一步:获取 API Key

选择提供商并获取 API Key,各提供商页面有注册链接。

第二步:配置

bash
openclaw configure --section web

这会存储密钥并设置提供商。你也可以设置环境变量(如 BRAVE_API_KEY)跳过此步骤。

第三步:使用

代理现在可以调用 web_search

javascript
await web_search({ query: "OpenClaw plugin SDK" });

选择提供商

提供商结果风格过滤器API Key
Brave结构化摘要片段国家、语言、时间、llm-context 模式BRAVE_API_KEY
DuckDuckGo结构化摘要片段无(免 Key)
Exa结构化 + 提取神经/关键词模式、日期、内容提取EXA_API_KEY
Firecrawl结构化摘要片段通过 firecrawl_search 工具FIRECRAWL_API_KEY
GeminiAI 综合 + 引用GEMINI_API_KEY
GrokAI 综合 + 引用XAI_API_KEY
KimiAI 综合 + 引用KIMI_API_KEY / MOONSHOT_API_KEY
Perplexity结构化摘要片段国家、语言、时间、域名、内容限制PERPLEXITY_API_KEY / OPENROUTER_API_KEY
Tavily结构化摘要片段通过 tavily_search 工具TAVILY_API_KEY

自动检测

提供商列表在文档和设置流程中按字母顺序排列,自动检测使用单独的优先级顺序:

若未设置 provider,OpenClaw 按以下顺序检查 API Key,使用第一个找到的:

  1. BraveBRAVE_API_KEYplugins.entries.brave.config.webSearch.apiKey
  2. GeminiGEMINI_API_KEYplugins.entries.google.config.webSearch.apiKey
  3. GrokXAI_API_KEYplugins.entries.xai.config.webSearch.apiKey
  4. KimiKIMI_API_KEY / MOONSHOT_API_KEYplugins.entries.moonshot.config.webSearch.apiKey
  5. PerplexityPERPLEXITY_API_KEY / OPENROUTER_API_KEYplugins.entries.perplexity.config.webSearch.apiKey
  6. FirecrawlFIRECRAWL_API_KEYplugins.entries.firecrawl.config.webSearch.apiKey
  7. TavilyTAVILY_API_KEYplugins.entries.tavily.config.webSearch.apiKey

若未找到任何 Key,回退到 Brave(你会收到缺少密钥的错误提示)。

所有提供商密钥字段支持 SecretRef 对象。在自动检测模式下,OpenClaw 仅解析所选提供商的密钥——未选中的 SecretRef 保持非活动状态。

配置

json5
{
  tools: {
    web: {
      search: {
        enabled: true, // 默认:true
        provider: "brave", // 或省略以自动检测
        maxResults: 5,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
      },
    },
  },
}

提供商特定配置(API Key、基础 URL、模式)位于 plugins.entries.<plugin>.config.webSearch.* 下,详见各提供商页面。

存储 API Key

配置文件方式:

运行 openclaw configure --section web 或直接设置密钥:

json5
{
  plugins: {
    entries: {
      brave: {
        config: {
          webSearch: {
            apiKey: "YOUR_KEY",
          },
        },
      },
    },
  },
}

环境变量方式:

在网关进程环境中设置提供商环境变量:

bash
export BRAVE_API_KEY="YOUR_KEY"

对于网关安装,将其放入 ~/.openclaw/.env

工具参数

参数描述
query搜索查询(必填)
count返回结果数(1-10,默认:5)
country2 字母 ISO 国家代码(如 "US"、"DE")
languageISO 639-1 语言代码(如 "en"、"de")
freshness时效过滤:dayweekmonthyear
date_after此日期后的结果(YYYY-MM-DD)
date_before此日期前的结果(YYYY-MM-DD)
ui_langUI 语言代码(仅限 Brave)
domain_filter域名白名单/黑名单数组(仅限 Perplexity)
max_tokens总内容预算,默认 25000(仅限 Perplexity)
max_tokens_per_page每页 token 限制,默认 2048(仅限 Perplexity)

并非所有参数都适用于所有提供商。Brave llm-context 模式拒绝 ui_langfreshnessdate_afterdate_before。Firecrawl 和 Tavily 通过 web_search 仅支持 querycount——使用其专属工具获取高级选项。

示例

javascript
// 基本搜索
await web_search({ query: "OpenClaw plugin SDK" });

// 德语特定搜索
await web_search({ query: "TV online schauen", country: "DE", language: "de" });

// 最近结果(过去一周)
await web_search({ query: "AI developments", freshness: "week" });

// 日期范围
await web_search({
  query: "climate research",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// 域名过滤(仅限 Perplexity)
await web_search({
  query: "product reviews",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

工具配置文件

若使用工具配置文件或白名单,添加 web_searchgroup:web

json5
{
  tools: {
    allow: ["web_search"],
    // 或:allow: ["group:web"](包含 web_search 和 web_fetch)
  },
}

相关链接

  • Web Fetch——获取 URL 并提取可读内容
  • Web 浏览器——用于 JS 密集型站点的完整浏览器自动化