Langsung ke konten utama

Pencarian Web

Tool web_search mencari di web menggunakan penyedia yang Anda konfigurasi dan mengembalikan hasil. Hasil di-cache berdasarkan query selama 15 menit (dapat dikonfigurasi). OpenClaw juga menyertakan x_search untuk postingan X (sebelumnya Twitter) dan web_fetch untuk pengambilan URL ringan. Pada fase ini, web_fetch tetap lokal sementara web_search dan x_search dapat menggunakan xAI Responses di balik layar.
web_search adalah tool HTTP ringan, bukan automasi browser. Untuk situs yang berat di JS atau login, gunakan Web Browser. Untuk mengambil URL tertentu, gunakan Web Fetch.

Mulai cepat

1

Pilih penyedia

Pilih penyedia dan selesaikan penyiapan yang diperlukan. Beberapa penyedia tidak memerlukan key, sementara yang lain menggunakan API key. Lihat halaman penyedia di bawah untuk detailnya.
2

Konfigurasi

openclaw configure --section web
Ini menyimpan penyedia dan kredensial yang diperlukan. Anda juga dapat menyetel env var (misalnya BRAVE_API_KEY) dan melewati langkah ini untuk penyedia yang didukung API.
3

Gunakan

Agen kini dapat memanggil web_search:
await web_search({ query: "OpenClaw plugin SDK" });
Untuk postingan X, gunakan:
await x_search({ query: "dinner recipes" });

Memilih penyedia

Brave Search

Hasil terstruktur dengan snippet. Mendukung mode llm-context, filter negara/bahasa. Tersedia tier gratis.

DuckDuckGo

Fallback tanpa key. Tidak perlu API key. Integrasi tidak resmi berbasis HTML.

Exa

Pencarian neural + keyword dengan ekstraksi konten (highlight, teks, ringkasan).

Firecrawl

Hasil terstruktur. Paling cocok dipasangkan dengan firecrawl_search dan firecrawl_scrape untuk ekstraksi mendalam.

Gemini

Jawaban hasil sintesis AI dengan sitasi melalui grounding Google Search.

Grok

Jawaban hasil sintesis AI dengan sitasi melalui grounding web xAI.

Kimi

Jawaban hasil sintesis AI dengan sitasi melalui pencarian web Moonshot.

MiniMax Search

Hasil terstruktur melalui API pencarian MiniMax Coding Plan.

Ollama Web Search

Pencarian tanpa key melalui host Ollama yang Anda konfigurasi. Memerlukan ollama signin.

Perplexity

Hasil terstruktur dengan kontrol ekstraksi konten dan pemfilteran domain.

SearXNG

Meta-search self-hosted. Tidak perlu API key. Mengagregasi Google, Bing, DuckDuckGo, dan lainnya.

Tavily

Hasil terstruktur dengan kedalaman pencarian, pemfilteran topik, dan tavily_extract untuk ekstraksi URL.

Perbandingan penyedia

ProviderGaya hasilFilterAPI key
BraveSnippet terstrukturNegara, bahasa, waktu, mode llm-contextBRAVE_API_KEY
DuckDuckGoSnippet terstrukturTidak ada (tanpa key)
ExaTerstruktur + diekstrakMode neural/keyword, tanggal, ekstraksi kontenEXA_API_KEY
FirecrawlSnippet terstrukturMelalui tool firecrawl_searchFIRECRAWL_API_KEY
GeminiSintesis AI + sitasiGEMINI_API_KEY
GrokSintesis AI + sitasiXAI_API_KEY
KimiSintesis AI + sitasiKIMI_API_KEY / MOONSHOT_API_KEY
MiniMax SearchSnippet terstrukturWilayah (global / cn)MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY
Ollama Web SearchSnippet terstrukturTidak ada secara default; ollama signin diperlukan, dapat menggunakan ulang bearer auth penyedia Ollama
PerplexitySnippet terstrukturNegara, bahasa, waktu, domain, batas kontenPERPLEXITY_API_KEY / OPENROUTER_API_KEY
SearXNGSnippet terstrukturKategori, bahasaTidak ada (self-hosted)
TavilySnippet terstrukturMelalui tool tavily_searchTAVILY_API_KEY

Deteksi otomatis

Pencarian web Codex native

