Tools

Recupero dal 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 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:

javascript
await web_fetch({ url: "https://example.com/article" });

Parametri dello strumento

urlstringrequired

URL da recuperare. Solo http(s).

extractMode'markdown' | 'text'default: markdown

Formato di output dopo l'estrazione del contenuto principale.

maxCharsnumber

Tronca l'output a questo numero di caratteri.

Come funziona

  • 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.

  • Extract

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

  • Fallback (optional)

    Se Readability non riesce e Firecrawl è configurato, 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.

  • Configurazione

    json5
    {  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:

    json5
    {  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.

    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.

    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:

    json5
    {  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
    Was this useful?