Tools
Ricerca web
The web_search tool cerca sul web usando il provider configurato e
restituisce risultati. I risultati vengono memorizzati nella cache per query per 15 minuti (configurabile).
OpenClaw include anche x_search per i post di X (precedentemente Twitter) e
web_fetch per il recupero leggero degli URL. In questa fase, web_fetch resta
locale mentre web_search e x_search possono usare xAI Responses dietro le quinte.
Avvio rapido
Choose a provider
Scegli un provider e completa l'eventuale configurazione richiesta. Alcuni provider sono senza chiave, mentre altri usano chiavi API. Consulta le pagine dei provider qui sotto per i dettagli.
Configure
openclaw configure --section web
Questo memorizza il provider e qualsiasi credenziale necessaria. Puoi anche impostare una variabile
di ambiente (per esempio BRAVE_API_KEY) e saltare questo passaggio per i provider
basati su API.
Use it
L'agente ora può chiamare web_search:
await web_search({ query: "OpenClaw plugin SDK" });
Per i post di X, usa:
await x_search({ query: "dinner recipes" });
Scelta di un provider
Risultati strutturati con snippet. Supporta la modalità llm-context e filtri per paese/lingua. Piano gratuito disponibile.
Fallback senza chiave. Nessuna chiave API necessaria. Integrazione non ufficiale basata su HTML.
Ricerca neurale + per parole chiave con estrazione dei contenuti (evidenziazioni, testo, riepiloghi).
Risultati strutturati. Ideale in combinazione con firecrawl_search e firecrawl_scrape per l'estrazione approfondita.
Risposte sintetizzate dall'IA con citazioni tramite grounding di Google Search.
Risposte sintetizzate dall'IA con citazioni tramite grounding web di xAI.
Risposte sintetizzate dall'IA con citazioni tramite la ricerca web Moonshot; i fallback di chat senza grounding falliscono esplicitamente.
Risultati strutturati tramite l'API di ricerca MiniMax Token Plan.
Ricerca tramite un host Ollama locale con accesso effettuato o l'API Ollama ospitata.
Risultati strutturati con controlli di estrazione dei contenuti e filtro dei domini.
Meta-ricerca self-hosted. Nessuna chiave API necessaria. Aggrega Google, Bing, DuckDuckGo e altro.
Risultati strutturati con profondità di ricerca, filtro per argomento e tavily_extract per l'estrazione da URL.
Confronto tra provider
| Provider | Stile dei risultati | Filtri | Chiave API |
|---|---|---|---|
| Brave | Snippet strutturati | Paese, lingua, periodo, modalità llm-context |
BRAVE_API_KEY |
| DuckDuckGo | Snippet strutturati | -- | Nessuna (senza chiave) |
| Exa | Strutturati + estratti | Modalità neurale/parole chiave, data, estrazione dei contenuti | EXA_API_KEY |
| Firecrawl | Snippet strutturati | Tramite il tool firecrawl_search |
FIRECRAWL_API_KEY |
| Gemini | Sintetizzati dall'IA + citazioni | -- | GEMINI_API_KEY |
| Grok | Sintetizzati dall'IA + citazioni | -- | XAI_API_KEY |
| Kimi | Sintetizzati dall'IA + citazioni; fallisce sui fallback di chat senza grounding | -- | KIMI_API_KEY / MOONSHOT_API_KEY |
| MiniMax Search | Snippet strutturati | Regione (global / cn) |
MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN |
| Ollama Web Search | Snippet strutturati | -- | Nessuna per host locali con accesso effettuato; OLLAMA_API_KEY per la ricerca diretta su https://ollama.com |
| Perplexity | Snippet strutturati | Paese, lingua, periodo, domini, limiti dei contenuti | PERPLEXITY_API_KEY / OPENROUTER_API_KEY |
| SearXNG | Snippet strutturati | Categorie, lingua | Nessuna (self-hosted) |
| Tavily | Snippet strutturati | Tramite il tool tavily_search |
TAVILY_API_KEY |
Rilevamento automatico
Ricerca web nativa di OpenAI
I modelli OpenAI Responses diretti usano automaticamente il tool web_search ospitato da OpenAI quando la ricerca web di OpenClaw è abilitata e non è fissato alcun provider gestito. Questo è un comportamento di proprietà del provider nel Plugin OpenAI incluso e si applica solo al traffico API OpenAI nativo, non agli URL base proxy compatibili con OpenAI o alle route Azure. Imposta tools.web.search.provider su un altro provider come brave per mantenere il tool web_search gestito per i modelli OpenAI, oppure imposta tools.web.search.enabled: false per disabilitare sia la ricerca gestita sia la ricerca OpenAI nativa.
Ricerca web nativa di Codex
I modelli compatibili con Codex possono facoltativamente usare il tool web_search Responses nativo del provider invece della funzione web_search gestita da OpenClaw.
- Configuralo in
tools.web.search.openaiCodex - Si attiva solo per i modelli compatibili con Codex (
openai-codex/*o provider che usanoapi: "openai-codex-responses") web_searchgestito continua ad applicarsi ai modelli non Codexmode: "cached"è l'impostazione predefinita e consigliatatools.web.search.enabled: falsedisabilita sia la ricerca gestita sia quella nativa
{
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",
},
},
},
},
},
}
Se la ricerca Codex nativa è abilitata ma il modello corrente non è compatibile con Codex, OpenClaw mantiene il normale comportamento web_search gestito.
Sicurezza della rete
Le chiamate ai provider web_search gestiti usano il percorso fetch protetto di OpenClaw. Per
gli host API di provider attendibili, OpenClaw consente risposte DNS fake-IP di
Surge, Clash e sing-box in 198.18.0.0/15 e fc00::/7 solo per quel nome host
del provider. Altre destinazioni private, loopback, link-local e metadata restano bloccate.
Questa autorizzazione automatica non si applica agli URL web_fetch arbitrari. Per
web_fetch, abilita tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange e
tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange esplicitamente solo quando il tuo
proxy attendibile possiede tali intervalli sintetici.
Configurazione della ricerca web
Gli elenchi dei provider nella documentazione e nei flussi di configurazione sono in ordine alfabetico. Il rilevamento automatico mantiene un ordine di precedenza separato.
Se non è impostato alcun provider, OpenClaw controlla i provider in questo ordine e usa il
primo pronto:
Prima i provider basati su API:
- Brave --
BRAVE_API_KEYoplugins.entries.brave.config.webSearch.apiKey(ordine 10) - MiniMax Search --
MINIMAX_CODE_PLAN_KEY/MINIMAX_CODING_API_KEY/MINIMAX_OAUTH_TOKEN/MINIMAX_API_KEYoplugins.entries.minimax.config.webSearch.apiKey(ordine 15) - Gemini --
plugins.entries.google.config.webSearch.apiKey,GEMINI_API_KEYomodels.providers.google.apiKey(ordine 20) - Grok --
XAI_API_KEYoplugins.entries.xai.config.webSearch.apiKey(ordine 30) - Kimi --
KIMI_API_KEY/MOONSHOT_API_KEYoplugins.entries.moonshot.config.webSearch.apiKey(ordine 40) - Perplexity --
PERPLEXITY_API_KEY/OPENROUTER_API_KEYoplugins.entries.perplexity.config.webSearch.apiKey(ordine 50) - Firecrawl --
FIRECRAWL_API_KEYoplugins.entries.firecrawl.config.webSearch.apiKey(ordine 60) - Exa --
EXA_API_KEYoplugins.entries.exa.config.webSearch.apiKey;plugins.entries.exa.config.webSearch.baseUrlfacoltativo sovrascrive l'endpoint Exa (ordine 65) - Tavily --
TAVILY_API_KEYoplugins.entries.tavily.config.webSearch.apiKey(ordine 70)
Poi i fallback senza chiave:
- DuckDuckGo -- fallback HTML senza chiave, senza account o chiave API (ordine 100)
- Ollama Web Search -- fallback senza chiave tramite il tuo host Ollama locale configurato quando è raggiungibile e ha effettuato l'accesso con
ollama signin; può riutilizzare l'autenticazione bearer del provider Ollama quando l'host la richiede e può chiamare la ricerca direttahttps://ollama.comquando configurato conOLLAMA_API_KEY(ordine 110) - SearXNG --
SEARXNG_BASE_URLoplugins.entries.searxng.config.webSearch.baseUrl(ordine 200)
Se non viene rilevato alcun provider, usa Brave come fallback (riceverai un errore di chiave mancante che ti chiederà di configurarne una).
Config
{
tools: {
web: {
search: {
enabled: true, // default: true
provider: "brave", // or omit for auto-detection
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
},
},
}
La configurazione specifica del provider (chiavi API, URL di base, modalità) si trova sotto
plugins.entries.<plugin>.config.webSearch.*. Gemini può anche riutilizzare
models.providers.google.apiKey e models.providers.google.baseUrl come fallback
a priorità inferiore dopo la sua configurazione dedicata per la ricerca web e GEMINI_API_KEY. Vedi le
pagine dei provider per esempi.
tools.web.search.provider viene convalidato rispetto agli ID dei provider di ricerca web
dichiarati dai manifest dei Plugin inclusi e installati, più i Plugin provider
installabili noti. Un errore di battitura come "brvae" fa fallire la convalida della configurazione invece di
ripiegare silenziosamente sul rilevamento automatico. Se il provider configurato è noto ma
il Plugin proprietario non è disponibile, OpenClaw mantiene resiliente l'avvio e segnala un
avviso, così puoi eseguire openclaw doctor --fix per installare o abilitare il Plugin.
Lo stesso comportamento di avviso si applica a evidenze obsolete di Plugin, come un blocco
plugins.entries.<plugin> rimasto dopo la disinstallazione di un Plugin di terze parti.
La selezione del provider di fallback di web_fetch è separata:
- sceglilo con
tools.web.fetch.provider - oppure ometti quel campo e lascia che OpenClaw rilevi automaticamente il primo provider web-fetch pronto dalle credenziali disponibili
web_fetchnon in sandbox può usare provider di Plugin installati che dichiaranocontracts.webFetchProviders; i recuperi in sandbox restano solo quelli inclusi- oggi il provider web-fetch incluso è Firecrawl, configurato sotto
plugins.entries.firecrawl.config.webFetch.*
Quando scegli Kimi durante openclaw onboard o
openclaw configure --section web, OpenClaw può anche chiedere:
- la regione API Moonshot (
https://api.moonshot.ai/v1ohttps://api.moonshot.cn/v1) - il modello di ricerca web Kimi predefinito (predefinito:
kimi-k2.6)
Per x_search, configura plugins.entries.xai.config.xSearch.*. Usa lo
stesso fallback XAI_API_KEY della ricerca web Grok.
La configurazione legacy tools.web.x_search.* viene migrata automaticamente da openclaw doctor --fix.
Quando scegli Grok durante openclaw onboard o openclaw configure --section web,
OpenClaw può anche offrire la configurazione opzionale di x_search con la stessa chiave.
Questo è un passaggio successivo separato all'interno del percorso Grok, non una scelta separata di provider
di ricerca web di livello superiore. Se scegli un altro provider, OpenClaw non
mostra il prompt x_search.
Archiviazione delle chiavi API
File di configurazione
Esegui openclaw configure --section web o imposta direttamente la chiave:
{
plugins: {
entries: {
brave: {
config: {
webSearch: {
apiKey: "YOUR_KEY", // pragma: allowlist secret
},
},
},
},
},
}
Variabile d'ambiente
Imposta la variabile d'ambiente del provider nell'ambiente del processo Gateway:
export BRAVE_API_KEY="YOUR_KEY"
Per un'installazione del gateway, inseriscila in ~/.openclaw/.env.
Vedi Variabili d'ambiente.
Parametri dello strumento
| Parametro | Descrizione |
|---|---|
query |
Query di ricerca (obbligatoria) |
count |
Risultati da restituire (1-10, predefinito: 5) |
country |
Codice paese ISO a 2 lettere (ad es. "US", "DE") |
language |
Codice lingua ISO 639-1 (ad es. "en", "de") |
search_lang |
Codice della lingua di ricerca (solo Brave) |
freshness |
Filtro temporale: day, week, month o year |
date_after |
Risultati dopo questa data (YYYY-MM-DD) |
date_before |
Risultati prima di questa data (YYYY-MM-DD) |
ui_lang |
Codice lingua dell'interfaccia utente (solo Brave) |
domain_filter |
Array di allowlist/denylist di domini (solo Perplexity) |
max_tokens |
Budget totale dei contenuti, predefinito 25000 (solo Perplexity) |
max_tokens_per_page |
Limite di token per pagina, predefinito 2048 (solo Perplexity) |
x_search
x_search interroga i post di X (precedentemente Twitter) usando xAI e restituisce
risposte sintetizzate dall'IA con citazioni. Accetta query in linguaggio naturale e
filtri strutturati opzionali. OpenClaw abilita lo strumento x_search integrato di xAI
solo sulla richiesta che serve questa chiamata dello strumento.
Configurazione di 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 invia post a <baseUrl>/responses quando
plugins.entries.xai.config.xSearch.baseUrl è impostato. Se quel campo viene omesso,
ripiega su plugins.entries.xai.config.webSearch.baseUrl, quindi sul
legacy tools.web.search.grok.baseUrl e infine sull'endpoint pubblico xAI.
Parametri di x_search
| Parametro | Descrizione |
|---|---|
query |
Query di ricerca (obbligatoria) |
allowed_x_handles |
Limita i risultati a handle X specifici |
excluded_x_handles |
Esclude handle X specifici |
from_date |
Include solo post in questa data o successivi (YYYY-MM-DD) |
to_date |
Include solo post in questa data o precedenti (YYYY-MM-DD) |
enable_image_understanding |
Consente a xAI di ispezionare immagini allegate ai post corrispondenti |
enable_video_understanding |
Consente a xAI di ispezionare video allegati ai post corrispondenti |
Esempio di 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",
});
Esempi
// 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"],
});
Profili degli strumenti
Se usi profili degli strumenti o allowlist, aggiungi web_search, x_search o group:web:
{
tools: {
allow: ["web_search", "x_search"],
// or: allow: ["group:web"] (includes web_search, x_search, and web_fetch)
},
}
Correlati
- Web Fetch -- recupera un URL ed estrae contenuti leggibili
- Browser Web -- automazione completa del browser per siti con molto JS
- Ricerca Grok -- Grok come provider di
web_search - Ricerca web Ollama -- ricerca web senza chiave tramite il tuo host Ollama