Tools
ค้นหาเว็บ
เครื่องมือ web_search ค้นหาเว็บโดยใช้ผู้ให้บริการที่คุณกำหนดค่าไว้และ
ส่งคืนผลลัพธ์ ผลลัพธ์จะถูกแคชตามคำค้นหาเป็นเวลา 15 นาที (กำหนดค่าได้)
OpenClaw ยังมี x_search สำหรับโพสต์ X (เดิมคือ Twitter) และ
web_fetch สำหรับการดึง URL แบบเบา ในระยะนี้ web_fetch จะยังคงทำงาน
ภายในเครื่อง ขณะที่ web_search และ x_search สามารถใช้ xAI Responses
เบื้องหลังได้
เริ่มต้นอย่างรวดเร็ว
Choose a provider
เลือกผู้ให้บริการและตั้งค่าที่จำเป็นให้เสร็จ ผู้ให้บริการบางราย ไม่ต้องใช้คีย์ ขณะที่บางรายใช้ API keys ดูรายละเอียดได้จากหน้าผู้ให้บริการ ด้านล่าง
Configure
openclaw configure --section web
คำสั่งนี้จะจัดเก็บผู้ให้บริการและข้อมูลรับรองที่จำเป็น คุณยังสามารถตั้งค่า env
var (เช่น BRAVE_API_KEY) และข้ามขั้นตอนนี้สำหรับผู้ให้บริการที่รองรับด้วย API
Use it
ตอนนี้เอเจนต์สามารถเรียก web_search ได้แล้ว:
await web_search({ query: "OpenClaw plugin SDK" });
สำหรับโพสต์ X ให้ใช้:
await x_search({ query: "dinner recipes" });
การเลือกผู้ให้บริการ
ผลลัพธ์แบบมีโครงสร้างพร้อมตัวอย่างข้อความ รองรับโหมด llm-context และตัวกรองประเทศ/ภาษา มีระดับใช้งานฟรี
ตัวเลือกสำรองที่ไม่ต้องใช้คีย์ ไม่ต้องใช้ API key การผสานรวมแบบไม่เป็นทางการที่อิง HTML
การค้นหาแบบนิวรัล + คีย์เวิร์ด พร้อมการดึงเนื้อหา (ไฮไลต์ ข้อความ สรุป)
ผลลัพธ์แบบมีโครงสร้าง เหมาะที่สุดเมื่อใช้คู่กับ firecrawl_search และ firecrawl_scrape สำหรับการดึงข้อมูลเชิงลึก
คำตอบที่ AI สังเคราะห์พร้อมการอ้างอิงผ่านการยึดโยงกับ Google Search
คำตอบที่ AI สังเคราะห์พร้อมการอ้างอิงผ่านการยึดโยงเว็บของ xAI
คำตอบที่ AI สังเคราะห์พร้อมการอ้างอิงผ่านการค้นหาเว็บของ Moonshot; การสำรองเป็นแชทที่ไม่ยึดโยงจะล้มเหลวอย่างชัดเจน
ผลลัพธ์แบบมีโครงสร้างผ่าน MiniMax Token Plan search API
ค้นหาผ่านโฮสต์ Ollama ภายในเครื่องที่ลงชื่อเข้าใช้แล้ว หรือ Ollama API ที่โฮสต์ไว้
ผลลัพธ์แบบมีโครงสร้างพร้อมการควบคุมการดึงเนื้อหาและการกรองโดเมน
เมตาเสิร์ชที่โฮสต์เอง ไม่ต้องใช้ API key รวมผลจาก Google, Bing, DuckDuckGo และอื่นๆ
ผลลัพธ์แบบมีโครงสร้างพร้อมความลึกในการค้นหา การกรองหัวข้อ และ tavily_extract สำหรับการดึงข้อมูล URL
การเปรียบเทียบผู้ให้บริการ
| ผู้ให้บริการ | รูปแบบผลลัพธ์ | ตัวกรอง | API key |
|---|---|---|---|
| Brave | ตัวอย่างข้อความแบบมีโครงสร้าง | ประเทศ ภาษา เวลา โหมด llm-context |
BRAVE_API_KEY |
| DuckDuckGo | ตัวอย่างข้อความแบบมีโครงสร้าง | -- | ไม่มี (ไม่ต้องใช้คีย์) |
| Exa | แบบมีโครงสร้าง + ดึงข้อมูลแล้ว | โหมดนิวรัล/คีย์เวิร์ด วันที่ การดึงเนื้อหา | EXA_API_KEY |
| Firecrawl | ตัวอย่างข้อความแบบมีโครงสร้าง | ผ่านเครื่องมือ firecrawl_search |
FIRECRAWL_API_KEY |
| Gemini | AI สังเคราะห์ + การอ้างอิง | -- | GEMINI_API_KEY |
| Grok | AI สังเคราะห์ + การอ้างอิง | -- | XAI_API_KEY |
| Kimi | AI สังเคราะห์ + การอ้างอิง; ล้มเหลวเมื่อสำรองเป็นแชทที่ไม่ยึดโยง | -- | KIMI_API_KEY / MOONSHOT_API_KEY |
| MiniMax Search | ตัวอย่างข้อความแบบมีโครงสร้าง | ภูมิภาค (global / cn) |
MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN |
| Ollama Web Search | ตัวอย่างข้อความแบบมีโครงสร้าง | -- | ไม่มีสำหรับโฮสต์ภายในเครื่องที่ลงชื่อเข้าใช้แล้ว; OLLAMA_API_KEY สำหรับการค้นหา https://ollama.com โดยตรง |
| Perplexity | ตัวอย่างข้อความแบบมีโครงสร้าง | ประเทศ ภาษา เวลา โดเมน ขีดจำกัดเนื้อหา | PERPLEXITY_API_KEY / OPENROUTER_API_KEY |
| SearXNG | ตัวอย่างข้อความแบบมีโครงสร้าง | หมวดหมู่ ภาษา | ไม่มี (โฮสต์เอง) |
| Tavily | ตัวอย่างข้อความแบบมีโครงสร้าง | ผ่านเครื่องมือ tavily_search |
TAVILY_API_KEY |
การตรวจจับอัตโนมัติ
การค้นหาเว็บ OpenAI แบบเนทีฟ
โมเดล OpenAI Responses โดยตรงจะใช้เครื่องมือ web_search ที่ OpenAI โฮสต์ให้อัตโนมัติเมื่อเปิดใช้งานการค้นหาเว็บของ OpenClaw และไม่ได้ปักหมุดผู้ให้บริการที่จัดการไว้ นี่เป็นพฤติกรรมที่ผู้ให้บริการเป็นเจ้าของใน Plugin OpenAI ที่บันเดิลมา และใช้กับทราฟฟิก OpenAI API แบบเนทีฟเท่านั้น ไม่รวม URL ฐานของพร็อกซีที่เข้ากันได้กับ OpenAI หรือเส้นทาง Azure ตั้งค่า tools.web.search.provider เป็นผู้ให้บริการรายอื่น เช่น brave เพื่อคงเครื่องมือ web_search ที่จัดการไว้สำหรับโมเดล OpenAI หรือกำหนด tools.web.search.enabled: false เพื่อปิดใช้งานทั้งการค้นหาที่จัดการไว้และการค้นหา OpenAI แบบเนทีฟ
การค้นหาเว็บ Codex แบบเนทีฟ
โมเดลที่รองรับ Codex สามารถเลือกใช้เครื่องมือ web_search ของ Responses แบบเนทีฟจากผู้ให้บริการแทนฟังก์ชัน web_search ที่ OpenClaw จัดการได้
- กำหนดค่าไว้ใต้
tools.web.search.openaiCodex - เปิดใช้งานเฉพาะกับโมเดลที่รองรับ Codex (
openai-codex/*หรือผู้ให้บริการที่ใช้api: "openai-codex-responses") web_searchที่จัดการไว้ยังคงใช้กับโมเดลที่ไม่ใช่ Codexmode: "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 ที่จัดการไว้จะใช้เส้นทาง fetch ที่มีการป้องกันของ OpenClaw สำหรับ
โฮสต์ API ของผู้ให้บริการที่เชื่อถือได้ OpenClaw อนุญาตคำตอบ DNS แบบ fake-IP
ของ Surge, Clash และ sing-box ใน 198.18.0.0/15 และ fc00::/7 เฉพาะสำหรับชื่อโฮสต์
ของผู้ให้บริการนั้นเท่านั้น ปลายทางส่วนตัว local loopback link-local และ metadata
อื่นๆ ยังคงถูกบล็อก
การอนุญาตอัตโนมัตินี้ไม่มีผลกับ URL web_fetch ใดๆ สำหรับ
web_fetch ให้เปิดใช้งาน tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange และ
tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange อย่างชัดเจนเฉพาะเมื่อ
พร็อกซีที่คุณเชื่อถือเป็นเจ้าของช่วงสังเคราะห์เหล่านั้น
การตั้งค่าการค้นหาเว็บ
รายชื่อผู้ให้บริการในเอกสารและโฟลว์การตั้งค่าจะเรียงตามตัวอักษร การตรวจจับอัตโนมัติจะใช้ ลำดับความสำคัญแยกต่างหาก
หากไม่ได้ตั้งค่า provider, OpenClaw จะตรวจสอบผู้ให้บริการตามลำดับนี้และใช้
รายแรกที่พร้อมใช้งาน:
ผู้ให้บริการที่รองรับด้วย API ก่อน:
- Brave --
BRAVE_API_KEYหรือplugins.entries.brave.config.webSearch.apiKey(ลำดับ 10) - MiniMax Search --
MINIMAX_CODE_PLAN_KEY/MINIMAX_CODING_API_KEY/MINIMAX_OAUTH_TOKEN/MINIMAX_API_KEYหรือplugins.entries.minimax.config.webSearch.apiKey(ลำดับ 15) - Gemini --
plugins.entries.google.config.webSearch.apiKey,GEMINI_API_KEY, หรือmodels.providers.google.apiKey(ลำดับ 20) - Grok --
XAI_API_KEYหรือplugins.entries.xai.config.webSearch.apiKey(ลำดับ 30) - Kimi --
KIMI_API_KEY/MOONSHOT_API_KEYหรือplugins.entries.moonshot.config.webSearch.apiKey(ลำดับ 40) - Perplexity --
PERPLEXITY_API_KEY/OPENROUTER_API_KEYหรือplugins.entries.perplexity.config.webSearch.apiKey(ลำดับ 50) - Firecrawl --
FIRECRAWL_API_KEYหรือplugins.entries.firecrawl.config.webSearch.apiKey(ลำดับ 60) - Exa --
EXA_API_KEYหรือplugins.entries.exa.config.webSearch.apiKey;plugins.entries.exa.config.webSearch.baseUrlที่เป็นตัวเลือกจะแทนที่ปลายทาง Exa (ลำดับ 65) - Tavily --
TAVILY_API_KEYหรือplugins.entries.tavily.config.webSearch.apiKey(ลำดับ 70)
ตัวเลือกสำรองที่ไม่ต้องใช้คีย์หลังจากนั้น:
- DuckDuckGo -- ตัวเลือกสำรองแบบ HTML ที่ไม่ต้องใช้คีย์ โดยไม่ต้องมีบัญชีหรือ API key (ลำดับ 100)
- Ollama Web Search -- ตัวเลือกสำรองที่ไม่ต้องใช้คีย์ผ่านโฮสต์ Ollama ภายในเครื่องที่คุณกำหนดค่าไว้เมื่อเข้าถึงได้และลงชื่อเข้าใช้ด้วย
ollama signin; สามารถนำ bearer auth ของผู้ให้บริการ Ollama มาใช้ซ้ำเมื่อโฮสต์ต้องใช้ และสามารถเรียกการค้นหาhttps://ollama.comโดยตรงเมื่อกำหนดค่าด้วยOLLAMA_API_KEY(ลำดับ 110) - SearXNG --
SEARXNG_BASE_URLหรือplugins.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 keys, base URLs, modes) อยู่ภายใต้
plugins.entries.<plugin>.config.webSearch.* Gemini ยังสามารถใช้
models.providers.google.apiKey และ models.providers.google.baseUrl ซ้ำเป็น
fallback ลำดับความสำคัญต่ำกว่า หลังจากการกำหนดค่า web-search เฉพาะของตัวเองและ GEMINI_API_KEY ดูตัวอย่างได้ใน
หน้าผู้ให้บริการ
tools.web.search.provider ถูกตรวจสอบกับ id ของผู้ให้บริการ web-search
ที่ประกาศโดย manifest ของ Plugin ที่มาพร้อมชุดและที่ติดตั้งไว้ รวมถึง
Plugin ผู้ให้บริการที่ทราบว่าสามารถติดตั้งได้ การพิมพ์ผิด เช่น "brvae" จะทำให้
การตรวจสอบการกำหนดค่าล้มเหลว แทนที่จะ fallback ไปใช้การตรวจจับอัตโนมัติแบบเงียบ ๆ หากผู้ให้บริการที่กำหนดค่าไว้เป็นที่รู้จัก แต่
Plugin เจ้าของไม่พร้อมใช้งาน OpenClaw จะทำให้การเริ่มต้นยังทนทานและรายงาน
คำเตือน เพื่อให้คุณเรียกใช้ openclaw doctor --fix เพื่อติดตั้งหรือเปิดใช้งาน Plugin ได้
พฤติกรรมคำเตือนแบบเดียวกันนี้ใช้กับหลักฐาน Plugin ที่ล้าสมัยด้วย เช่น บล็อก
plugins.entries.<plugin> ที่เหลืออยู่หลังถอนการติดตั้ง Plugin ภายนอก
การเลือกผู้ให้บริการ fallback ของ web_fetch แยกกันต่างหาก:
- เลือกด้วย
tools.web.fetch.provider - หรือไม่ระบุฟิลด์นั้น แล้วให้ OpenClaw ตรวจจับผู้ให้บริการ web-fetch รายแรก ที่พร้อมใช้งานจาก credentials ที่มีโดยอัตโนมัติ
web_fetchที่ไม่อยู่ใน sandbox สามารถใช้ผู้ให้บริการ Plugin ที่ติดตั้งไว้ซึ่งประกาศcontracts.webFetchProviders; การ fetch แบบ sandbox จะใช้ได้เฉพาะตัวที่มาพร้อมชุดเท่านั้น- ปัจจุบันผู้ให้บริการ web-fetch ที่มาพร้อมชุดคือ Firecrawl ซึ่งกำหนดค่าภายใต้
plugins.entries.firecrawl.config.webFetch.*
เมื่อคุณเลือก Kimi ระหว่าง openclaw onboard หรือ
openclaw configure --section web OpenClaw ยังสามารถถามหา:
- ภูมิภาค Moonshot API (
https://api.moonshot.ai/v1หรือhttps://api.moonshot.cn/v1) - โมเดล web-search เริ่มต้นของ Kimi (ค่าเริ่มต้นคือ
kimi-k2.6)
สำหรับ x_search ให้กำหนดค่า plugins.entries.xai.config.xSearch.* โดยใช้
fallback XAI_API_KEY เดียวกับการค้นหาเว็บของ Grok
การกำหนดค่าเดิม tools.web.x_search.* จะถูกย้ายอัตโนมัติโดย openclaw doctor --fix
เมื่อคุณเลือก Grok ระหว่าง openclaw onboard หรือ openclaw configure --section web
OpenClaw ยังสามารถเสนอการตั้งค่า x_search แบบไม่บังคับด้วยคีย์เดียวกันได้
นี่เป็นขั้นตอนต่อเนื่องที่แยกอยู่ภายในเส้นทาง Grok ไม่ใช่ตัวเลือกผู้ให้บริการ
web-search ระดับบนสุดที่แยกต่างหาก หากคุณเลือกผู้ให้บริการอื่น OpenClaw จะไม่
แสดง prompt ของ x_search
การจัดเก็บ API keys
ไฟล์กำหนดค่า
เรียกใช้ openclaw configure --section web หรือตั้งค่าคีย์โดยตรง:
{
plugins: {
entries: {
brave: {
config: {
webSearch: {
apiKey: "YOUR_KEY", // pragma: allowlist secret
},
},
},
},
},
}
ตัวแปรสภาพแวดล้อม
ตั้งค่าตัวแปรสภาพแวดล้อมของผู้ให้บริการในสภาพแวดล้อมของกระบวนการ Gateway:
export BRAVE_API_KEY="YOUR_KEY"
สำหรับการติดตั้ง Gateway ให้ใส่ไว้ใน ~/.openclaw/.env
ดู ตัวแปรสภาพแวดล้อม
พารามิเตอร์ของเครื่องมือ
| พารามิเตอร์ | คำอธิบาย |
|---|---|
query |
คำค้นหา (จำเป็น) |
count |
จำนวนผลลัพธ์ที่จะส่งคืน (1-10, ค่าเริ่มต้น: 5) |
country |
รหัสประเทศ ISO 2 ตัวอักษร (เช่น "US", "DE") |
language |
รหัสภาษา ISO 639-1 (เช่น "en", "de") |
search_lang |
รหัสภาษาสำหรับการค้นหา (เฉพาะ Brave) |
freshness |
ตัวกรองเวลา: day, week, month หรือ year |
date_after |
ผลลัพธ์หลังวันที่นี้ (YYYY-MM-DD) |
date_before |
ผลลัพธ์ก่อนวันที่นี้ (YYYY-MM-DD) |
ui_lang |
รหัสภาษาของ UI (เฉพาะ Brave) |
domain_filter |
อาร์เรย์ allowlist/denylist ของโดเมน (เฉพาะ Perplexity) |
max_tokens |
งบประมาณเนื้อหารวม ค่าเริ่มต้น 25000 (เฉพาะ Perplexity) |
max_tokens_per_page |
ขีดจำกัด token ต่อหน้า ค่าเริ่มต้น 2048 (เฉพาะ Perplexity) |
x_search
x_search ค้นหาโพสต์ X (เดิมคือ Twitter) โดยใช้ xAI และส่งคืน
คำตอบที่ AI สังเคราะห์พร้อม citations โดยรับ query ภาษาธรรมชาติและ
ตัวกรองแบบมีโครงสร้างที่ไม่บังคับ OpenClaw เปิดใช้งานเครื่องมือ x_search
ของ 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 XAI_API_KEY is set
baseUrl: "https://api.x.ai/v1", // optional shared xAI Responses base URL
},
},
},
},
},
}
x_search จะ post ไปที่ <baseUrl>/responses เมื่อ
plugins.entries.xai.config.xSearch.baseUrl ถูกตั้งค่า หากละเว้นฟิลด์นั้น
จะ fallback ไปที่ plugins.entries.xai.config.webSearch.baseUrl จากนั้นไปที่
tools.web.search.grok.baseUrl แบบเดิม และสุดท้ายไปที่ endpoint สาธารณะของ xAI
พารามิเตอร์ x_search
| พารามิเตอร์ | คำอธิบาย |
|---|---|
query |
คำค้นหา (จำเป็น) |
allowed_x_handles |
จำกัดผลลัพธ์ให้เป็น X handles ที่ระบุ |
excluded_x_handles |
ยกเว้น X handles ที่ระบุ |
from_date |
รวมเฉพาะโพสต์ในวันที่นี้หรือหลังจากวันที่นี้ (YYYY-MM-DD) |
to_date |
รวมเฉพาะโพสต์ในวันที่นี้หรือก่อนวันที่นี้ (YYYY-MM-DD) |
enable_image_understanding |
ให้ xAI ตรวจสอบรูปภาพที่แนบมากับโพสต์ที่ตรงกัน |
enable_video_understanding |
ให้ xAI ตรวจสอบวิดีโอที่แนบมากับโพสต์ที่ตรงกัน |
ตัวอย่าง x_search
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"],
});
โปรไฟล์เครื่องมือ
หากคุณใช้โปรไฟล์เครื่องมือหรือ allowlists ให้เพิ่ม web_search, x_search หรือ group:web:
{
tools: {
allow: ["web_search", "x_search"],
// or: allow: ["group:web"] (includes web_search, x_search, and web_fetch)
},
}
ที่เกี่ยวข้อง
- Web Fetch -- fetch URL และดึงเนื้อหาที่อ่านได้
- Web Browser -- การทำงานอัตโนมัติของเบราว์เซอร์เต็มรูปแบบสำหรับไซต์ที่ใช้ JS หนัก
- Grok Search -- Grok เป็นผู้ให้บริการ
web_search - Ollama Web Search -- การค้นหาเว็บโดยไม่ใช้คีย์ผ่านโฮสต์ Ollama ของคุณ