跳转到内容

Web search

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

OpenClaw 还包含 x_search 用于搜索 X(前 Twitter)帖子,以及 web_fetch 用于轻量级 URL 获取。在此阶段,web_fetch 保持在本地,而 web_searchx_search 可在底层使用 xAI Responses。

  1. Choose a 提供商

    选择一个提供商并完成任何所需的设置。某些提供商不需要密钥,而其他的则使用 API 密钥。详情请参阅下方的提供商页面。

  2. Configure

    Terminal window
    openclaw configure --section web

    这将存储提供商以及任何所需的凭据。您也可以设置环境变量(例如 BRAVE_API_KEY)并针对 API 支持的提供商跳过此步骤。

  3. Use it

    代理现在可以调用 web_search

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

    对于 X 帖子,使用:

    await x_search({ query: "dinner recipes" });
Brave Search

包含片段的结构化结果。支持 llm-context 模式、国家/语言过滤器。提供免费层级。

DuckDuckGo

无需密钥的回退方案。不需要 API 密钥。基于 HTML 的非官方集成。

Exa

神经搜索 + 关键词搜索,支持内容提取(高亮、文本、摘要)。

Firecrawl

结构化结果。最好与 firecrawl_searchfirecrawl_scrape 配合使用以进行深度提取。

Gemini

通过 Google Search 接地提供带引用的 AI 综合答案。

Grok

通过 xAI web grounding 提供带引用的 AI 综合答案。

Kimi

通过 Moonshot 网络搜索提供带有引用的 AI 综合答案;无依据的聊天回退会明确失败。

MiniMax Search

通过 MiniMax Token Plan 搜索 API 提供结构化结果。

Ollama Web Search

通过已登录的本地 Ollama 主机或托管的 Ollama API 进行搜索。

Perplexity

结构化结果,包含内容提取控制和域名过滤。

SearXNG

自托管元搜索。不需要 API 密钥。聚合 Google、Bing、DuckDuckGo 等。

Tavily

结构化结果,具备搜索深度、主题过滤和用于 URL 提取的 tavily_extract

提供商结果样式过滤器API 密钥
Brave结构化片段国家、语言、时间、llm-context 模式BRAVE_API_KEY
DuckDuckGo结构化片段无(无密钥)
Exa结构化 + 已提取神经/关键词模式、日期、内容提取EXA_API_KEY
Firecrawl结构化片段通过 firecrawl_search 工具FIRECRAWL_API_KEY
GeminiAI 合成 + 引用GEMINI_API_KEY
GrokAI 合成 + 引用xAI OAuth,OAuthXAI_API_KEYplugins.entries.xai.config.webSearch.apiKey
KimiAI 综合 + 引用;在无依据的聊天回退时失败KIMI_API_KEY / MOONSHOT_API_KEY
MiniMax Search结构化片段区域 (global / cn)MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN
Ollama Web Search结构化片段对于已登录的本地主机无需设置;对于直接 https://ollama.com 搜索需要 OLLAMA_API_KEY
Perplexity结构化片段国家、语言、时间、域名、内容限制PERPLEXITY_API_KEY / OPENROUTER_API_KEY
SearXNG结构化片段类别、语言无(自托管)
Tavily结构化片段通过 tavily_search 工具TAVILY_API_KEY

当启用 OpenClaw 网络搜索且未固定托管提供商时,Direct OpenAI Responses 模型会自动使用 OpenAI 托管的 OpenAIOpenAIweb_searchOpenClawOpenAIOpenAIAPIOpenAI 工具。这是捆绑 OpenAI 插件中提供商拥有的行为,仅适用于原生 OpenAI API 流量,不适用于 OpenAI 兼容的代理基础 URL 或 Azure 路由。将 tools.web.search.provider 设置为其他提供商(例如 brave)以为 OpenAI 模型保留托管的 web_searchOpenAI 工具,或者设置 tools.web.search.enabled: falseOpenAI 以同时禁用托管搜索和原生 OpenAI 搜索。

