Tools
Wyszukiwanie w sieci
Narzędzie web_search przeszukuje sieć za pomocą skonfigurowanego dostawcy i
zwraca wyniki. Wyniki są buforowane według zapytania przez 15 minut (można to skonfigurować).
OpenClaw zawiera także x_search dla postów z X (dawniej Twitter) oraz
web_fetch do lekkiego pobierania URL-i. W tej fazie web_fetch pozostaje
lokalne, podczas gdy web_search i x_search mogą pod spodem używać xAI Responses.
Szybki start
Choose a provider
Wybierz dostawcę i wykonaj wymaganą konfigurację. Niektórzy dostawcy nie wymagają klucza, podczas gdy inni używają kluczy API. Szczegóły znajdziesz na poniższych stronach dostawców.
Configure
openclaw configure --section web
To zapisuje dostawcę i wszystkie potrzebne dane uwierzytelniające. Możesz także ustawić zmienną env
(na przykład BRAVE_API_KEY) i pominąć ten krok dla dostawców
opartych na API.
Use it
Agent może teraz wywołać web_search:
await web_search({ query: "OpenClaw plugin SDK" });
Dla postów z X użyj:
await x_search({ query: "dinner recipes" });
Wybór dostawcy
Strukturyzowane wyniki z fragmentami. Obsługuje tryb llm-context oraz filtry kraju/języka. Dostępny poziom bezpłatny.
Awaryjny dostawca bez klucza. Klucz API nie jest wymagany. Nieoficjalna integracja oparta na HTML.
Wyszukiwanie neuronowe i słowami kluczowymi z ekstrakcją treści (wyróżnienia, tekst, streszczenia).
Strukturyzowane wyniki. Najlepiej łączyć z firecrawl_search i firecrawl_scrape do głębokiej ekstrakcji.
Odpowiedzi syntetyzowane przez AI z cytowaniami dzięki ugruntowaniu w Google Search.
Odpowiedzi syntetyzowane przez AI z cytowaniami dzięki ugruntowaniu w sieci xAI.
Odpowiedzi syntetyzowane przez AI z cytowaniami dzięki wyszukiwaniu sieciowemu Moonshot; nieugruntowane awaryjne odpowiedzi czatu kończą się jawnym błędem.
Strukturyzowane wyniki przez API wyszukiwania MiniMax Token Plan.
Wyszukiwanie przez zalogowanego lokalnego hosta Ollama lub hostowane API Ollama.
Strukturyzowane wyniki z kontrolkami ekstrakcji treści i filtrowaniem domen.
Samodzielnie hostowane metawyszukiwanie. Klucz API nie jest wymagany. Agreguje Google, Bing, DuckDuckGo i inne.
Strukturyzowane wyniki z głębokością wyszukiwania, filtrowaniem tematów i tavily_extract do ekstrakcji URL-i.
Porównanie dostawców
| Dostawca | Styl wyników | Filtry | Klucz API |
|---|---|---|---|
| Brave | Strukturyzowane fragmenty | Kraj, język, czas, tryb llm-context |
BRAVE_API_KEY |
| DuckDuckGo | Strukturyzowane fragmenty | -- | Brak (bez klucza) |
| Exa | Strukturyzowane + wyodrębnione | Tryb neuronowy/słów kluczowych, data, ekstrakcja treści | EXA_API_KEY |
| Firecrawl | Strukturyzowane fragmenty | Przez narzędzie firecrawl_search |
FIRECRAWL_API_KEY |
| Gemini | Syntetyzowane przez AI + cytowania | -- | GEMINI_API_KEY |
| Grok | Syntetyzowane przez AI + cytowania | -- | XAI_API_KEY |
| Kimi | Syntetyzowane przez AI + cytowania; kończy się błędem przy nieugruntowanych awaryjnych odpowiedziach czatu | -- | KIMI_API_KEY / MOONSHOT_API_KEY |
| MiniMax Search | Strukturyzowane fragmenty | Region (global / cn) |
MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN |
| Ollama Web Search | Strukturyzowane fragmenty | -- | Brak dla zalogowanych lokalnych hostów; OLLAMA_API_KEY dla bezpośredniego wyszukiwania https://ollama.com |
| Perplexity | Strukturyzowane fragmenty | Kraj, język, czas, domeny, limity treści | PERPLEXITY_API_KEY / OPENROUTER_API_KEY |
| SearXNG | Strukturyzowane fragmenty | Kategorie, język | Brak (samodzielnie hostowane) |
| Tavily | Strukturyzowane fragmenty | Przez narzędzie tavily_search |
TAVILY_API_KEY |
Automatyczne wykrywanie
Natywne wyszukiwanie w sieci OpenAI
Bezpośrednie modele OpenAI Responses automatycznie używają hostowanego przez OpenAI narzędzia web_search, gdy wyszukiwanie w sieci OpenClaw jest włączone i nie przypięto zarządzanego dostawcy. Jest to zachowanie należące do dostawcy w dołączonym Pluginie OpenAI i dotyczy tylko natywnego ruchu API OpenAI, a nie bazowych URL-i proxy zgodnych z OpenAI 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 w sieci 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 w
tools.web.search.openaiCodex - Aktywuje się tylko dla modeli obsługujących Codex (
openai-codex/*albo dostawców używającychapi: "openai-codex-responses") - Zarządzane
web_searchnadal obowiązuje dla modeli innych niż Codex mode: "cached"jest ustawieniem domyślnym i zalecanymtools.web.search.enabled: falsewyłą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 działanie zarządzanego web_search.
Bezpieczeństwo sieci
Wywołania zarządzanych dostawców web_search używają chronionej ścieżki fetch 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 i fc00::/7 tylko dla nazwy hosta tego dostawcy.
Inne prywatne, local loopback, link-local i metadane 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 w sieci
Listy dostawców w dokumentacji i przepływach konfiguracji są alfabetyczne. Automatyczne wykrywanie zachowuje osobną kolejność pierwszeństwa.
Jeśli provider nie jest ustawiony, OpenClaw sprawdza dostawców w tej kolejności i używa
pierwszego, który jest gotowy:
Najpierw dostawcy oparci na API:
- Brave --
BRAVE_API_KEYlubplugins.entries.brave.config.webSearch.apiKey(kolejność 10) - MiniMax Search --
MINIMAX_CODE_PLAN_KEY/MINIMAX_CODING_API_KEY/MINIMAX_OAUTH_TOKEN/MINIMAX_API_KEYlubplugins.entries.minimax.config.webSearch.apiKey(kolejność 15) - Gemini --
plugins.entries.google.config.webSearch.apiKey,GEMINI_API_KEYlubmodels.providers.google.apiKey(kolejność 20) - Grok --
XAI_API_KEYlubplugins.entries.xai.config.webSearch.apiKey(kolejność 30) - Kimi --
KIMI_API_KEY/MOONSHOT_API_KEYlubplugins.entries.moonshot.config.webSearch.apiKey(kolejność 40) - Perplexity --
PERPLEXITY_API_KEY/OPENROUTER_API_KEYlubplugins.entries.perplexity.config.webSearch.apiKey(kolejność 50) - Firecrawl --
FIRECRAWL_API_KEYlubplugins.entries.firecrawl.config.webSearch.apiKey(kolejność 60) - Exa --
EXA_API_KEYlubplugins.entries.exa.config.webSearch.apiKey; opcjonalneplugins.entries.exa.config.webSearch.baseUrlzastępuje punkt końcowy Exa (kolejność 65) - Tavily --
TAVILY_API_KEYlubplugins.entries.tavily.config.webSearch.apiKey(kolejność 70)
Następnie awaryjni dostawcy bez klucza:
- DuckDuckGo -- awaryjne rozwiązanie HTML bez klucza, konta ani klucza API (kolejność 100)
- Ollama Web Search -- awaryjne rozwiązanie bez klucza przez skonfigurowanego lokalnego hosta Ollama, gdy jest osiągalny i zalogowany za pomocą
ollama signin; może ponownie użyć uwierzytelnienia bearer dostawcy Ollama, gdy host go wymaga, i może wywołać bezpośrednie wyszukiwaniehttps://ollama.com, gdy skonfigurowanoOLLAMA_API_KEY(kolejność 110) - SearXNG --
SEARXNG_BASE_URLlubplugins.entries.searxng.config.webSearch.baseUrl(kolejność 200)
Jeśli żaden dostawca nie zostanie wykryty, nastąpi powrót do Brave (otrzymasz błąd brakującego klucza z prośbą o jego skonfigurowanie).
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 też ponownie używać
models.providers.google.apiKey i models.providers.google.baseUrl jako rezerw
o niższym priorytecie po swojej 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 przez manifesty dołączonych i zainstalowanych Pluginów oraz znane instalowalne
Pluginy dostawców. Literówka taka jak "brvae" powoduje błąd walidacji konfiguracji zamiast
cichego powrotu do automatycznego wykrywania. Jeśli skonfigurowany dostawca jest znany, ale
właściwy Plugin jest niedostępny, OpenClaw zachowuje odporność uruchamiania i zgłasza
ostrzeżenie, aby można było uruchomić openclaw doctor --fix w celu zainstalowania lub włączenia Pluginu.
To samo zachowanie ostrzegawcze dotyczy nieaktualnych śladów Pluginu, takich jak pozostawiony
blok plugins.entries.<plugin> po odinstalowaniu Pluginu innej firmy.
Wybór dostawcy rezerwowego web_fetch jest osobny:
- wybierz go za pomocą
tools.web.fetch.provider - albo pomiń to pole i pozwól OpenClaw automatycznie wykryć pierwszego gotowego dostawcę web-fetch na podstawie dostępnych poświadczeń
- nieizolowany
web_fetchmoże używać zainstalowanych dostawców Pluginów, które deklarującontracts.webFetchProviders; izolowane pobierania pozostają wyłącznie dołączone - obecnie dołączonym dostawcą web-fetch jest Firecrawl, skonfigurowany pod
plugins.entries.firecrawl.config.webFetch.*
Gdy wybierzesz Kimi podczas openclaw onboard lub
openclaw configure --section web, OpenClaw może też zapytać o:
- region API Moonshot (
https://api.moonshot.ai/v1lubhttps://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 ono
tej samej rezerwy XAI_API_KEY co wyszukiwanie w sieci Grok.
Starsza konfiguracja tools.web.x_search.* jest automatycznie migrowana przez openclaw doctor --fix.
Gdy wybierzesz Grok podczas openclaw onboard lub openclaw configure --section web,
OpenClaw może też zaoferować opcjonalną konfigurację x_search z tym samym kluczem.
To osobny krok uzupełniający w ścieżce Grok, a nie osobny wybór dostawcy
wyszukiwania w sieci najwyższego poziomu. Jeśli wybierzesz innego dostawcę, OpenClaw nie
pokazuje monitu x_search.
Przechowywanie kluczy API
Config file
Uruchom openclaw configure --section web albo ustaw klucz bezpośrednio:
{
plugins: {
entries: {
brave: {
config: {
webSearch: {
apiKey: "YOUR_KEY", // pragma: allowlist secret
},
},
},
},
},
}
Environment variable
Ustaw zmienną środowiskową dostawcy w środowisku procesu Gateway:
export BRAVE_API_KEY="YOUR_KEY"
W przypadku instalacji gateway umieść ją w ~/.openclaw/.env.
Zobacz Zmienne środowiskowe.
Parametry narzędzia
| Parametr | Opis |
|---|---|
query |
Zapytanie wyszukiwania (wymagane) |
count |
Liczba wyników do zwrócenia (1-10, domyślnie: 5) |
country |
2-literowy kod kraju ISO (np. "US", "DE") |
language |
Kod języka ISO 639-1 (np. "en", "de") |
search_lang |
Kod języka wyszukiwania (tylko Brave) |
freshness |
Filtr czasu: day, week, month lub year |
date_after |
Wyniki po tej dacie (YYYY-MM-DD) |
date_before |
Wyniki przed tą datą (YYYY-MM-DD) |
ui_lang |
Kod języka interfejsu użytkownika (tylko Brave) |
domain_filter |
Tablica listy dozwolonych/zabronionych domen (tylko Perplexity) |
max_tokens |
Całkowity budżet treści, domyślnie 25000 (tylko Perplexity) |
max_tokens_per_page |
Limit tokenów na stronę, domyślnie 2048 (tylko Perplexity) |
x_search
x_search wyszukuje wpisy X (dawniej Twitter) za pomocą 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 w żądaniu obsługującym to wywołanie narzędzia.
Konfiguracja x_search
{
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 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, potem do
starszego tools.web.search.grok.baseUrl, a na końcu do publicznego punktu końcowego xAI.
Parametry x_search
| Parametr | Opis |
|---|---|
query |
Zapytanie wyszukiwania (wymagane) |
allowed_x_handles |
Ogranicz wyniki do konkretnych uchwytów X |
excluded_x_handles |
Wyklucz konkretne uchwyty X |
from_date |
Uwzględniaj tylko wpisy z tej daty lub późniejsze (YYYY-MM-DD) |
to_date |
Uwzględniaj tylko wpisy z tej daty lub wcześniejsze (YYYY-MM-DD) |
enable_image_understanding |
Pozwól xAI analizować obrazy dołączone do pasujących wpisów |
enable_video_understanding |
Pozwól xAI analizować filmy dołączone do pasujących wpisów |
Przykład x_search
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 lub 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 URL i wyodrębnij czytelną treść
- Web Browser -- pełna automatyzacja przeglądarki dla stron intensywnie korzystających z JS
- Grok Search -- Grok jako dostawca
web_search - Ollama Web Search -- wyszukiwanie w sieci bez klucza przez host Ollama