Tools

Web ophalen

web_fetch voert een gewone HTTP GET uit en extraheert leesbare inhoud (HTML naar Markdown of tekst). JavaScript wordt niet uitgevoerd. Gebruik voor sites die sterk van JS afhankelijk zijn of pagina's waarvoor aanmelding vereist is in plaats daarvan de webbrowser.

Snel aan de slag

Standaard ingeschakeld, geen configuratie nodig:

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

Toolparameters

urlstringrequired

URL om op te halen. Alleen http(s).

extractMode'markdown' | 'text'default: markdown

Uitvoerindeling na extractie van de hoofdinhoud.

maxCharsnumber

Kort de uitvoer af tot dit aantal tekens. Begrensd op tools.web.fetch.maxCharsCap.

Resultaat

web_fetch retourneert een gesloten, gestructureerd resultaat met deze velden:

  • Metagegevens van het verzoek: url, finalUrl, status, extractMode en extractor
  • Optionele metagegevens van het antwoord: contentType, title en warning (weggelaten indien afwezig)
  • Metagegevens van de verpakte inhoud: externalContent, truncated, length, rawLength, fetchedAt, tookMs en text
  • Optionele cached: true bij een cachetreffer
  • Optionele spill: { path, chars, truncated? } wanneer afgekorte inhoud naar een privé-tijdelijk bestand is geschreven; truncated is alleen aanwezig wanneer dat bestand gedeeltelijke broninhoud bevat

length is de lengte van de verpakte text. rawLength is de lengte van de geëxtraheerde inhoud vóór het verpakken van externe inhoud.

