Skip to content

網路搜尋

web_search 工具會使用您設定的提供者搜尋網路並 傳回結果。結果會依查詢快取 15 分鐘(可設定)。

OpenClaw 也包含用於 X(前 Twitter)貼文的 x_search,以及 用於輕量級 URL 擷取的 web_fetch。在此階段,web_fetch 保持在 本機,而 web_searchx_search 則可在底層使用 xAI Responses。

  1. 選擇提供者

    選擇一個提供者並完成任何必要的設定。某些提供者 不需要金鑰,而其他的則使用 API 金鑰。請參閱下方的提供者頁面以 瞭解詳細資訊。

  2. 設定

    Terminal window
    openclaw configure --section web

    這會儲存提供者和任何所需的認證資訊。您也可以設定環境 變數(例如 BRAVE_API_KEY)並針對使用 API 的 提供者跳過此步驟。

  3. 使用

    Agent 現在可以呼叫 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 搜尋 grounding 提供引用文獻的 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、XAI_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 網路搜尋已啟用且未固定任何受管理的供應商時,直接的 OpenAI Responses 模型會自動使用 OpenAI 託管的 web_search 工具。這是內建 OpenAI 外掛程式中供應商擁有的行為,僅適用於原生的 OpenAI API 流量,不適用於 OpenAI 相容的 Proxy 基礎 URL 或 Azure 路由。將 tools.web.search.provider 設定為其他供應商(例如 brave)以保留 OpenAI 模型的受管理 web_search 工具,或將 tools.web.search.enabled: false 設定為停用受管理搜尋和原生 OpenAI 搜尋。

支援 Codex 的模型可選擇使用供應商原生的 Responses web_search 工具,而非 OpenClaw 管理的 web_search 函式。

  • tools.web.search.openaiCodex 下進行設定
  • 它僅適用於支援 Codex 的 OpenAI 模型(使用 api: "openai-chatgpt-responses"openai/* 模型)
  • 管理的 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 將保持一般的管理式 web_search 行為。

管理的 web_search 供應商呼叫使用 OpenClaw 的防護擷取路徑。對於受信任的供應商 API 主機,OpenClaw 允許 Surge、Clash 和 sing-box 的假 IP DNS 回應於 198.18.0.0/15fc00::/7 中,但僅限該供應商主機名稱。其他私人、loopback、連線本機和元資料目的地仍會被封鎖。

此自動許可不適用於任意的 web_fetch URL。對於 web_fetch,僅在您信任的 Proxy 擁有這些合成範圍時,才明確啟用 tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangetools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange

文件和設定流程中的提供者清單按字母順序排列。自動偵測則維持單獨的優先順序。

如果未設定 provider,OpenClaw 會依此順序檢查供應商,並使用第一個準備就緒的供應商:

優先檢查需要 API 金鑰的提供者:

  1. Brave —— BRAVE_API_KEYplugins.entries.brave.config.webSearch.apiKey (順序 10)
  2. MiniMax Search —— MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEYplugins.entries.minimax.config.webSearch.apiKey (順序 15)
  3. Gemini —— plugins.entries.google.config.webSearch.apiKeyGEMINI_API_KEYmodels.providers.google.apiKey (順序 20)
  4. Grok —— xAI OAuth、XAI_API_KEYplugins.entries.xai.config.webSearch.apiKey (順序 30)
  5. Kimi —— KIMI_API_KEY / MOONSHOT_API_KEYplugins.entries.moonshot.config.webSearch.apiKey (順序 40)
  6. PerplexityPERPLEXITY_API_KEY / OPENROUTER_API_KEYplugins.entries.perplexity.config.webSearch.apiKey (順序 50)
  7. 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 — 不需要金鑰的 HTML 後備選項,無需帳戶或 API 金鑰 (順序 100)
  2. Ollama Web Search — 當您設定的本地 Ollama 主機可達且使用 ollama signin 登入時,作為免金鑰的後備方案;當主機需要時,可以重複使用 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 也可以在專用的網頁搜尋設定和 GEMINI_API_KEY 之後,重複使用 models.providers.google.apiKeymodels.providers.google.baseUrl 作為較低優先級的 後備方案。請參閱提供者頁面以取得範例。 Grok 也可以重複使用來自 openclaw models auth login --provider xai --method oauth 的 xAI OAuth auth 設定檔;API 金鑰設定仍為後備方案。

tools.web.search.provider 會根據內建與已安裝外掛清單中宣告的網路搜尋提供者 ID 進行驗證。像是 "brvae" 這類拼字錯誤會導致設定驗證失敗,而不是無聲地回退到自動偵測。如果設定的提供者只剩下過期的外掛證據,例如解除安裝第三方外掛後殘留的 plugins.entries.<plugin> 區塊,OpenClaw 會保持啟動彈性並回報警告,以便您重新安裝外掛或執行 openclaw doctor --fix 來清理過期設定。

web_fetch 回退提供者的選擇是分開的:

  • 使用 tools.web.fetch.provider 選擇
  • 或省略該欄位並讓 OpenClaw 從可用的認證中自動偵測第一個準備就緒的網路擷取提供者
  • 非沙箱化的 web_fetch 可以使用宣告了 contracts.webFetchProviders 的已安裝外掛提供者;沙箱化的擷取則僅限內建功能
  • 目前內建的網頁擷取提供者是 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 網路搜尋模型 (預設為 kimi-k2.6)

對於 x_search,請設定 plugins.entries.xai.config.xSearch.*。它使用與聊天相同的 xAI 設定檔,或是 Grok 網路搜尋所使用的 XAI_API_KEY / 外掛網路搜尋憑證。 舊版的 tools.web.x_search.* 設定會由 openclaw doctor --fix 自動遷移。 當您在 openclaw onboardopenclaw configure --section web 期間選擇 Grok 時,OpenClaw 也可以提供使用相同憑證的選用 x_search 設定。 這是 Grok 路徑內的一個獨立後續步驟,而非獨立的頂層網路搜尋提供者選擇。如果您選擇其他提供者,OpenClaw 將不會顯示 x_search 提示。

執行 openclaw configure --section web 或直接設定金鑰:

{
plugins: {
entries: {
brave: {
config: {
webSearch: {
apiKey: "YOUR_KEY", // pragma: allowlist secret
},
},
},
},
},
}
參數描述
query搜尋查詢(必填)
count要傳回的結果數量(1-10,預設值:5)
country兩個字母的 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 — 針對 JS 密集型網站的完整瀏覽器自動化
  • Grok Search — 將 Grok 作為 web_search 提供者
  • Ollama Web Search — 透過您的 Ollama 主機進行免金鑰的網路搜尋