Vai al contenuto principale

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.

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 uso intensivo di JS o pagine protette da login, usa invece il Web Browser.

Avvio rapido

web_fetch è abilitato per impostazione predefinita: non serve alcuna configurazione. L’agente può chiamarlo subito:
await web_fetch({ url: "https://example.com/article" });

Parametri dello strumento

url
string
obbligatorio
URL da recuperare. Solo http(s).
extractMode
'markdown' | 'text'
predefinito:"markdown"
Formato di output dopo l’estrazione del contenuto principale.
maxChars
number
Tronca l’output a questo numero di caratteri.

Come funziona

1

Fetch

Invia un HTTP GET con uno User-Agent simile a Chrome e un’intestazione Accept-Language. Blocca hostname privati/interni e ricontrolla i reindirizzamenti.
2

Extract

Esegue Readability (estrazione del contenuto principale) sulla risposta HTML.
3

Fallback (optional)

Se Readability non riesce e Firecrawl è configurato, riprova tramite l’API Firecrawl con modalità di aggiramento dei bot.
4

Cache

I risultati vengono memorizzati nella cache per 15 minuti (configurabile) per ridurre i recuperi ripetuti dello stesso URL.

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
        },
      },
    },
  },
}

Fallback Firecrawl

Se l’estrazione Readability non riesce, web_fetch può passare in fallback a Firecrawl per l’aggiramento dei bot e una migliore estrazione:
{
  tools: {
    web: {
      fetch: {
        provider: "firecrawl", // optional; omit for auto-detect from available credentials
      },
    },
  },
  plugins: {
    entries: {
      firecrawl: {
        enabled: true,
        config: {
          webFetch: {
            apiKey: "fc-...", // optional if FIRECRAWL_API_KEY is set
            baseUrl: "https://api.firecrawl.dev",
            onlyMainContent: true,
            maxAgeMs: 86400000, // cache duration (1 day)
            timeoutSeconds: 60,
          },
        },
      },
    },
  },
}
plugins.entries.firecrawl.config.webFetch.apiKey supporta oggetti SecretRef. La configurazione legacy tools.web.fetch.firecrawl.* viene migrata automaticamente da openclaw doctor --fix.
Se Firecrawl è abilitato e il relativo SecretRef non viene risolto senza un fallback env FIRECRAWL_API_KEY, l’avvio del gateway fallisce rapidamente.
Gli override di baseUrl di Firecrawl sono vincolati: il traffico hosted usa https://api.firecrawl.dev; gli override self-hosted devono puntare a endpoint privati o interni, e http:// è accettato solo per questi target privati.
Comportamento runtime attuale:
  • tools.web.fetch.provider seleziona esplicitamente il provider di fallback del recupero.
  • Se provider viene omesso, OpenClaw rileva automaticamente il primo provider web-fetch pronto dalle credenziali disponibili. web_fetch non in sandbox può usare Plugin installati che dichiarano contracts.webFetchProviders e registrano un provider corrispondente a runtime. Oggi il provider incluso è Firecrawl.
  • Le chiamate web_fetch in sandbox restano limitate ai provider inclusi.
  • Se Readability è disabilitato, web_fetch passa direttamente al fallback del provider selezionato. Se non è disponibile alcun provider, fallisce in modo chiuso.

Proxy env attendibile

Se il tuo deployment richiede che web_fetch passi attraverso un proxy outbound HTTP(S) attendibile, imposta tools.web.fetch.useTrustedEnvProxy: true. In questa modalità, OpenClaw applica comunque i controlli SSRF basati su hostname prima di inviare la richiesta, ma lascia che sia il proxy a risolvere il DNS invece di effettuare il pinning DNS locale. Abilitalo solo quando il proxy è controllato dall’operatore e applica la policy outbound dopo la risoluzione DNS.
Se non è configurata alcuna variabile env proxy HTTP(S), o l’host target è escluso da NO_PROXY, web_fetch torna al normale percorso rigoroso con pinning DNS locale.

Limiti e sicurezza

  • maxChars viene limitato a tools.web.fetch.maxCharsCap
  • Il corpo della risposta è limitato a maxResponseBytes prima del parsing; le risposte troppo grandi vengono troncate con un avviso
  • Gli hostname privati/interni vengono bloccati
  • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange e tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange sono opt-in limitati 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 deve essere abilitato solo per proxy controllati dall’operatore che applicano comunque la policy outbound dopo la risoluzione DNS
  • web_fetch è best-effort: alcuni siti richiedono il Web Browser

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

  • Web Search: cerca nel web con più provider
  • Web Browser: automazione completa del browser per siti con uso intensivo di JS
  • Firecrawl: strumenti di ricerca e scraping Firecrawl