Werking

  • Ophalen

    Verzendt een HTTP GET met een Chrome-achtige User-Agent en de header Accept-Language. Blokkeert privé-/interne hostnamen en controleert omleidingen opnieuw.

  • Extraheren

    Voert Readability (extractie van hoofdinhoud) uit op het HTML-antwoord.

  • Terugval (optioneel)

    Als Readability mislukt en er een ophaalprovider beschikbaar is, wordt het opnieuw geprobeerd via die provider (bijvoorbeeld Firecrawls modus om botdetectie te omzeilen).

  • Cache

    Resultaten worden 15 minuten in de cache opgeslagen (configureerbaar) om herhaaldelijk ophalen van dezelfde URL te beperken.

  • Voortgangsupdates

    web_fetch geeft alleen een openbare voortgangsregel weer wanneer het ophalen na vijf seconden nog steeds bezig is:

    text
    Pagina-inhoud ophalen...

    Snelle cachetreffers en snelle netwerkantwoorden zijn klaar voordat de timer afgaat en tonen daarom nooit een voortgangsregel. Als de aanroep wordt geannuleerd, wordt de timer gewist. De voortgangsregel is uitsluitend de UI-status van het kanaal en bevat nooit opgehaalde pagina-inhoud.

    Configuratie

    json5
    {  tools: {    web: {      fetch: {        enabled: true, // standaard: true        provider: "firecrawl", // optioneel; weglaten voor automatische detectie        maxChars: 20000, // standaardaantal uitvoertekens; begrensd door maxCharsCap        maxCharsCap: 20000, // harde limiet voor de parameter maxChars        maxResponseBytes: 750000, // maximale downloadgrootte vóór afkapping (32000-10000000)        timeoutSeconds: 30,        cacheTtlMinutes: 15,        maxRedirects: 3,        useTrustedEnvProxy: false, // laat een vertrouwde HTTP(S)-omgevingsproxy DNS omzetten        readability: true, // gebruik Readability-extractie        userAgent: "Mozilla/5.0 ...", // overschrijf User-Agent        ssrfPolicy: {          allowRfc2544BenchmarkRange: true, // expliciete inschakeling voor vertrouwde proxy's met nep-IP's die 198.18.0.0/15 gebruiken          allowIpv6UniqueLocalRange: true, // expliciete inschakeling voor vertrouwde proxy's met nep-IP's die fc00::/7 gebruiken        },      },    },  },}

    Firecrawl-terugval

    Als Readability-extractie mislukt, kan web_fetch terugvallen op Firecrawl om botdetectie te omzeilen en de extractie te verbeteren:

    json5
    {  tools: {    web: {      fetch: {        provider: "firecrawl", // optioneel; weglaten voor automatische detectie aan de hand van beschikbare referenties      },    },  },  plugins: {    entries: {      firecrawl: {        enabled: true,        config: {          webFetch: {            // apiKey: "fc-...", // optioneel; weglaten voor sleutelvrije starterstoegang            baseUrl: "https://api.firecrawl.dev",            onlyMainContent: true,            maxAgeMs: 172800000, // cacheduur (2 dagen)            timeoutSeconds: 60,          },        },      },    },  },}

    plugins.entries.firecrawl.config.webFetch.apiKey is optioneel en ondersteunt SecretRef-objecten. Verouderde tools.web.fetch.firecrawl.*-configuratie wordt automatisch gemigreerd naar plugins.entries.firecrawl.config.webFetch via openclaw doctor --fix.

    Huidig runtimegedrag:

    • tools.web.fetch.provider selecteert expliciet de terugvalprovider voor ophalen.
    • Als provider wordt weggelaten, detecteert OpenClaw automatisch de eerste beschikbare provider voor ophalen van het web aan de hand van geconfigureerde referenties. web_fetch buiten een sandbox kan geïnstalleerde plugins gebruiken die contracts.webFetchProviders declareren en tijdens runtime een overeenkomende provider registreren. De officiële Firecrawl-plugin biedt deze terugval momenteel.
    • Aanroepen van web_fetch in een sandbox staan gebundelde providers toe, plus geïnstalleerde providers waarvan de officiële npm- of ClawHub-herkomst is geverifieerd. Momenteel staat dit de officiële Firecrawl-plugin toe; externe ophaalplugins van derden blijven uitgesloten.
    • Als Readability is uitgeschakeld, gaat web_fetch direct door naar de geselecteerde terugvalprovider. Als er geen provider beschikbaar is, wordt de aanroep veilig geweigerd.

    Vertrouwde omgevingsproxy

    Als je implementatie vereist dat web_fetch via een vertrouwde uitgaande HTTP(S)-proxy loopt, stel je tools.web.fetch.useTrustedEnvProxy: true in.

    In deze modus past OpenClaw nog steeds SSRF-controles op basis van hostnamen toe voordat het verzoek wordt verzonden, maar laat het de proxy DNS omzetten in plaats van lokale DNS-pinning uit te voeren. Schakel dit alleen in wanneer de proxy door de beheerder wordt beheerd en na DNS-resolutie beleid voor uitgaand verkeer afdwingt.

    Limieten en veiligheid

    • maxChars wordt begrensd op tools.web.fetch.maxCharsCap (standaard 20000)
    • De hoofdtekst van het antwoord wordt vóór verwerking begrensd op maxResponseBytes (standaard 750000, begrensd op 32000-10000000); te grote antwoorden worden met een waarschuwing afgekort
    • Privé-/interne hostnamen worden geblokkeerd
    • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange en tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange zijn beperkte expliciete inschakelingen voor vertrouwde proxystacks met nep-IP's; laat ze oningesteld, tenzij je proxy eigenaar is van die synthetische bereiken en zijn eigen bestemmingsbeleid afdwingt
    • Omleidingen worden gecontroleerd en beperkt door maxRedirects (standaard 3)
    • useTrustedEnvProxy vereist expliciete inschakeling en mag alleen worden ingeschakeld voor proxy's die door de beheerder worden beheerd en na DNS-resolutie nog steeds beleid voor uitgaand verkeer afdwingen
    • web_fetch werkt naar beste vermogen -- sommige sites vereisen de webbrowser

    Toolprofielen

    Als je toolprofielen of toelatingslijsten gebruikt, voeg je web_fetch of group:web toe:

    json5
    {  tools: {    allow: ["web_fetch"],    // of: allow: ["group:web"]  (omvat web_fetch, web_search en x_search)  },}

    Gerelateerd

    • Zoeken op het web -- doorzoek het web met meerdere providers
    • Webbrowser -- volledige browserautomatisering voor sites die sterk van JS afhankelijk zijn
    • Firecrawl -- Firecrawl-tools voor zoeken en scrapen
    Was this useful?
    On this page

    On this page