Tools
Recupero web
Lo strumento web_fetch esegue un semplice HTTP GET ed estrae contenuto leggibile
(da HTML a markdown o testo). Non esegue JavaScript.
Per siti con molto JS o pagine protette da login, usa invece il Browser web.
Avvio rapido
web_fetch è abilitato per impostazione predefinita -- non serve alcuna configurazione. L'agente può
chiamarlo immediatamente:
await web_fetch({ url: "https://example.com/article" });Parametri dello strumento
urlstringrequiredURL da recuperare. Solo http(s).
extractMode'markdown' | 'text'default: markdownFormato di output dopo l'estrazione del contenuto principale.
maxCharsnumberTronca l'output a questo numero di caratteri.
Come funziona
Fetch
Invia un HTTP GET con un User-Agent simile a Chrome e un'intestazione
Accept-Language. Blocca nomi host privati/interni e ricontrolla i reindirizzamenti.
Extract
Esegue Readability (estrazione del contenuto principale) sulla risposta HTML.
Fallback (optional)
Se Readability non riesce e Firecrawl è selezionato, riprova tramite l'API Firecrawl con modalità di aggiramento dei bot.
Cache
I risultati vengono memorizzati nella cache per 15 minuti (configurabile) per ridurre i recuperi ripetuti dello stesso URL.
Aggiornamenti di avanzamento
web_fetch emette una riga di avanzamento pubblica solo quando il recupero è ancora in sospeso
dopo cinque secondi:
Fetching page content...Gli hit rapidi della cache e le risposte di rete veloci terminano prima che il timer scatti, quindi non mostrano una riga di avanzamento. Se la chiamata viene annullata, il timer viene cancellato. Quando il recupero alla fine si completa, l'agente riceve il normale risultato dello strumento; la riga di avanzamento è solo stato dell'interfaccia del canale e non contiene mai il contenuto recuperato dalla pagina.
Configurazione
{ tools: { web: { fetch: { enabled: true, // default: true provider: "firecrawl", // optional; omit for auto-detect maxChars: 50000, // max output chars maxCharsCap: 50000, // hard cap for maxChars param maxResponseBytes: 2000000, // max download size before truncation timeoutSeconds: 30, cacheTtlMinutes: 15, maxRedirects: 3, useTrustedEnvProxy: false, // let a trusted HTTP(S) env proxy resolve DNS readability: true, // use Readability extraction userAgent: "Mozilla/5.0 ...", // override User-Agent ssrfPolicy: { allowRfc2544BenchmarkRange: true, // opt-in for trusted fake-IP proxies using 198.18.0.0/15 allowIpv6UniqueLocalRange: true, // opt-in for trusted fake-IP proxies using fc00::/7 }, }, }, },}Alternativa Firecrawl
Se l'estrazione Readability non riesce, web_fetch può ricorrere a
Firecrawl per l'aggiramento dei bot e un'estrazione migliore:
{ tools: { web: { fetch: { provider: "firecrawl", // optional; omit for auto-detect from available credentials }, }, }, plugins: { entries: { firecrawl: { enabled: true, config: { webFetch: { // apiKey: "fc-...", // optional; omit for keyless starter access baseUrl: "https://api.firecrawl.dev", onlyMainContent: true, maxAgeMs: 86400000, // cache duration (1 day) timeoutSeconds: 60, }, }, }, }, },}plugins.entries.firecrawl.config.webFetch.apiKey è opzionale e supporta oggetti SecretRef.
La configurazione legacy tools.web.fetch.firecrawl.* viene migrata automaticamente da openclaw doctor --fix.
Comportamento runtime attuale:
tools.web.fetch.providerseleziona esplicitamente il fornitore alternativo di recupero.- Se
providerviene omesso, OpenClaw rileva automaticamente il primo fornitore di web-fetch pronto dalle credenziali configurate.web_fetchnon sandboxed può usare Plugin installati che dichiaranocontracts.webFetchProviderse registrano un fornitore corrispondente a runtime. Il Plugin ufficiale Firecrawl fornisce questa alternativa. - Le chiamate
web_fetchsandboxed consentono fornitori inclusi più fornitori installati la cui provenienza npm ufficiale o ClawHub è verificata. Oggi ciò consente il Plugin ufficiale Firecrawl; i Plugin esterni di recupero di terze parti restano esclusi. - Se Readability è disabilitato,
web_fetchpassa direttamente all'alternativa del fornitore selezionato. Se non è disponibile alcun fornitore, fallisce in modo chiuso.
Proxy env attendibile
Se la tua distribuzione richiede che web_fetch passi tramite un proxy
HTTP(S) in uscita attendibile, imposta tools.web.fetch.useTrustedEnvProxy: true.
In questa modalità, OpenClaw applica comunque i controlli SSRF basati sul nome host prima di inviare la richiesta, ma lascia che sia il proxy a risolvere il DNS invece di eseguire il pinning DNS locale. Abilitalo solo quando il proxy è controllato dall'operatore e applica la policy in uscita dopo la risoluzione DNS.
Limiti e sicurezza
maxCharsè limitato atools.web.fetch.maxCharsCap- Il corpo della risposta è limitato a
maxResponseBytesprima dell'analisi; le risposte troppo grandi vengono troncate con un avviso - I nomi host privati/interni sono bloccati
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangeetools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangesono opt-in circoscritti per stack di proxy fake-IP attendibili; lasciali non impostati a meno che il tuo proxy possieda quegli intervalli sintetici e applichi la propria policy di destinazione- I reindirizzamenti vengono controllati e limitati da
maxRedirects useTrustedEnvProxyè un opt-in esplicito e dovrebbe essere abilitato solo per proxy controllati dall'operatore che applicano comunque la policy in uscita dopo la risoluzione DNSweb_fetchè best-effort -- alcuni siti richiedono il Browser web
Profili degli strumenti
Se usi profili degli strumenti o allowlist, aggiungi web_fetch o group:web:
{ tools: { allow: ["web_fetch"], // or: allow: ["group:web"] (includes web_fetch, web_search, and x_search) },}Correlati
- Ricerca web -- cerca nel web con più fornitori
- Browser web -- automazione completa del browser per siti con molto JS
- Firecrawl -- strumenti di ricerca e scraping Firecrawl