Tools

Zoeken op het web

De tool web_search doorzoekt het web met je geconfigureerde provider en retourneert resultaten. Resultaten worden per query 15 minuten gecachet (configureerbaar).

OpenClaw bevat ook x_search voor X-posts (voorheen Twitter) en web_fetch voor lichte URL-fetching. In deze fase blijft web_fetch lokaal, terwijl web_search en x_search onder de motorkap xAI Responses kunnen gebruiken.

Snelstart

  • Kies een provider

    Kies een provider en voltooi eventuele vereiste configuratie. Sommige providers zijn sleutelvrij, terwijl andere API-sleutels gebruiken. Zie de providerpagina's hieronder voor details.

  • Configureer

    openclaw configure --section web
    

    Hiermee worden de provider en eventuele benodigde inloggegevens opgeslagen. Je kunt ook een env var instellen (bijvoorbeeld BRAVE_API_KEY) en deze stap overslaan voor providers met API-ondersteuning.

  • Gebruik het

    De agent kan nu web_search aanroepen:

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

    Gebruik voor X-posts:

    await x_search({ query: "dinner recipes" });
    
  • Een provider kiezen

    Providervergelijking

    Provider Resultaatstijl Filters API-sleutel
    Brave Gestructureerde snippets Land, taal, tijd, llm-context-modus BRAVE_API_KEY
    DuckDuckGo Gestructureerde snippets -- Geen (sleutelvrij)
    Exa Gestructureerd + geëxtraheerd Neurale/trefwoordmodus, datum, contentextractie EXA_API_KEY
    Firecrawl Gestructureerde snippets Via de tool firecrawl_search FIRECRAWL_API_KEY
    Gemini AI-gesynthetiseerd + citaties -- GEMINI_API_KEY
    Grok AI-gesynthetiseerd + citaties -- XAI_API_KEY
    Kimi AI-gesynthetiseerd + citaties; mislukt bij ongegronde chatfallbacks -- KIMI_API_KEY / MOONSHOT_API_KEY
    MiniMax Search Gestructureerde snippets Regio (global / cn) MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN
    Ollama Web Search Gestructureerde snippets -- Geen voor aangemelde lokale hosts; OLLAMA_API_KEY voor directe https://ollama.com-zoekopdrachten
    Perplexity Gestructureerde snippets Land, taal, tijd, domeinen, contentlimieten PERPLEXITY_API_KEY / OPENROUTER_API_KEY
    SearXNG Gestructureerde snippets Categorieën, taal Geen (zelfgehost)
    Tavily Gestructureerde snippets Via de tool tavily_search TAVILY_API_KEY

    Automatische detectie

    Native OpenAI-webzoekfunctie

    Directe OpenAI Responses-modellen gebruiken automatisch de gehoste OpenAI-tool web_search wanneer OpenClaw-webzoekfunctie is ingeschakeld en er geen beheerde provider is vastgezet. Dit is provider-eigen gedrag in de gebundelde OpenAI-plugin en is alleen van toepassing op native OpenAI API-verkeer, niet op OpenAI-compatibele proxybasis-URL's of Azure-routes. Stel tools.web.search.provider in op een andere provider, zoals brave, om de beheerde tool web_search voor OpenAI-modellen te behouden, of stel tools.web.search.enabled: false in om zowel beheerde zoekfunctie als native OpenAI-zoekfunctie uit te schakelen.

    Native Codex-webzoekfunctie

    Codex-compatibele modellen kunnen optioneel de provider-native Responses-tool web_search gebruiken in plaats van OpenClaws beheerde functie web_search.

    • Configureer dit onder tools.web.search.openaiCodex
    • Het wordt alleen geactiveerd voor Codex-compatibele modellen (openai-codex/* of providers die api: "openai-codex-responses" gebruiken)
    • Beheerde web_search blijft van toepassing op niet-Codex-modellen
    • mode: "cached" is de standaardinstelling en aanbevolen instelling
    • tools.web.search.enabled: false schakelt zowel beheerde als native zoekfunctie uit
    {
      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",
              },
            },
          },
        },
      },
    }
    

    Als native Codex-zoekfunctie is ingeschakeld maar het huidige model niet Codex-compatibel is, behoudt OpenClaw het normale beheerde web_search-gedrag.

    Netwerkveiligheid

    Beheerde web_search-provideraanroepen gebruiken OpenClaws beveiligde fetch-pad. Voor vertrouwde provider-API-hosts staat OpenClaw Surge-, Clash- en sing-box-fake-IP DNS-antwoorden in 198.18.0.0/15 en fc00::/7 alleen toe voor die providerhostnaam. Andere private, loopback-, link-local- en metadatabestemmingen blijven geblokkeerd.

    Deze automatische toestaan-regel is niet van toepassing op willekeurige web_fetch-URL's. Schakel voor web_fetch tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange en tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange expliciet alleen in wanneer je vertrouwde proxy eigenaar is van die synthetische bereiken.

    Webzoekfunctie instellen

    Providerlijsten in docs en configuratiestromen zijn alfabetisch. Automatische detectie hanteert een aparte prioriteitsvolgorde.

    Als er geen provider is ingesteld, controleert OpenClaw providers in deze volgorde en gebruikt het de eerste die gereed is:

    Eerst providers met API-ondersteuning:

    1. Brave -- BRAVE_API_KEY of plugins.entries.brave.config.webSearch.apiKey (volgorde 10)
    2. MiniMax Search -- MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEY of plugins.entries.minimax.config.webSearch.apiKey (volgorde 15)
    3. Gemini -- plugins.entries.google.config.webSearch.apiKey, GEMINI_API_KEY of models.providers.google.apiKey (volgorde 20)
    4. Grok -- XAI_API_KEY of plugins.entries.xai.config.webSearch.apiKey (volgorde 30)
    5. Kimi -- KIMI_API_KEY / MOONSHOT_API_KEY of plugins.entries.moonshot.config.webSearch.apiKey (volgorde 40)
    6. Perplexity -- PERPLEXITY_API_KEY / OPENROUTER_API_KEY of plugins.entries.perplexity.config.webSearch.apiKey (volgorde 50)
    7. Firecrawl -- FIRECRAWL_API_KEY of plugins.entries.firecrawl.config.webSearch.apiKey (volgorde 60)
    8. Exa -- EXA_API_KEY of plugins.entries.exa.config.webSearch.apiKey; optioneel overschrijft plugins.entries.exa.config.webSearch.baseUrl het Exa-eindpunt (volgorde 65)
    9. Tavily -- TAVILY_API_KEY of plugins.entries.tavily.config.webSearch.apiKey (volgorde 70)

    Daarna sleutelvrije fallbacks:

    1. DuckDuckGo -- sleutelvrije HTML-fallback zonder account of API-sleutel (volgorde 100)
    2. Ollama Web Search -- sleutelvrije fallback via je geconfigureerde lokale Ollama-host wanneer die bereikbaar en aangemeld is met ollama signin; kan Ollama-providerbearer-auth hergebruiken wanneer de host die nodig heeft, en kan directe https://ollama.com-zoekopdrachten uitvoeren wanneer geconfigureerd met OLLAMA_API_KEY (volgorde 110)
    3. SearXNG -- SEARXNG_BASE_URL of plugins.entries.searxng.config.webSearch.baseUrl (volgorde 200)

    Als er geen provider wordt gedetecteerd, valt het terug op Brave (je krijgt dan een fout over een ontbrekende sleutel die je vraagt er een te configureren).

    Config

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

    Providerspecifieke configuratie (API-sleutels, basis-URL's, modi) staat onder plugins.entries.<plugin>.config.webSearch.*. Gemini kan ook models.providers.google.apiKey en models.providers.google.baseUrl hergebruiken als fallbacks met lagere prioriteit na de eigen webzoekconfiguratie en GEMINI_API_KEY. Zie de providerpagina's voor voorbeelden.

    tools.web.search.provider wordt gevalideerd tegen de ids van webzoekproviders die zijn gedeclareerd door meegeleverde en geïnstalleerde Plugin-manifesten, plus bekende installeerbare providerplugins. Een typefout zoals "brvae" zorgt ervoor dat de configuratievalidatie mislukt in plaats van stil terug te vallen op automatische detectie. Als de geconfigureerde provider bekend is maar de bijbehorende Plugin niet beschikbaar is, houdt OpenClaw het opstarten robuust en meldt het een waarschuwing zodat je openclaw doctor --fix kunt uitvoeren om de Plugin te installeren of in te schakelen. Hetzelfde waarschuwingsgedrag geldt voor verouderd Plugin-bewijs, zoals een achtergebleven plugins.entries.<plugin>-blok na het verwijderen van een externe Plugin.

    Selectie van fallbackprovider voor web_fetch staat los hiervan:

    • kies deze met tools.web.fetch.provider
    • of laat dat veld weg en laat OpenClaw automatisch de eerste gereedstaande web-fetch-provider detecteren op basis van beschikbare referenties
    • web_fetch zonder sandbox kan geïnstalleerde Plugin-providers gebruiken die contracts.webFetchProviders declareren; fetches met sandbox blijven uitsluitend meegeleverd
    • momenteel is de meegeleverde web-fetch-provider Firecrawl, geconfigureerd onder plugins.entries.firecrawl.config.webFetch.*

    Wanneer je Kimi kiest tijdens openclaw onboard of openclaw configure --section web, kan OpenClaw ook vragen om:

    • de Moonshot API-regio (https://api.moonshot.ai/v1 of https://api.moonshot.cn/v1)
    • het standaardmodel voor Kimi-webzoeken (standaard kimi-k2.6)

    Configureer voor x_search plugins.entries.xai.config.xSearch.*. Het gebruikt dezelfde XAI_API_KEY-fallback als Grok-webzoekopdrachten. Verouderde tools.web.x_search.*-configuratie wordt automatisch gemigreerd door openclaw doctor --fix. Wanneer je Grok kiest tijdens openclaw onboard of openclaw configure --section web, kan OpenClaw ook optionele x_search-configuratie aanbieden met dezelfde sleutel. Dit is een aparte vervolgstap binnen het Grok-pad, niet een aparte providerkeuze op topniveau voor webzoeken. Als je een andere provider kiest, toont OpenClaw de x_search-prompt niet.

    API-sleutels opslaan

    Configuratiebestand

    Voer openclaw configure --section web uit of stel de sleutel rechtstreeks in:

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

    Omgevingsvariabele

    Stel de provider-env-var in de procesomgeving van de Gateway in:

    export BRAVE_API_KEY="YOUR_KEY"
    

    Voor een Gateway-installatie plaats je deze in ~/.openclaw/.env. Zie Env-vars.

    Toolparameters

    Parameter Beschrijving
    query Zoekquery (vereist)
    count Te retourneren resultaten (1-10, standaard: 5)
    country 2-letterige ISO-landcode (bijv. "US", "DE")
    language ISO 639-1-taalcode (bijv. "en", "de")
    search_lang Zoektaalcode (alleen Brave)
    freshness Tijdfilter: day, week, month of year
    date_after Resultaten na deze datum (YYYY-MM-DD)
    date_before Resultaten vóór deze datum (YYYY-MM-DD)
    ui_lang UI-taalcode (alleen Brave)
    domain_filter Domein-allowlist/denylist-array (alleen Perplexity)
    max_tokens Totaal inhoudsbudget, standaard 25000 (alleen Perplexity)
    max_tokens_per_page Tokenlimiet per pagina, standaard 2048 (alleen Perplexity)

    x_search doorzoekt X-berichten (voorheen Twitter) met xAI en retourneert door AI gesynthetiseerde antwoorden met citaties. Het accepteert query's in natuurlijke taal en optionele gestructureerde filters. OpenClaw schakelt de ingebouwde xAI-x_search- tool alleen in voor de aanvraag die deze toolaanroep bedient.

    x_search-configuratie

    {
      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 naar <baseUrl>/responses wanneer plugins.entries.xai.config.xSearch.baseUrl is ingesteld. Als dat veld is weggelaten, valt het terug op plugins.entries.xai.config.webSearch.baseUrl, vervolgens op de verouderde tools.web.search.grok.baseUrl en ten slotte op het openbare xAI-eindpunt.

    x_search-parameters

    Parameter Beschrijving
    query Zoekquery (vereist)
    allowed_x_handles Beperk resultaten tot specifieke X-handles
    excluded_x_handles Sluit specifieke X-handles uit
    from_date Neem alleen berichten op van of na deze datum (YYYY-MM-DD)
    to_date Neem alleen berichten op van of vóór deze datum (YYYY-MM-DD)
    enable_image_understanding Laat xAI afbeeldingen inspecteren die aan overeenkomende berichten zijn gekoppeld
    enable_video_understanding Laat xAI video's inspecteren die aan overeenkomende berichten zijn gekoppeld

    x_search-voorbeeld

    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",
    });
    

    Voorbeelden

    // 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"],
    });
    

    Toolprofielen

    Als je toolprofielen of allowlists gebruikt, voeg dan web_search, x_search of group:web toe:

    {
      tools: {
        allow: ["web_search", "x_search"],
        // or: allow: ["group:web"]  (includes web_search, x_search, and web_fetch)
      },
    }
    

    Gerelateerd