Model yang mendukung Codex dapat secara opsional menggunakan tool web_search Responses native milik penyedia alih-alih fungsi web_search terkelola milik OpenClaw.
  • Konfigurasikan di bawah tools.web.search.openaiCodex
  • Hanya aktif untuk model yang mendukung Codex (openai-codex/* atau penyedia yang menggunakan api: "openai-codex-responses")
  • web_search terkelola tetap berlaku untuk model non-Codex
  • mode: "cached" adalah pengaturan default dan yang direkomendasikan
  • tools.web.search.enabled: false menonaktifkan pencarian terkelola dan native
{
  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",
          },
        },
      },
    },
  },
}
Jika pencarian Codex native diaktifkan tetapi model saat ini tidak mendukung Codex, OpenClaw tetap menggunakan perilaku web_search terkelola yang normal.

Menyiapkan pencarian web

Daftar penyedia dalam dokumen dan alur penyiapan diurutkan secara alfabetis. Deteksi otomatis mempertahankan urutan prioritas yang terpisah. Jika tidak ada provider yang disetel, OpenClaw memeriksa penyedia dalam urutan ini dan menggunakan yang pertama kali siap: Penyedia berbasis API terlebih dahulu:
  1. BraveBRAVE_API_KEY atau plugins.entries.brave.config.webSearch.apiKey (urutan 10)
  2. MiniMax SearchMINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY atau plugins.entries.minimax.config.webSearch.apiKey (urutan 15)
  3. GeminiGEMINI_API_KEY atau plugins.entries.google.config.webSearch.apiKey (urutan 20)
  4. GrokXAI_API_KEY atau plugins.entries.xai.config.webSearch.apiKey (urutan 30)
  5. KimiKIMI_API_KEY / MOONSHOT_API_KEY atau plugins.entries.moonshot.config.webSearch.apiKey (urutan 40)
  6. PerplexityPERPLEXITY_API_KEY / OPENROUTER_API_KEY atau plugins.entries.perplexity.config.webSearch.apiKey (urutan 50)
  7. FirecrawlFIRECRAWL_API_KEY atau plugins.entries.firecrawl.config.webSearch.apiKey (urutan 60)
  8. ExaEXA_API_KEY atau plugins.entries.exa.config.webSearch.apiKey (urutan 65)
  9. TavilyTAVILY_API_KEY atau plugins.entries.tavily.config.webSearch.apiKey (urutan 70)
Fallback tanpa key setelah itu:
  1. DuckDuckGo — fallback HTML tanpa key tanpa akun atau API key (urutan 100)
  2. Ollama Web Search — fallback tanpa key melalui host Ollama yang Anda konfigurasi; memerlukan Ollama dapat dijangkau dan sudah sign in dengan ollama signin serta dapat menggunakan ulang bearer auth penyedia Ollama jika host membutuhkannya (urutan 110)
  3. SearXNGSEARXNG_BASE_URL atau plugins.entries.searxng.config.webSearch.baseUrl (urutan 200)
Jika tidak ada penyedia yang terdeteksi, sistem akan fallback ke Brave (Anda akan mendapatkan error key tidak ada yang meminta Anda untuk mengonfigurasinya).
Semua field key penyedia mendukung objek SecretRef. SecretRef dengan cakupan Plugin di bawah plugins.entries.<plugin>.config.webSearch.apiKey di-resolve untuk penyedia bawaan Exa, Firecrawl, Gemini, Grok, Kimi, Perplexity, dan Tavily baik ketika penyedia dipilih secara eksplisit melalui tools.web.search.provider maupun dipilih melalui deteksi otomatis. Dalam mode deteksi otomatis, OpenClaw hanya me-resolve key penyedia yang dipilih — SecretRef yang tidak dipilih tetap tidak aktif, sehingga Anda dapat menyimpan banyak penyedia tetap terkonfigurasi tanpa membayar biaya resolusi untuk yang tidak Anda gunakan.

Konfigurasi

{
  tools: {
    web: {
      search: {
        enabled: true, // default: true
        provider: "brave", // atau hilangkan untuk deteksi otomatis
        maxResults: 5,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
      },
    },
  },
}
Konfigurasi khusus penyedia (API key, base URL, mode) berada di bawah plugins.entries.<plugin>.config.webSearch.*. Lihat halaman penyedia untuk contoh. Pemilihan penyedia fallback web_fetch bersifat terpisah:
  • pilih dengan tools.web.fetch.provider
  • atau hilangkan field itu dan biarkan OpenClaw mendeteksi otomatis penyedia web-fetch pertama yang siap dari kredensial yang tersedia
  • saat ini penyedia web-fetch bawaan adalah Firecrawl, dikonfigurasi di bawah plugins.entries.firecrawl.config.webFetch.*
Saat Anda memilih Kimi selama openclaw onboard atau openclaw configure --section web, OpenClaw juga dapat menanyakan:
  • region API Moonshot (https://api.moonshot.ai/v1 atau https://api.moonshot.cn/v1)
  • model pencarian web Kimi default (default ke kimi-k2.6)
Untuk x_search, konfigurasikan plugins.entries.xai.config.xSearch.*. Tool ini menggunakan fallback XAI_API_KEY yang sama seperti pencarian web Grok. Konfigurasi legacy tools.web.x_search.* dimigrasikan otomatis oleh openclaw doctor --fix. Saat Anda memilih Grok selama openclaw onboard atau openclaw configure --section web, OpenClaw juga dapat menawarkan penyiapan x_search opsional dengan key yang sama. Ini adalah langkah lanjutan terpisah di dalam alur Grok, bukan pilihan penyedia pencarian web tingkat atas yang terpisah. Jika Anda memilih penyedia lain, OpenClaw tidak menampilkan prompt x_search.

Menyimpan API key

Jalankan openclaw configure --section web atau setel key secara langsung:
{
  plugins: {
    entries: {
      brave: {
        config: {
          webSearch: {
            apiKey: "YOUR_KEY", // pragma: allowlist secret
          },
        },
      },
    },
  },
}

Parameter tool

ParameterDeskripsi
queryQuery pencarian (wajib)
countHasil yang dikembalikan (1-10, default: 5)
countryKode negara ISO 2 huruf (mis. “US”, “DE”)
languageKode bahasa ISO 639-1 (mis. “en”, “de”)
search_langKode bahasa pencarian (khusus Brave)
freshnessFilter waktu: day, week, month, atau year
date_afterHasil setelah tanggal ini (YYYY-MM-DD)
date_beforeHasil sebelum tanggal ini (YYYY-MM-DD)
ui_langKode bahasa UI (khusus Brave)
domain_filterArray allowlist/denylist domain (khusus Perplexity)
max_tokensTotal anggaran konten, default 25000 (khusus Perplexity)
max_tokens_per_pageBatas token per halaman, default 2048 (khusus Perplexity)
Tidak semua parameter bekerja dengan semua penyedia. Mode llm-context Brave menolak ui_lang, freshness, date_after, dan date_before. Gemini, Grok, dan Kimi mengembalikan satu jawaban hasil sintesis dengan sitasi. Mereka menerima count untuk kompatibilitas tool bersama, tetapi itu tidak mengubah bentuk jawaban yang di-grounding. Perplexity berperilaku sama ketika Anda menggunakan path kompatibilitas Sonar/OpenRouter (plugins.entries.perplexity.config.webSearch.baseUrl / model atau OPENROUTER_API_KEY). SearXNG hanya menerima http:// untuk host jaringan privat tepercaya atau loopback; endpoint SearXNG publik harus menggunakan https://. Firecrawl dan Tavily hanya mendukung query dan count melalui web_search — gunakan tool khusus mereka untuk opsi lanjutan.
x_search melakukan query terhadap postingan X (sebelumnya Twitter) menggunakan xAI dan mengembalikan jawaban hasil sintesis AI dengan sitasi. Tool ini menerima query bahasa alami dan filter terstruktur opsional. OpenClaw hanya mengaktifkan tool bawaan x_search xAI pada permintaan yang melayani pemanggilan tool ini.
xAI mendokumentasikan x_search sebagai mendukung pencarian keyword, pencarian semantik, pencarian pengguna, dan pengambilan thread. Untuk statistik engagement per-post seperti repost, balasan, bookmark, atau view, lebih baik gunakan lookup terarah untuk URL postingan yang tepat atau ID status. Pencarian keyword yang luas mungkin menemukan postingan yang benar tetapi mengembalikan metadata per-post yang kurang lengkap. Pola yang baik adalah: cari postingannya terlebih dahulu, lalu jalankan query x_search kedua yang berfokus pada postingan tepat tersebut.
{
  plugins: {
    entries: {
      xai: {
        config: {
          xSearch: {
            enabled: true,
            model: "grok-4-1-fast-non-reasoning",
            inlineCitations: false,
            maxTurns: 2,
            timeoutSeconds: 30,
            cacheTtlMinutes: 15,
          },
          webSearch: {
            apiKey: "xai-...", // opsional jika `XAI_API_KEY` disetel
          },
        },
      },
    },
  },
}
ParameterDeskripsi
queryQuery pencarian (wajib)
allowed_x_handlesBatasi hasil ke handle X tertentu
excluded_x_handlesKecualikan handle X tertentu
from_dateHanya sertakan postingan pada atau setelah tanggal ini (YYYY-MM-DD)
to_dateHanya sertakan postingan pada atau sebelum tanggal ini (YYYY-MM-DD)
enable_image_understandingBiarkan xAI memeriksa gambar yang dilampirkan pada postingan yang cocok
enable_video_understandingBiarkan xAI memeriksa video yang dilampirkan pada postingan yang cocok
await x_search({
  query: "dinner recipes",
  allowed_x_handles: ["nytfood"],
  from_date: "2026-03-01",
});
// Statistik per-post: gunakan URL status atau ID status yang tepat jika memungkinkan
await x_search({
  query: "https://x.com/huntharo/status/1905678901234567890",
});

Contoh

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

// Pencarian khusus Jerman
await web_search({ query: "TV online schauen", country: "DE", language: "de" });

// Hasil terbaru (seminggu terakhir)
await web_search({ query: "AI developments", freshness: "week" });

// Rentang tanggal
await web_search({
  query: "climate research",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// Pemfilteran domain (khusus Perplexity)
await web_search({
  query: "product reviews",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

Profil tool

Jika Anda menggunakan profil tool atau allowlist, tambahkan web_search, x_search, atau group:web:
{
  tools: {
    allow: ["web_search", "x_search"],
    // atau: allow: ["group:web"]  (mencakup web_search, x_search, dan web_fetch)
  },
}

Terkait

  • Web Fetch — mengambil URL dan mengekstrak konten yang dapat dibaca
  • Web Browser — automasi browser penuh untuk situs yang berat di JS
  • Grok Search — Grok sebagai penyedia web_search
  • Ollama Web Search — pencarian web tanpa key melalui host Ollama Anda