Tools

Websuche

Das Tool web_search durchsucht das Web mit Ihrem konfigurierten Provider und gibt Ergebnisse zurück. Ergebnisse werden pro Abfrage 15 Minuten lang zwischengespeichert (konfigurierbar).

OpenClaw enthält außerdem x_search für Beiträge auf X (früher Twitter) und web_fetch zum einfachen Abrufen von URLs. In dieser Phase bleibt web_fetch lokal, während web_search und x_search intern xAI Responses verwenden können.

Schnellstart

  • Provider auswählen

    Wählen Sie einen Provider aus und schließen Sie alle erforderlichen Einrichtungsschritte ab. Einige Provider kommen ohne Schlüssel aus, während andere API-Schlüssel verwenden. Details finden Sie auf den Provider-Seiten unten.

  • Konfigurieren

    openclaw configure --section web
    

    Dadurch werden der Provider und alle benötigten Anmeldeinformationen gespeichert. Sie können auch eine Env-Variable festlegen (zum Beispiel BRAVE_API_KEY) und diesen Schritt für API-gestützte Provider überspringen.

  • Verwenden

    Der Agent kann jetzt web_search aufrufen:

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

    Verwenden Sie für X-Beiträge:

    await x_search({ query: "dinner recipes" });
    
  • Einen Provider auswählen

    Provider-Vergleich

    Provider Ergebnisstil Filter API-Schlüssel
    Brave Strukturierte Snippets Land, Sprache, Zeit, Modus llm-context BRAVE_API_KEY
    DuckDuckGo Strukturierte Snippets -- Keiner (schlüssellos)
    Exa Strukturiert + extrahiert Neuronaler/Stichwortmodus, Datum, Inhaltsextraktion EXA_API_KEY
    Firecrawl Strukturierte Snippets Über das Tool firecrawl_search FIRECRAWL_API_KEY
    Gemini KI-synthetisiert + Zitate -- GEMINI_API_KEY
    Grok KI-synthetisiert + Zitate -- XAI_API_KEY
    Kimi KI-synthetisiert + Zitate; schlägt bei ungegroundeten Chat-Fallbacks fehl -- KIMI_API_KEY / MOONSHOT_API_KEY
    MiniMax Search Strukturierte Snippets Region (global / cn) MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN
    Ollama Web Search Strukturierte Snippets -- Keiner für angemeldete lokale Hosts; OLLAMA_API_KEY für direkte Suche über https://ollama.com
    Perplexity Strukturierte Snippets Land, Sprache, Zeit, Domains, Inhaltsgrenzen PERPLEXITY_API_KEY / OPENROUTER_API_KEY
    SearXNG Strukturierte Snippets Kategorien, Sprache Keiner (selbst gehostet)
    Tavily Strukturierte Snippets Über das Tool tavily_search TAVILY_API_KEY

    Automatische Erkennung

    Native OpenAI-Websuche

    Direkte OpenAI-Responses-Modelle verwenden automatisch das von OpenAI gehostete Tool web_search, wenn die OpenClaw-Websuche aktiviert ist und kein verwalteter Provider festgelegt wurde. Dieses Verhalten gehört dem Provider im gebündelten OpenAI-Plugin und gilt nur für nativen OpenAI-API-Datenverkehr, nicht für OpenAI-kompatible Proxy-Basis-URLs oder Azure-Routen. Setzen Sie tools.web.search.provider auf einen anderen Provider wie brave, um das verwaltete Tool web_search für OpenAI-Modelle beizubehalten, oder setzen Sie tools.web.search.enabled: false, um sowohl die verwaltete Suche als auch die native OpenAI-Suche zu deaktivieren.

    Native Codex-Websuche

    Codex-fähige Modelle können optional das provider-native Responses-Tool web_search anstelle der von OpenClaw verwalteten Funktion web_search verwenden.

    • Konfigurieren Sie es unter tools.web.search.openaiCodex
    • Es wird nur für Codex-fähige Modelle aktiviert (openai-codex/* oder Provider mit api: "openai-codex-responses")
    • Das verwaltete web_search gilt weiterhin für Nicht-Codex-Modelle
    • mode: "cached" ist die Standardeinstellung und empfohlene Einstellung
    • tools.web.search.enabled: false deaktiviert sowohl die verwaltete als auch die native Suche
    {
      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",
              },
            },
          },
        },
      },
    }
    

    Wenn die native Codex-Suche aktiviert ist, das aktuelle Modell aber nicht Codex-fähig ist, behält OpenClaw das normale verwaltete web_search-Verhalten bei.

    Netzwerksicherheit

    Verwaltete web_search-Provider-Aufrufe verwenden den geschützten Fetch-Pfad von OpenClaw. Für vertrauenswürdige Provider-API-Hosts erlaubt OpenClaw Fake-IP-DNS-Antworten von Surge, Clash und sing-box in 198.18.0.0/15 und fc00::/7 nur für diesen Provider-Hostnamen. Andere private Ziele, loopback-, link-local- und Metadaten-Ziele bleiben blockiert.

    Diese automatische Erlaubnis gilt nicht für beliebige web_fetch-URLs. Aktivieren Sie für web_fetch tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange und tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange nur dann explizit, wenn Ihr vertrauenswürdiger Proxy diese synthetischen Bereiche besitzt.

    Websuche einrichten

    Provider-Listen in der Dokumentation und in Einrichtungsabläufen sind alphabetisch. Die automatische Erkennung behält eine separate Prioritätsreihenfolge bei.

    Wenn kein provider festgelegt ist, prüft OpenClaw die Provider in dieser Reihenfolge und verwendet den ersten, der bereit ist:

    Zuerst API-gestützte Provider:

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

    Danach schlüssellose Fallbacks:

    1. DuckDuckGo -- schlüsselloser HTML-Fallback ohne Konto oder API-Schlüssel (Reihenfolge 100)
    2. Ollama Web Search -- schlüsselloser Fallback über Ihren konfigurierten lokalen Ollama-Host, wenn er erreichbar und mit ollama signin angemeldet ist; kann Ollama-Provider-Bearer-Authentifizierung wiederverwenden, wenn der Host sie benötigt, und kann direkte Suche über https://ollama.com aufrufen, wenn mit OLLAMA_API_KEY konfiguriert (Reihenfolge 110)
    3. SearXNG -- SEARXNG_BASE_URL oder plugins.entries.searxng.config.webSearch.baseUrl (Reihenfolge 200)

    Wenn kein Provider erkannt wird, fällt die Auswahl auf Brave zurück (Sie erhalten einen Fehler wegen fehlendem Schlüssel, der Sie zur Konfiguration auffordert).

    Konfiguration

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

    Provider-spezifische Konfiguration (API-Schlüssel, Basis-URLs, Modi) befindet sich unter plugins.entries.<plugin>.config.webSearch.*. Gemini kann außerdem models.providers.google.apiKey und models.providers.google.baseUrl als nachrangige Fallbacks nach seiner dedizierten Websuche-Konfiguration und GEMINI_API_KEY wiederverwenden. Beispiele finden Sie auf den Provider-Seiten.

    tools.web.search.provider wird gegen die Websuche-Provider-IDs validiert, die von gebündelten und installierten Plugin-Manifesten sowie bekannten installierbaren Provider-Plugins deklariert werden. Ein Tippfehler wie "brvae" führt zu einem Fehler bei der Konfigurationsvalidierung, statt stillschweigend auf die automatische Erkennung zurückzufallen. Wenn der konfigurierte Provider bekannt ist, aber das zugehörige Plugin nicht verfügbar ist, bleibt der Start von OpenClaw robust und meldet eine Warnung, damit Sie openclaw doctor --fix ausführen können, um das Plugin zu installieren oder zu aktivieren. Dasselbe Warnverhalten gilt für veraltete Plugin-Hinweise, etwa einen übrig gebliebenen plugins.entries.<plugin>-Block nach der Deinstallation eines Drittanbieter-Plugins.

    Die Auswahl des web_fetch-Fallback-Providers ist separat:

    • wählen Sie ihn mit tools.web.fetch.provider
    • oder lassen Sie dieses Feld weg und lassen Sie OpenClaw den ersten bereiten Web-Fetch-Provider aus den verfügbaren Zugangsdaten automatisch erkennen
    • nicht sandboxed web_fetch kann installierte Plugin-Provider verwenden, die contracts.webFetchProviders deklarieren; sandboxed Abrufe bleiben auf gebündelte Provider beschränkt
    • derzeit ist der gebündelte Web-Fetch-Provider Firecrawl, konfiguriert unter plugins.entries.firecrawl.config.webFetch.*

    Wenn Sie während openclaw onboard oder openclaw configure --section web Kimi wählen, kann OpenClaw außerdem nach Folgendem fragen:

    • der Moonshot-API-Region (https://api.moonshot.ai/v1 oder https://api.moonshot.cn/v1)
    • dem Standardmodell für die Kimi-Websuche (Standard: kimi-k2.6)

    Für x_search konfigurieren Sie plugins.entries.xai.config.xSearch.*. Es verwendet denselben XAI_API_KEY-Fallback wie die Grok-Websuche. Die ältere tools.web.x_search.*-Konfiguration wird von openclaw doctor --fix automatisch migriert. Wenn Sie während openclaw onboard oder openclaw configure --section web Grok wählen, kann OpenClaw außerdem eine optionale x_search-Einrichtung mit demselben Schlüssel anbieten. Dies ist ein separater Folgeschritt innerhalb des Grok-Pfads, keine separate Auswahl eines übergeordneten Websuche-Providers. Wenn Sie einen anderen Provider auswählen, zeigt OpenClaw die x_search-Eingabeaufforderung nicht an.

    API-Schlüssel speichern

    Config file

    Führen Sie openclaw configure --section web aus oder setzen Sie den Schlüssel direkt:

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

    Environment variable

    Setzen Sie die Provider-Umgebungsvariable in der Prozessumgebung des Gateway:

    export BRAVE_API_KEY="YOUR_KEY"
    

    Für eine Gateway-Installation legen Sie sie in ~/.openclaw/.env ab. Siehe Umgebungsvariablen.

    Tool-Parameter

    Parameter Beschreibung
    query Suchanfrage (erforderlich)
    count Zurückzugebende Ergebnisse (1-10, Standard: 5)
    country Zweibuchstabiger ISO-Ländercode (z. B. "US", "DE")
    language Sprachcode nach ISO 639-1 (z. B. "en", "de")
    search_lang Suchsprachencode (nur Brave)
    freshness Zeitfilter: day, week, month oder year
    date_after Ergebnisse nach diesem Datum (YYYY-MM-DD)
    date_before Ergebnisse vor diesem Datum (YYYY-MM-DD)
    ui_lang UI-Sprachcode (nur Brave)
    domain_filter Domain-Allowlist/Denylist-Array (nur Perplexity)
    max_tokens Gesamtbudget für Inhalte, Standard 25000 (nur Perplexity)
    max_tokens_per_page Token-Limit pro Seite, Standard 2048 (nur Perplexity)

    x_search fragt X-Beiträge (früher Twitter) über xAI ab und gibt KI-synthetisierte Antworten mit Quellenangaben zurück. Es akzeptiert natürlichsprachliche Abfragen und optionale strukturierte Filter. OpenClaw aktiviert das integrierte xAI-Tool x_search nur für die Anfrage, die diesen Tool-Aufruf bedient.

    x_search-Konfiguration

    {
      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 postet an <baseUrl>/responses, wenn plugins.entries.xai.config.xSearch.baseUrl gesetzt ist. Wenn dieses Feld weggelassen wird, fällt es auf plugins.entries.xai.config.webSearch.baseUrl, dann auf die ältere tools.web.search.grok.baseUrl und schließlich auf den öffentlichen xAI-Endpunkt zurück.

    x_search-Parameter

    Parameter Beschreibung
    query Suchanfrage (erforderlich)
    allowed_x_handles Ergebnisse auf bestimmte X-Handles beschränken
    excluded_x_handles Bestimmte X-Handles ausschließen
    from_date Nur Beiträge an oder nach diesem Datum einschließen (YYYY-MM-DD)
    to_date Nur Beiträge an oder vor diesem Datum einschließen (YYYY-MM-DD)
    enable_image_understanding xAI Bilder prüfen lassen, die passenden Beiträgen angehängt sind
    enable_video_understanding xAI Videos prüfen lassen, die passenden Beiträgen angehängt sind

    x_search-Beispiel

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

    Beispiele

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

    Tool-Profile

    Wenn Sie Tool-Profile oder Allowlists verwenden, fügen Sie web_search, x_search oder group:web hinzu:

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

    Verwandte Themen

    • Web Fetch -- eine URL abrufen und lesbaren Inhalt extrahieren
    • Web Browser -- vollständige Browserautomatisierung für JS-lastige Websites
    • Grok-Suche -- Grok als web_search-Provider
    • Ollama-Websuche -- schlüsselfreie Websuche über Ihren Ollama-Host