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:

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

    text
    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

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

    Alternativa Firecrawl

    Se l'estrazione Readability non riesce, web_fetch può ricorrere a Firecrawl per l'aggiramento dei bot e un'estrazione migliore:

    json5
    {  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.provider seleziona esplicitamente il fornitore alternativo di recupero.
    • Se provider viene omesso, OpenClaw rileva automaticamente il primo fornitore di web-fetch pronto dalle credenziali configurate. web_fetch non sandboxed può usare Plugin installati che dichiarano contracts.webFetchProviders e registrano un fornitore corrispondente a runtime. Il Plugin ufficiale Firecrawl fornisce questa alternativa.
    • Le chiamate web_fetch sandboxed 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_fetch passa 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 a tools.web.fetch.maxCharsCap
    • Il corpo della risposta è limitato a maxResponseBytes prima dell'analisi; le risposte troppo grandi vengono troncate con un avviso
    • I nomi host privati/interni sono bloccati
    • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange e tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange sono 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 DNS
    • web_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:

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

    On this page