Tools

Webabruf

Das Tool web_fetch führt ein einfaches HTTP GET aus und extrahiert lesbaren Inhalt (HTML zu Markdown oder Text). Es führt kein JavaScript aus.

Verwenden Sie für JS-lastige Websites oder login-geschützte Seiten stattdessen den Webbrowser.

Schnellstart

web_fetch ist standardmäßig aktiviert -- keine Konfiguration erforderlich. Der Agent kann es sofort aufrufen:

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

Tool-Parameter

urlstringrequired

Abzurufende URL. Nur http(s).

extractMode'markdown' | 'text'default: markdown

Ausgabeformat nach der Extraktion des Hauptinhalts.

maxCharsnumber

Ausgabe auf diese Anzahl von Zeichen kürzen.

Funktionsweise

  • Fetch

    Sendet ein HTTP GET mit einem Chrome-ähnlichen User-Agent und Accept-Language-Header. Blockiert private/interne Hostnamen und prüft Weiterleitungen erneut.

  • Extract

    Führt Readability (Extraktion des Hauptinhalts) auf der HTML-Antwort aus.

  • Fallback (optional)

    Wenn Readability fehlschlägt und Firecrawl ausgewählt ist, wird der Versuch über die Firecrawl-API mit Bot-Umgehungsmodus wiederholt.

  • Cache

    Ergebnisse werden 15 Minuten lang zwischengespeichert (konfigurierbar), um wiederholte Abrufe derselben URL zu reduzieren.

  • Fortschrittsmeldungen

    web_fetch gibt nur dann eine öffentliche Fortschrittszeile aus, wenn der Abruf nach fünf Sekunden noch aussteht:

    text
    Fetching page content...

    Schnelle Cache-Treffer und schnelle Netzwerkantworten sind abgeschlossen, bevor der Timer auslöst, sodass sie keine Fortschrittszeile anzeigen. Wenn der Aufruf abgebrochen wird, wird der Timer gelöscht. Wenn der Abruf schließlich abgeschlossen ist, erhält der Agent das normale Tool-Ergebnis; die Fortschrittszeile ist nur Channel-UI-Status und enthält niemals abgerufene Seiteninhalte.

    Konfiguration

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

    Firecrawl-Fallback

    Wenn die Readability-Extraktion fehlschlägt, kann web_fetch für Bot-Umgehung und bessere Extraktion auf Firecrawl zurückfallen:

    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 ist optional und unterstützt SecretRef-Objekte. Die Legacy-Konfiguration tools.web.fetch.firecrawl.* wird von openclaw doctor --fix automatisch migriert.

    Aktuelles Laufzeitverhalten:

    • tools.web.fetch.provider wählt den Fallback-Provider für den Abruf explizit aus.
    • Wenn provider ausgelassen wird, erkennt OpenClaw automatisch den ersten bereiten Web-Fetch-Provider aus den konfigurierten Zugangsdaten. Nicht-sandboxed web_fetch kann installierte Plugins verwenden, die contracts.webFetchProviders deklarieren und zur Laufzeit einen passenden Provider registrieren. Das offizielle Firecrawl-Plugin stellt diesen Fallback bereit.
    • Sandboxed-web_fetch-Aufrufe erlauben gebündelte Provider sowie installierte Provider, deren offizielle npm- oder ClawHub-Herkunft verifiziert ist. Derzeit erlaubt dies das offizielle Firecrawl-Plugin; externe Abruf-Plugins von Drittanbietern bleiben ausgeschlossen.
    • Wenn Readability deaktiviert ist, springt web_fetch direkt zum ausgewählten Provider-Fallback. Wenn kein Provider verfügbar ist, schlägt es geschlossen fehl.

    Vertrauenswürdiger Env-Proxy

    Wenn Ihre Bereitstellung erfordert, dass web_fetch über einen vertrauenswürdigen ausgehenden HTTP(S)-Proxy läuft, setzen Sie tools.web.fetch.useTrustedEnvProxy: true.

    In diesem Modus wendet OpenClaw weiterhin hostnamenbasierte SSRF-Prüfungen an, bevor die Anfrage gesendet wird, lässt aber den Proxy DNS auflösen, statt lokales DNS-Pinning durchzuführen. Aktivieren Sie dies nur, wenn der Proxy vom Betreiber kontrolliert wird und nach der DNS-Auflösung ausgehende Richtlinien erzwingt.

    Limits und Sicherheit

    • maxChars wird auf tools.web.fetch.maxCharsCap begrenzt
    • Der Antwortkörper wird vor dem Parsen auf maxResponseBytes begrenzt; übergroße Antworten werden mit einer Warnung gekürzt
    • Private/interne Hostnamen werden blockiert
    • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange und tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange sind enge Opt-ins für vertrauenswürdige Fake-IP-Proxy-Stacks; lassen Sie sie ungesetzt, sofern Ihr Proxy diese synthetischen Bereiche nicht besitzt und seine eigene Zielrichtlinie erzwingt
    • Weiterleitungen werden geprüft und durch maxRedirects begrenzt
    • useTrustedEnvProxy ist ein explizites Opt-in und sollte nur für betreiberkontrollierte Proxys aktiviert werden, die auch nach der DNS-Auflösung ausgehende Richtlinien erzwingen
    • web_fetch arbeitet nach Best-Effort -- einige Websites benötigen den Webbrowser

    Tool-Profile

    Wenn Sie Tool-Profile oder Allowlists verwenden, fügen Sie web_fetch oder group:web hinzu:

    json5
    {  tools: {    allow: ["web_fetch"],    // or: allow: ["group:web"]  (includes web_fetch, web_search, and x_search)  },}

    Verwandt

    • Websuche -- das Web mit mehreren Providern durchsuchen
    • Webbrowser -- vollständige Browser-Automatisierung für JS-lastige Websites
    • Firecrawl -- Firecrawl-Such- und Scrape-Tools
    Was this useful?
    On this page

    On this page