Przejdź do głównej treści

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Narzędzie web_search przeszukuje internet przy użyciu skonfigurowanego dostawcy i zwraca wyniki. Wyniki są buforowane według zapytania przez 15 minut (można to skonfigurować). OpenClaw zawiera też x_search dla wpisów z X (dawniej Twitter) oraz web_fetch do lekkiego pobierania URL-i. W tej fazie web_fetch pozostaje lokalne, a web_search i x_search mogą używać xAI Responses pod spodem.
web_search to lekkie narzędzie HTTP, a nie automatyzacja przeglądarki. W przypadku stron mocno opartych na JS lub logowań użyj przeglądarki internetowej. Do pobierania konkretnego URL-a użyj Web Fetch.

Szybki start

1

Wybierz dostawcę

Wybierz dostawcę i wykonaj wymaganą konfigurację. Niektórzy dostawcy są bez klucza, a inni używają kluczy API. Szczegóły znajdziesz na stronach dostawców poniżej.
2

Skonfiguruj

openclaw configure --section web
To zapisuje dostawcę i wszelkie potrzebne dane uwierzytelniające. Możesz także ustawić zmienną środowiskową (na przykład BRAVE_API_KEY) i pominąć ten krok dla dostawców opartych na API.
3

Użyj

Agent może teraz wywołać web_search:
await web_search({ query: "OpenClaw plugin SDK" });
Dla wpisów z X użyj:
await x_search({ query: "dinner recipes" });

Wybór dostawcy

Brave Search

Ustrukturyzowane wyniki z fragmentami. Obsługuje tryb llm-context oraz filtry kraju/języka. Dostępny bezpłatny poziom.

DuckDuckGo

Awaryjna opcja bez klucza. Klucz API nie jest potrzebny. Nieoficjalna integracja oparta na HTML.

Exa

Wyszukiwanie neuronowe + słowne z ekstrakcją treści (wyróżnienia, tekst, podsumowania).

Firecrawl

Ustrukturyzowane wyniki. Najlepiej łączyć z firecrawl_search i firecrawl_scrape do głębokiej ekstrakcji.

Gemini

Odpowiedzi syntetyzowane przez AI z cytowaniami przez ugruntowanie w Google Search.

Grok

Odpowiedzi syntetyzowane przez AI z cytowaniami przez ugruntowanie internetowe xAI.

Kimi

Odpowiedzi syntetyzowane przez AI z cytowaniami przez wyszukiwanie internetowe Moonshot; nieugruntowane awaryjne odpowiedzi czatu jawnie kończą się błędem.

MiniMax Search

Ustrukturyzowane wyniki przez API wyszukiwania MiniMax Token Plan.

Ollama Web Search

Wyszukiwanie przez zalogowanego lokalnego hosta Ollama lub hostowane API Ollama.

Perplexity

Ustrukturyzowane wyniki z kontrolkami ekstrakcji treści i filtrowaniem domen.

SearXNG

Samodzielnie hostowane metawyszukiwanie. Klucz API nie jest potrzebny. Agreguje Google, Bing, DuckDuckGo i inne.

Tavily

Ustrukturyzowane wyniki z głębokością wyszukiwania, filtrowaniem tematów i tavily_extract do ekstrakcji URL-i.

Porównanie dostawców

DostawcaStyl wynikówFiltryKlucz API
BraveUstrukturyzowane fragmentyKraj, język, czas, tryb llm-contextBRAVE_API_KEY
DuckDuckGoUstrukturyzowane fragmentyBrak (bez klucza)
ExaUstrukturyzowane + wyodrębnioneTryb neuronowy/słowny, data, ekstrakcja treściEXA_API_KEY
FirecrawlUstrukturyzowane fragmentyPrzez narzędzie firecrawl_searchFIRECRAWL_API_KEY
GeminiSyntetyzowane przez AI + cytowaniaGEMINI_API_KEY
GrokSyntetyzowane przez AI + cytowaniaXAI_API_KEY
KimiSyntetyzowane przez AI + cytowania; kończy się błędem przy nieugruntowanych awaryjnych odpowiedziach czatuKIMI_API_KEY / MOONSHOT_API_KEY
MiniMax SearchUstrukturyzowane fragmentyRegion (global / cn)MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN
Ollama Web SearchUstrukturyzowane fragmentyBrak dla zalogowanych lokalnych hostów; OLLAMA_API_KEY dla bezpośredniego wyszukiwania https://ollama.com
PerplexityUstrukturyzowane fragmentyKraj, język, czas, domeny, limity treściPERPLEXITY_API_KEY / OPENROUTER_API_KEY
SearXNGUstrukturyzowane fragmentyKategorie, językBrak (samodzielnie hostowane)
TavilyUstrukturyzowane fragmentyPrzez narzędzie tavily_searchTAVILY_API_KEY

