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

    bash
    openclaw configure --section web

    คำสั่งนี้จะบันทึกผู้ให้บริการและข้อมูลรับรองที่จำเป็น คุณยังสามารถตั้งค่า env var (เช่น BRAVE_API_KEY) และข้ามขั้นตอนนี้สำหรับผู้ให้บริการที่รองรับด้วย API ได้

  • Use it

    ตอนนี้ Agent สามารถเรียก web_search ได้แล้ว:

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

    สำหรับโพสต์บน X ให้ใช้:

    javascript
    await x_search({ query: "dinner recipes" });
  • การเลือกผู้ให้บริการ

    Brave Search

    ผลลัพธ์แบบมีโครงสร้างพร้อม snippets รองรับโหมด llm-context และตัวกรองประเทศ/ภาษา มี Free tier ให้ใช้

    DuckDuckGo

    ตัวสำรองที่ไม่ต้องใช้คีย์ ไม่จำเป็นต้องมี API key การผสานรวมแบบไม่เป็นทางการที่อิง HTML

    Exa

    การค้นหาแบบ neural + keyword พร้อมการดึงเนื้อหา (ไฮไลต์ ข้อความ สรุป)

    Firecrawl

    ผลลัพธ์แบบมีโครงสร้าง เหมาะที่สุดเมื่อใช้คู่กับ firecrawl_search และ firecrawl_scrape สำหรับการดึงข้อมูลเชิงลึก

    Gemini

    คำตอบที่สังเคราะห์โดย AI พร้อมการอ้างอิงผ่าน Google Search grounding

    Grok

    คำตอบที่สังเคราะห์โดย AI พร้อมการอ้างอิงผ่าน xAI web grounding

    Kimi

    คำตอบที่สังเคราะห์โดย AI พร้อมการอ้างอิงผ่าน Moonshot web search; fallback ของแชตที่ไม่มี grounding จะล้มเหลวอย่างชัดเจน

    MiniMax Search

    ผลลัพธ์แบบมีโครงสร้างผ่าน MiniMax Token Plan search API

    Ollama Web Search

    ค้นหาผ่านโฮสต์ Ollama โลคัลที่เข้าสู่ระบบอยู่ หรือ hosted Ollama API

    Perplexity

    ผลลัพธ์แบบมีโครงสร้างพร้อมการควบคุมการดึงเนื้อหาและการกรองโดเมน

    SearXNG

    Meta-search แบบ self-hosted ไม่จำเป็นต้องมี API key รวบรวม Google, Bing, DuckDuckGo และอื่น ๆ

    Tavily

    ผลลัพธ์แบบมีโครงสร้างพร้อมระดับความลึกในการค้นหา การกรองหัวข้อ และ tavily_extract สำหรับการดึง URL

    การเปรียบเทียบผู้ให้บริการ

    ผู้ให้บริการ รูปแบบผลลัพธ์ ตัวกรอง API key
    Brave Snippets แบบมีโครงสร้าง ประเทศ ภาษา เวลา โหมด llm-context BRAVE_API_KEY
    DuckDuckGo Snippets แบบมีโครงสร้าง -- ไม่มี (ไม่ต้องใช้คีย์)
    Exa แบบมีโครงสร้าง + ดึงข้อมูลแล้ว โหมด neural/keyword วันที่ การดึงเนื้อหา EXA_API_KEY
    Firecrawl Snippets แบบมีโครงสร้าง ผ่านเครื่องมือ firecrawl_search FIRECRAWL_API_KEY
    Gemini สังเคราะห์โดย AI + การอ้างอิง -- GEMINI_API_KEY
    Grok สังเคราะห์โดย AI + การอ้างอิง -- XAI_API_KEY
    Kimi สังเคราะห์โดย AI + การอ้างอิง; ล้มเหลวเมื่อใช้ fallback ของแชตที่ไม่มี grounding -- KIMI_API_KEY / MOONSHOT_API_KEY
    MiniMax Search Snippets แบบมีโครงสร้าง ภูมิภาค (global / cn) MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN
    Ollama Web Search Snippets แบบมีโครงสร้าง -- ไม่มีสำหรับโฮสต์โลคัลที่เข้าสู่ระบบแล้ว; OLLAMA_API_KEY สำหรับการค้นหาโดยตรงที่ https://ollama.com
    Perplexity Snippets แบบมีโครงสร้าง ประเทศ ภาษา เวลา โดเมน ขีดจำกัดเนื้อหา PERPLEXITY_API_KEY / OPENROUTER_API_KEY
    SearXNG Snippets แบบมีโครงสร้าง หมวดหมู่ ภาษา ไม่มี (self-hosted)
    Tavily Snippets แบบมีโครงสร้าง ผ่านเครื่องมือ tavily_search TAVILY_API_KEY

    การตรวจจับอัตโนมัติ

    การค้นหาเว็บแบบเนทีฟของ OpenAI

    โมเดล OpenAI Responses โดยตรงจะใช้เครื่องมือ hosted web_search ของ OpenAI โดยอัตโนมัติเมื่อเปิดใช้การค้นหาเว็บของ OpenClaw และไม่ได้ตรึงผู้ให้บริการที่จัดการไว้ นี่เป็นพฤติกรรมที่ผู้ให้บริการเป็นเจ้าของใน OpenAI Plugin ที่ bundled มา และใช้เฉพาะกับทราฟฟิก OpenAI API แบบเนทีฟเท่านั้น ไม่รวม URL ฐานของพร็อกซีที่เข้ากันได้กับ OpenAI หรือเส้นทาง Azure ตั้งค่า tools.web.search.provider เป็นผู้ให้บริการอื่น เช่น brave เพื่อคงเครื่องมือ web_search ที่จัดการไว้สำหรับโมเดล OpenAI หรือกำหนด tools.web.search.enabled: false เพื่อปิดทั้งการค้นหาที่จัดการไว้และการค้นหา OpenAI แบบเนทีฟ

    การค้นหาเว็บแบบเนทีฟของ Codex

    โมเดลที่รองรับ Codex สามารถเลือกใช้เครื่องมือ Responses web_search แบบเนทีฟของผู้ให้บริการแทนฟังก์ชัน web_search ที่ OpenClaw จัดการไว้ได้

    • กำหนดค่าไว้ใต้ tools.web.search.openaiCodex
    • จะเปิดใช้งานเฉพาะกับโมเดลที่รองรับ Codex (openai-codex/* หรือผู้ให้บริการที่ใช้ api: "openai-codex-responses")
    • web_search ที่จัดการไว้ยังคงใช้กับโมเดลที่ไม่ใช่ Codex
    • mode: "cached" เป็นค่าเริ่มต้นและเป็นค่าที่แนะนำ
    • tools.web.search.enabled: false ปิดทั้งการค้นหาที่จัดการไว้และการค้นหาแบบเนทีฟ
    json5
    {  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 เฉพาะสำหรับ hostname ของผู้ให้บริการนั้นเท่านั้น ปลายทาง private, loopback, link-local และ metadata อื่น ๆ ยังคงถูกบล็อก

    การอนุญาตอัตโนมัตินี้ไม่ใช้กับ URL web_fetch ใด ๆ โดยพลการ สำหรับ web_fetch ให้เปิดใช้ tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange และ tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange อย่างชัดเจน เฉพาะเมื่อพร็อกซีที่เชื่อถือได้ของคุณเป็นเจ้าของช่วงสังเคราะห์เหล่านั้น

    การตั้งค่าการค้นหาเว็บ

    รายชื่อผู้ให้บริการในเอกสารและโฟลว์การตั้งค่าเรียงตามตัวอักษร การตรวจจับอัตโนมัติจะคง ลำดับความสำคัญแยกต่างหาก

    หากไม่ได้ตั้งค่า provider ไว้ OpenClaw จะตรวจสอบผู้ให้บริการตามลำดับนี้และใช้ รายแรกที่พร้อม:

    ผู้ให้บริการที่รองรับด้วย API ก่อน:

    1. Brave -- BRAVE_API_KEY หรือ plugins.entries.brave.config.webSearch.apiKey (ลำดับ 10)
    2. MiniMax Search -- MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEY หรือ plugins.entries.minimax.config.webSearch.apiKey (ลำดับ 15)
    3. Gemini -- plugins.entries.google.config.webSearch.apiKey, GEMINI_API_KEY, หรือ models.providers.google.apiKey (ลำดับ 20)
    4. Grok -- XAI_API_KEY หรือ plugins.entries.xai.config.webSearch.apiKey (ลำดับ 30)
    5. Kimi -- KIMI_API_KEY / MOONSHOT_API_KEY หรือ plugins.entries.moonshot.config.webSearch.apiKey (ลำดับ 40)
    6. Perplexity -- PERPLEXITY_API_KEY / OPENROUTER_API_KEY หรือ plugins.entries.perplexity.config.webSearch.apiKey (ลำดับ 50)
    7. Firecrawl -- FIRECRAWL_API_KEY หรือ plugins.entries.firecrawl.config.webSearch.apiKey (ลำดับ 60)
    8. Exa -- EXA_API_KEY หรือ plugins.entries.exa.config.webSearch.apiKey; plugins.entries.exa.config.webSearch.baseUrl แบบไม่บังคับจะ override endpoint ของ Exa (ลำดับ 65)
    9. Tavily -- TAVILY_API_KEY หรือ plugins.entries.tavily.config.webSearch.apiKey (ลำดับ 70)

    ตัวสำรองที่ไม่ต้องใช้คีย์หลังจากนั้น:

    1. DuckDuckGo -- fallback แบบ HTML ที่ไม่ต้องใช้คีย์ ไม่ต้องมีบัญชีหรือ API key (ลำดับ 100)
    2. Ollama Web Search -- fallback ที่ไม่ต้องใช้คีย์ผ่านโฮสต์ Ollama โลคัลที่คุณกำหนดค่าไว้เมื่อเข้าถึงได้และเข้าสู่ระบบด้วย ollama signin; สามารถใช้ bearer auth ของผู้ให้บริการ Ollama ซ้ำได้เมื่อโฮสต์ต้องการ และสามารถเรียกการค้นหาโดยตรงที่ https://ollama.com เมื่อกำหนดค่าด้วย OLLAMA_API_KEY (ลำดับ 110)
    3. SearXNG -- SEARXNG_BASE_URL หรือ plugins.entries.searxng.config.webSearch.baseUrl (ลำดับ 200)

    หากตรวจไม่พบผู้ให้บริการ ระบบจะ fallback ไปที่ Brave (คุณจะได้รับข้อผิดพลาด missing-key ที่แจ้งให้คุณกำหนดค่า)

    Config

    json5
    {  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.apiKey และ models.providers.google.baseUrl มาใช้ซ้ำเป็นค่า สำรองที่มีลำดับความสำคัญต่ำกว่า หลังจากการกำหนดค่า web-search เฉพาะของตัวเองและ GEMINI_API_KEY ดูตัวอย่างได้ใน หน้าผู้ให้บริการ

    tools.web.search.provider จะถูกตรวจสอบกับรหัสผู้ให้บริการ web-search ที่ประกาศโดย manifest ของ Plugin ที่มาพร้อมชุดและที่ติดตั้งไว้ การพิมพ์ผิด เช่น "brvae" จะทำให้การตรวจสอบการกำหนดค่าล้มเหลว แทนที่จะถอยกลับไปใช้การตรวจจับอัตโนมัติแบบเงียบ ๆ หาก ผู้ให้บริการที่กำหนดค่าไว้มีเพียงหลักฐาน Plugin ที่ล้าสมัย เช่น บล็อก plugins.entries.<plugin> ที่เหลืออยู่หลังจากถอนการติดตั้ง Plugin ภายนอก OpenClaw จะยังคงเริ่มต้นได้อย่างยืดหยุ่นและรายงานคำเตือน เพื่อให้คุณติดตั้ง Plugin ใหม่ หรือเรียกใช้ openclaw doctor --fix เพื่อล้างการกำหนดค่าที่ล้าสมัย

    การเลือกผู้ให้บริการสำรองของ web_fetch จะแยกต่างหาก:

    • เลือกด้วย tools.web.fetch.provider
    • หรือละฟิลด์นั้นไว้ แล้วให้ OpenClaw ตรวจจับผู้ให้บริการ web-fetch รายแรกที่พร้อมใช้งานจากข้อมูลรับรองที่มี
    • web_fetch แบบไม่อยู่ใน sandbox สามารถใช้ผู้ให้บริการจาก Plugin ที่ติดตั้งไว้ซึ่งประกาศ contracts.webFetchProviders; การ fetch แบบอยู่ใน sandbox จะใช้ได้เฉพาะที่มาพร้อมชุดเท่านั้น
    • ปัจจุบันผู้ให้บริการ web-fetch ที่มาพร้อมชุดคือ Firecrawl ซึ่งกำหนดค่าใต้ plugins.entries.firecrawl.config.webFetch.*

    เมื่อคุณเลือก Kimi ระหว่าง openclaw onboard หรือ openclaw configure --section web OpenClaw ยังสามารถถามหา:

    • ภูมิภาค API ของ Moonshot (https://api.moonshot.ai/v1 หรือ https://api.moonshot.cn/v1)
    • โมเดล web-search เริ่มต้นของ Kimi (ค่าเริ่มต้นคือ kimi-k2.6)

    สำหรับ x_search ให้กำหนดค่า plugins.entries.xai.config.xSearch.* โดยใช้ โปรไฟล์การยืนยันตัวตน xAI เดียวกับแชต หรือข้อมูลรับรอง XAI_API_KEY / web-search ของ Plugin ที่ใช้โดยการค้นหาเว็บของ Grok การกำหนดค่าเดิม tools.web.x_search.* จะถูกย้ายโดยอัตโนมัติด้วย openclaw doctor --fix เมื่อคุณเลือก Grok ระหว่าง openclaw onboard หรือ openclaw configure --section web OpenClaw ยังสามารถเสนอการตั้งค่า x_search แบบไม่บังคับด้วยคีย์เดียวกันได้ นี่เป็นขั้นตอนติดตามผลแยกต่างหากภายในเส้นทางของ Grok ไม่ใช่ตัวเลือกผู้ให้บริการ web-search ระดับบนสุดที่แยกออกมา หากคุณเลือกผู้ให้บริการอื่น OpenClaw จะไม่ แสดงพรอมป์ x_search

    การจัดเก็บคีย์ API

    Config file

    เรียกใช้ openclaw configure --section web หรือตั้งค่าคีย์โดยตรง:

    json5
    {  plugins: {    entries: {      brave: {        config: {          webSearch: {            apiKey: "YOUR_KEY", // pragma: allowlist secret          },        },      },    },  },}

    Environment variable

    ตั้งค่าตัวแปรสภาพแวดล้อมของผู้ให้บริการในสภาพแวดล้อมของกระบวนการ Gateway:

    bash
    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 อาร์เรย์รายการอนุญาต/ปฏิเสธโดเมน (เฉพาะ Perplexity)
    max_tokens งบประมาณเนื้อหารวม ค่าเริ่มต้น 25000 (เฉพาะ Perplexity)
    max_tokens_per_page ขีดจำกัดโทเค็นต่อหน้า ค่าเริ่มต้น 2048 (เฉพาะ Perplexity)

    x_search ค้นหาโพสต์ X (เดิมคือ Twitter) โดยใช้ xAI และส่งคืน คำตอบที่ AI สังเคราะห์พร้อมการอ้างอิง รองรับคำค้นหาภาษาธรรมชาติและ ตัวกรองแบบมีโครงสร้างที่ไม่บังคับ OpenClaw จะเปิดใช้เครื่องมือ x_search ของ xAI ที่มีในตัวเฉพาะคำขอที่ให้บริการการเรียกเครื่องมือนี้

    json5
    {  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          },        },      },    },  },}

    x_search จะโพสต์ไปที่ <baseUrl>/responses เมื่อมีการตั้งค่า plugins.entries.xai.config.xSearch.baseUrl หากละฟิลด์นั้นไว้ จะถอยกลับไปใช้ plugins.entries.xai.config.webSearch.baseUrl จากนั้นใช้ tools.web.search.grok.baseUrl แบบเดิม และท้ายที่สุดใช้ปลายทาง xAI สาธารณะ

    พารามิเตอร์ คำอธิบาย
    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 ตรวจสอบวิดีโอที่แนบกับโพสต์ที่ตรงกัน
    javascript
    await x_search({  query: "dinner recipes",  allowed_x_handles: ["nytfood"],  from_date: "2026-03-01",});
    javascript
    // Per-post stats: use the exact status URL or status ID when possibleawait x_search({  query: "https://x.com/huntharo/status/1905678901234567890",});

    ตัวอย่าง

    javascript
    // Basic searchawait web_search({ query: "OpenClaw plugin SDK" }); // German-specific searchawait web_search({ query: "TV online schauen", country: "DE", language: "de" }); // Recent results (past week)await web_search({ query: "AI developments", freshness: "week" }); // Date rangeawait 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_search, x_search หรือ group:web:

    json5
    {  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 ของคุณ
    Was this useful?