支持 Codex 的模型可以选择使用提供商原生的 Responses web_searchOpenClaw 工具,而不是 OpenClaw 托管的 web_search 函数。

  • tools.web.search.openaiCodex 下进行配置
  • 它仅针对支持 Codex 的 OpenAI 模型(使用 api: "openai-chatgpt-responses" 的 OpenAIopenai/* 模型)激活
  • 托管的 web_search 仍适用于非 Codex 模型
  • mode: "cached" 是默认且推荐的设置
  • tools.web.search.enabled: false 禁用托管搜索和原生搜索
{
tools: {
web: {
search: {
enabled: true,
openaiCodex: {
enabled: true,
mode: "cached",
allowedDomains: ["example.com"],
contextSize: "high",
userLocation: {
country: "US",
city: "New York",
timezone: "America/New_York",
},
},
},
},
},
}

如果启用了原生 Codex 搜索但当前模型不支持 Codex,OpenClaw 将保持正常的托管 OpenClawweb_search 行为。

托管的 web_searchOpenClawAPIOpenClaw 提供商调用使用 OpenClaw 的受保护提取路径。对于受信任的提供商 API 主机,OpenClaw 仅针对该提供商主机名允许在 198.18.0.0/15fc00::/7 中使用 Surge、Clash 和 sing-box 的虚假 IP DNS 应答。其他私有、环回、链路本地和元数据目的地仍然被阻止。

此自动允许不适用于任意的 web_fetch URL。对于 web_fetch,请仅在您的 可信代理拥有这些合成范围时明确启用 tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangetools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange

文档和设置流程中的提供商列表按字母顺序排列。自动检测保持 单独的优先顺序。

如果未设置 providerOpenClaw,OpenClaw 将按此顺序检查提供商并使用 第一个准备就绪的提供商:

首先是支持 API 的提供商:

  1. Brave — BraveBRAVE_API_KEYplugins.entries.brave.config.webSearch.apiKey (顺序 10)
  2. MiniMax Search — MiniMaxMINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEYplugins.entries.minimax.config.webSearch.apiKey (顺序 15)
  3. Geminiplugins.entries.google.config.webSearch.apiKeyGEMINI_API_KEYmodels.providers.google.apiKey (顺序 20)
  4. Grok — xAI OAuth、 OAuthXAI_API_KEYplugins.entries.xai.config.webSearch.apiKey (顺序 30)
  5. KimiKIMI_API_KEY / MOONSHOT_API_KEYplugins.entries.moonshot.config.webSearch.apiKey (顺序 40)
  6. Perplexity — PerplexityPERPLEXITY_API_KEY / OPENROUTER_API_KEYplugins.entries.perplexity.config.webSearch.apiKey (顺序 50)
  7. Firecrawl — FirecrawlFIRECRAWL_API_KEYplugins.entries.firecrawl.config.webSearch.apiKey (顺序 60)
  8. ExaEXA_API_KEYplugins.entries.exa.config.webSearch.apiKey;可选的 plugins.entries.exa.config.webSearch.baseUrl 会覆盖 Exa 端点 (顺序 65)
  9. TavilyTAVILY_API_KEYplugins.entries.tavily.config.webSearch.apiKey (顺序 70)

之后是无密钥的后备方案:

  1. DuckDuckGo — 无需账户或 API 密钥的无密钥 HTML 后备方案(顺序 100)
  2. Ollama Web Search — 通过您配置的本地 Ollama 主机进行的免密钥回退,当其可达且使用 OllamaOllamaollama signinOllama 登录时;当主机需要时,可以重用 Ollama 提供商的 bearer auth,并且当使用 OLLAMA_API_KEY 配置时,可以调用直接的 https://ollama.com 搜索 (顺序 110)
  3. SearXNGSEARXNG_BASE_URLplugins.entries.searxng.config.webSearch.baseUrl (顺序 200)

如果未检测到提供商,它将回退到 Brave(您将收到缺失密钥错误,提示您配置一个)。

{
tools: {
web: {
search: {
enabled: true, // default: true
provider: "brave", // or omit for auto-detection
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
},
},
}

特定于提供商的配置(API 密钥、基础 URL、模式)位于 plugins.entries.<plugin>.config.webSearch.* 之下。Gemini 还可以重用 models.providers.google.apiKeymodels.providers.google.baseUrl 作为其专用网络搜索配置和 GEMINI_API_KEY 之后的低优先级 备用。请参阅 提供商页面以获取示例。 Grok 还可以重用来自 openclaw models auth login --提供商 xai --method oauth 的 xAI OAuth 身份验证配置文件;API 密钥配置仍作为备用。

tools.web.search.provider 会根据内置和已安装插件清单声明的网络搜索提供商 ID 进行验证。诸如 "brvae" 之类的拼写错误 将导致配置验证失败,而不是静默回退到自动检测。如果 配置的提供商仅有过时的插件证据,例如卸载第三方插件后 遗留的 plugins.entries.<plugin>OpenClaw 块, OpenClaw 将保持启动弹性并报告警告,以便您可以重新安装 插件或运行 openclaw doctor --fix 来清理过时的配置。

web_fetch 备用提供商的选择是独立的:

  • 通过 tools.web.fetch.provider 进行选择
  • 或者省略该字段,让 OpenClaw 从可用的凭据中自动检测第一个就绪的网络获取提供商
  • 非沙箱隔离的 web_fetch 可以使用声明了 contracts.webFetchProviders 的已安装插件提供商;沙箱隔离的获取保持仅限内置
  • 目前捆绑的 web-fetch 提供商是 Firecrawl,配置于 plugins.entries.firecrawl.config.webFetch.*

当您在 openclaw onboardopenclaw configure --section web 期间选择 Kimi 时,OpenClaw 也可以请求:

  • Moonshot API 区域 (https://api.moonshot.ai/v1https://api.moonshot.cn/v1)
  • 默认的 Kimi web-search 模型(默认为 kimi-k2.6

对于 x_search,请配置 plugins.entries.xai.config.xSearch.*。它使用与聊天相同的 xAI 身份验证配置文件,或者 Grok web search 使用的 XAI_API_KEY / 插件 web-search 凭据。 旧的 tools.web.x_search.* 配置会由 openclaw doctor --fix 自动迁移。 当您在 openclaw onboardopenclaw configure --section web 期间选择 Grok 时, OpenClaw 也可以提供使用相同凭据的可选 x_search 设置。 这是 Grok 路径中的一个单独后续步骤,而不是一个单独的顶级 web-search 提供商选择。如果您选择了其他提供商,OpenClaw 将不会 显示 x_search 提示。

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

{
plugins: {
entries: {
brave: {
config: {
webSearch: {
apiKey: "YOUR_KEY", // pragma: allowlist secret
},
},
},
},
},
}
参数描述
query搜索查询(必填)
count要返回的结果数(1-10,默认:5)
country2 字母 ISO 国家代码(例如 “US”、“DE”)
languageISO 639-1 语言代码(例如 “en”、“de”)
search_lang搜索语言代码(仅限 Brave)
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)

x_search 使用 xAI 查询 X(前身为 Twitter)帖子并返回 带引用的 AI 综合答案。它接受自然语言查询和 可选的结构化过滤器。OpenClaw 仅在服务于此工具调用的请求上启用内置的 xAI x_search 工具。

{
plugins: {
entries: {
xai: {
config: {
xSearch: {
enabled: true,
model: "grok-4-1-fast-non-reasoning",
baseUrl: "https://api.x.ai/v1", // optional, overrides webSearch.baseUrl
inlineCitations: false,
maxTurns: 2,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
webSearch: {
apiKey: "xai-...", // optional if an xAI auth profile or XAI_API_KEY is set
baseUrl: "https://api.x.ai/v1", // optional shared xAI Responses base URL
},
},
},
},
},
}

当设置了 plugins.entries.xai.config.xSearch.baseUrl 时,x_search 会将帖子发布到 <baseUrl>/responses。如果省略了该字段, 它会回退到 plugins.entries.xai.config.webSearch.baseUrl,然后是 传统的 tools.web.search.grok.baseUrl,最后是公共 xAI 端点。

参数描述
query搜索查询(必填)
allowed_x_handles将结果限制为特定的 X 用户名
excluded_x_handles排除特定的 X 用户名
from_date仅包含此日期及之后的帖子 (YYYY-MM-DD)
to_date仅包含此日期及之前的帖子 (YYYY-MM-DD)
enable_image_understanding允许 xAI 检查匹配帖子中附加的图片
enable_video_understanding允许 xAI 检查匹配帖子中附加的视频
await x_search({
query: "dinner recipes",
allowed_x_handles: ["nytfood"],
from_date: "2026-03-01",
});
// Per-post stats: use the exact status URL or status ID when possible
await x_search({
query: "https://x.com/huntharo/status/1905678901234567890",
});
// Basic search
await web_search({ query: "OpenClaw plugin SDK" });
// German-specific search
await web_search({ query: "TV online schauen", country: "DE", language: "de" });
// Recent results (past week)
await web_search({ query: "AI developments", freshness: "week" });
// Date range
await web_search({
query: "climate research",
date_after: "2024-01-01",
date_before: "2024-06-30",
});
// Domain filtering (Perplexity only)
await web_search({
query: "product reviews",
domain_filter: ["-reddit.com", "-pinterest.com"],
});

如果您使用工具配置文件或允许列表,请添加 web_searchx_searchgroup:web

{
tools: {
allow: ["web_search", "x_search"],
// or: allow: ["group:web"] (includes web_search, x_search, and web_fetch)
},
}
  • Web Fetch — 获取 URL 并提取可读内容
  • Web Browser — 针对重度 JavaScript 网站的完整浏览器自动化
  • Grok Search — 使用 Grok 作为 web_search 提供商
  • Ollama Web Search — 通过您的 Ollama 主机进行免密钥网络搜索