Automatyczne wykrywanie

Natywne wyszukiwanie internetowe OpenAI

Bezpośrednie modele OpenAI Responses automatycznie używają hostowanego przez OpenAI narzędzia web_search, gdy wyszukiwanie internetowe OpenClaw jest włączone i nie przypięto żadnego zarządzanego dostawcy. Jest to zachowanie należące do dostawcy w dołączonym Plugin OpenAI i dotyczy tylko natywnego ruchu OpenAI API, a nie zgodnych z OpenAI bazowych URL-i proxy ani tras Azure. Ustaw tools.web.search.provider na innego dostawcę, takiego jak brave, aby zachować zarządzane narzędzie web_search dla modeli OpenAI, albo ustaw tools.web.search.enabled: false, aby wyłączyć zarówno zarządzane wyszukiwanie, jak i natywne wyszukiwanie OpenAI.

Natywne wyszukiwanie internetowe Codex

Modele obsługujące Codex mogą opcjonalnie używać natywnego dla dostawcy narzędzia Responses web_search zamiast zarządzanej funkcji OpenClaw web_search.
  • Skonfiguruj je pod tools.web.search.openaiCodex
  • Aktywuje się tylko dla modeli obsługujących Codex (openai-codex/* lub dostawców używających api: "openai-codex-responses")
  • Zarządzane web_search nadal dotyczy modeli innych niż Codex
  • mode: "cached" jest ustawieniem domyślnym i zalecanym
  • tools.web.search.enabled: false wyłącza zarówno zarządzane, jak i natywne wyszukiwanie
{
  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",
          },
        },
      },
    },
  },
}
Jeśli natywne wyszukiwanie Codex jest włączone, ale bieżący model nie obsługuje Codex, OpenClaw zachowuje normalne zarządzane zachowanie web_search.

Bezpieczeństwo sieci

Zarządzane wywołania dostawcy web_search używają chronionej ścieżki pobierania OpenClaw. Dla zaufanych hostów API dostawców OpenClaw zezwala na odpowiedzi DNS fake-IP Surge, Clash i sing-box w 198.18.0.0/15 oraz fc00::/7 tylko dla tej nazwy hosta dostawcy. Inne prywatne, loopback, link-local i metadane docelowe pozostają zablokowane. To automatyczne zezwolenie nie dotyczy dowolnych URL-i web_fetch. Dla web_fetch włącz tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange i tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange jawnie tylko wtedy, gdy zaufane proxy jest właścicielem tych syntetycznych zakresów.

Konfigurowanie wyszukiwania internetowego

Listy dostawców w dokumentacji i przepływach konfiguracji są alfabetyczne. Automatyczne wykrywanie utrzymuje oddzielną kolejność pierwszeństwa. Jeśli nie ustawiono provider, OpenClaw sprawdza dostawców w tej kolejności i używa pierwszego gotowego: Najpierw dostawcy oparci na API:
  1. BraveBRAVE_API_KEY lub plugins.entries.brave.config.webSearch.apiKey (kolejność 10)
  2. MiniMax SearchMINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEY lub plugins.entries.minimax.config.webSearch.apiKey (kolejność 15)
  3. Geminiplugins.entries.google.config.webSearch.apiKey, GEMINI_API_KEY lub models.providers.google.apiKey (kolejność 20)
  4. GrokXAI_API_KEY lub plugins.entries.xai.config.webSearch.apiKey (kolejność 30)
  5. KimiKIMI_API_KEY / MOONSHOT_API_KEY lub plugins.entries.moonshot.config.webSearch.apiKey (kolejność 40)
  6. PerplexityPERPLEXITY_API_KEY / OPENROUTER_API_KEY lub plugins.entries.perplexity.config.webSearch.apiKey (kolejność 50)
  7. FirecrawlFIRECRAWL_API_KEY lub plugins.entries.firecrawl.config.webSearch.apiKey (kolejność 60)
  8. ExaEXA_API_KEY lub plugins.entries.exa.config.webSearch.apiKey; opcjonalne plugins.entries.exa.config.webSearch.baseUrl zastępuje punkt końcowy Exa (kolejność 65)
  9. TavilyTAVILY_API_KEY lub plugins.entries.tavily.config.webSearch.apiKey (kolejność 70)
Następnie awaryjne opcje bez klucza:
  1. DuckDuckGo — awaryjna opcja HTML bez klucza, bez konta ani klucza API (kolejność 100)
  2. Ollama Web Search — awaryjna opcja bez klucza przez skonfigurowanego lokalnego hosta Ollama, gdy jest osiągalny i zalogowany przez ollama signin; może ponownie używać uwierzytelniania bearer dostawcy Ollama, gdy host go potrzebuje, i może wywoływać bezpośrednie wyszukiwanie https://ollama.com, gdy skonfigurowano OLLAMA_API_KEY (kolejność 110)
  3. SearXNGSEARXNG_BASE_URL lub plugins.entries.searxng.config.webSearch.baseUrl (kolejność 200)
Jeśli nie wykryto żadnego dostawcy, nastąpi powrót do Brave (otrzymasz błąd brakującego klucza z prośbą o skonfigurowanie go).
Wszystkie pola kluczy dostawców obsługują obiekty SecretRef. SecretRef-y o zakresie Plugin pod plugins.entries.<plugin>.config.webSearch.apiKey są rozwiązywane dla dołączonych dostawców wyszukiwania internetowego opartych na API, w tym Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax, Perplexity i Tavily, niezależnie od tego, czy dostawca zostanie wybrany jawnie przez tools.web.search.provider, czy wybrany przez automatyczne wykrywanie. W trybie automatycznego wykrywania OpenClaw rozwiązuje tylko klucz wybranego dostawcy — niewybrane SecretRef-y pozostają nieaktywne, więc możesz mieć skonfigurowanych wielu dostawców bez ponoszenia kosztu rozwiązywania dla tych, których nie używasz.

Konfiguracja

{
  tools: {
    web: {
      search: {
        enabled: true, // default: true
        provider: "brave", // or omit for auto-detection
        maxResults: 5,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
      },
    },
  },
}
Konfiguracja specyficzna dla dostawcy (klucze API, bazowe adresy URL, tryby) znajduje się pod plugins.entries.<plugin>.config.webSearch.*. Gemini może także ponownie używać models.providers.google.apiKey oraz models.providers.google.baseUrl jako zapasowych opcji o niższym priorytecie po dedykowanej konfiguracji wyszukiwania w sieci i GEMINI_API_KEY. Przykłady znajdziesz na stronach dostawców. tools.web.search.provider jest sprawdzane względem identyfikatorów dostawców wyszukiwania w sieci zadeklarowanych w manifestach dołączonych i zainstalowanych pluginów. Literówka taka jak "brvae" powoduje błąd walidacji konfiguracji zamiast cichego powrotu do automatycznego wykrywania. Jeśli skonfigurowany dostawca ma tylko nieaktualny dowód pluginu, na przykład pozostały blok plugins.entries.<plugin> po odinstalowaniu pluginu innej firmy, OpenClaw zachowuje odporność uruchamiania i zgłasza ostrzeżenie, aby można było ponownie zainstalować plugin albo uruchomić openclaw doctor --fix, aby wyczyścić nieaktualną konfigurację. Wybór dostawcy zapasowego dla web_fetch jest osobny:
  • wybierz go przez tools.web.fetch.provider
  • albo pomiń to pole i pozwól OpenClaw automatycznie wykryć pierwszego gotowego dostawcę pobierania z sieci na podstawie dostępnych poświadczeń
  • web_fetch poza piaskownicą może używać zainstalowanych dostawców pluginów deklarujących contracts.webFetchProviders; pobieranie w piaskownicy pozostaje ograniczone do dołączonych dostawców
  • obecnie dołączonym dostawcą pobierania z sieci jest Firecrawl, skonfigurowany pod plugins.entries.firecrawl.config.webFetch.*
Gdy wybierzesz Kimi podczas openclaw onboard albo openclaw configure --section web, OpenClaw może także zapytać o:
  • region API Moonshot (https://api.moonshot.ai/v1 albo https://api.moonshot.cn/v1)
  • domyślny model wyszukiwania w sieci Kimi (domyślnie kimi-k2.6)
Dla x_search skonfiguruj plugins.entries.xai.config.xSearch.*. Używa tego samego profilu uwierzytelniania xAI co czat albo XAI_API_KEY / poświadczenia wyszukiwania w sieci pluginu używanego przez wyszukiwanie w sieci Grok. Starsza konfiguracja tools.web.x_search.* jest automatycznie migrowana przez openclaw doctor --fix. Gdy wybierzesz Grok podczas openclaw onboard albo openclaw configure --section web, OpenClaw może także zaproponować opcjonalną konfigurację x_search z tym samym kluczem. To osobny kolejny krok w ścieżce Grok, a nie osobny wybór dostawcy wyszukiwania w sieci na najwyższym poziomie. Jeśli wybierzesz innego dostawcę, OpenClaw nie pokaże monitu x_search.

Przechowywanie kluczy API

Uruchom openclaw configure --section web albo ustaw klucz bezpośrednio:
{
  plugins: {
    entries: {
      brave: {
        config: {
          webSearch: {
            apiKey: "YOUR_KEY", // pragma: allowlist secret
          },
        },
      },
    },
  },
}

Parametry narzędzia

ParametrOpis
queryZapytanie wyszukiwania (wymagane)
countLiczba wyników do zwrócenia (1-10, domyślnie: 5)
country2-literowy kod kraju ISO (np. “US”, “DE”)
languageKod języka ISO 639-1 (np. “en”, “de”)
search_langKod języka wyszukiwania (tylko Brave)
freshnessFiltr czasu: day, week, month albo year
date_afterWyniki po tej dacie (YYYY-MM-DD)
date_beforeWyniki przed tą datą (YYYY-MM-DD)
ui_langKod języka interfejsu użytkownika (tylko Brave)
domain_filterTablica listy dozwolonych/zablokowanych domen (tylko Perplexity)
max_tokensCałkowity budżet treści, domyślnie 25000 (tylko Perplexity)
max_tokens_per_pageLimit tokenów na stronę, domyślnie 2048 (tylko Perplexity)
Nie wszystkie parametry działają ze wszystkimi dostawcami. Tryb llm-context Brave odrzuca ui_lang; date_before wymaga także date_after, ponieważ niestandardowe zakresy świeżości Brave wymagają zarówno daty początkowej, jak i końcowej. Gemini, Grok i Kimi zwracają jedną syntetyzowaną odpowiedź z cytowaniami. Akceptują count dla zgodności ze współdzielonym narzędziem, ale nie zmienia to kształtu odpowiedzi opartej na źródłach. Gemini obsługuje freshness, date_after i date_before, konwertując je na zakresy czasu ugruntowania Google Search. Perplexity zachowuje się tak samo, gdy używasz ścieżki zgodności Sonar/OpenRouter (plugins.entries.perplexity.config.webSearch.baseUrl / model albo OPENROUTER_API_KEY). SearXNG akceptuje http:// tylko dla zaufanych hostów sieci prywatnej lub local loopback; publiczne punkty końcowe SearXNG muszą używać https://. Firecrawl i Tavily obsługują tylko query i count przez web_search — w przypadku zaawansowanych opcji użyj ich dedykowanych narzędzi.
x_search odpytuje wpisy X (dawniej Twitter) przy użyciu xAI i zwraca odpowiedzi syntetyzowane przez AI z cytowaniami. Akceptuje zapytania w języku naturalnym oraz opcjonalne filtry strukturalne. OpenClaw włącza wbudowane narzędzie xAI x_search tylko dla żądania obsługującego to wywołanie narzędzia.
xAI dokumentuje x_search jako obsługujące wyszukiwanie słów kluczowych, wyszukiwanie semantyczne, wyszukiwanie użytkowników i pobieranie wątków. W przypadku statystyk zaangażowania dla pojedynczych wpisów, takich jak reposty, odpowiedzi, zakładki czy wyświetlenia, preferuj ukierunkowane wyszukanie dokładnego adresu URL wpisu albo identyfikatora statusu. Szerokie wyszukiwania słów kluczowych mogą znaleźć właściwy wpis, ale zwrócić mniej kompletne metadane dla pojedynczego wpisu. Dobry wzorzec to: najpierw zlokalizuj wpis, a następnie uruchom drugie zapytanie x_search skupione na tym konkretnym wpisie.
{
  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 wysyła wpisy do <baseUrl>/responses, gdy plugins.entries.xai.config.xSearch.baseUrl jest ustawione. Jeśli to pole zostanie pominięte, następuje powrót do plugins.entries.xai.config.webSearch.baseUrl, następnie do starszego tools.web.search.grok.baseUrl, a na końcu do publicznego punktu końcowego xAI.
ParametrOpis
queryZapytanie wyszukiwania (wymagane)
allowed_x_handlesOgranicz wyniki do określonych uchwytów X
excluded_x_handlesWyklucz określone uchwyty X
from_dateUwzględnij tylko wpisy z tej daty lub późniejsze (YYYY-MM-DD)
to_dateUwzględnij tylko wpisy z tej daty lub wcześniejsze (YYYY-MM-DD)
enable_image_understandingPozwól xAI analizować obrazy dołączone do pasujących wpisów
enable_video_understandingPozwól xAI analizować filmy dołączone do pasujących wpisów
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",
});

Przykłady

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

Profile narzędzi

Jeśli używasz profili narzędzi albo list dozwolonych, dodaj web_search, x_search albo group:web:
{
  tools: {
    allow: ["web_search", "x_search"],
    // or: allow: ["group:web"]  (includes web_search, x_search, and web_fetch)
  },
}

Powiązane

  • Web Fetch — pobierz adres URL i wyodrębnij czytelną treść
  • Web Browser — pełna automatyzacja przeglądarki dla witryn mocno opartych na JS
  • Grok Search — Grok jako dostawca web_search
  • Ollama Web Search — wyszukiwanie w sieci bez klucza przez host Ollama