Tools
Webabruf
web_fetch führt einen einfachen HTTP-GET aus und extrahiert lesbare Inhalte (HTML zu
Markdown oder Text). JavaScript wird nicht ausgeführt. Verwenden Sie für JS-lastige Websites oder
anmeldegeschützte Seiten stattdessen den Webbrowser.
Schnellstart
Standardmäßig aktiviert, keine Konfiguration erforderlich:
await web_fetch({ url: "https://example.com/article" });Tool-Parameter
urlstringrequiredAbzurufende URL. Nur http(s).
extractMode'markdown' | 'text'default: markdownAusgabeformat nach der Extraktion des Hauptinhalts.
maxCharsnumberAusgabe auf diese Anzahl von Zeichen kürzen. Auf tools.web.fetch.maxCharsCap begrenzt.
Ergebnis
web_fetch gibt ein geschlossenes strukturiertes Ergebnis mit diesen Feldern zurück:
- Anfragemetadaten:
url,finalUrl,status,extractModeundextractor - Optionale Antwortmetadaten:
contentType,titleundwarning(werden ausgelassen, wenn sie nicht vorhanden sind) - Metadaten des umschlossenen Inhalts:
externalContent,truncated,length,rawLength,fetchedAt,tookMsundtext - Optionales
cached: truebei einem Cache-Treffer - Optionales
spill: { path, chars, truncated? }, wenn gekürzter Inhalt in eine private temporäre Datei geschrieben wurde;truncatedist nur vorhanden, wenn diese Datei unvollständigen Quellinhalt enthält
length ist die Länge des umschlossenen text. rawLength ist die Länge des extrahierten Inhalts
vor der Umschließung externer Inhalte.
Funktionsweise
Abrufen
Sendet einen HTTP-GET mit einem Chrome-ähnlichen User-Agent und dem Header Accept-Language.
Private/interne Hostnamen werden blockiert und Weiterleitungen erneut geprüft.
Extrahieren
Führt Readability (Extraktion des Hauptinhalts) für die HTML-Antwort aus.
Fallback (optional)
Wenn Readability fehlschlägt und ein Abruf-Provider verfügbar ist, wird der Abruf über diesen Provider wiederholt (beispielsweise im Bot-Umgehungsmodus von Firecrawl).
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:
Seiteninhalt wird abgerufen...Schnelle Cache-Treffer und schnelle Netzwerkantworten werden abgeschlossen, bevor der Timer ausgelöst wird, daher zeigen sie nie eine Fortschrittszeile an. Beim Abbrechen des Aufrufs wird der Timer gelöscht. Die Fortschrittszeile stellt lediglich den Zustand der Kanal-Benutzeroberfläche dar und enthält niemals abgerufene Seiteninhalte.
Konfiguration
{ tools: { web: { fetch: { enabled: true, // Standard: true provider: "firecrawl", // optional; für automatische Erkennung weglassen maxChars: 20000, // standardmäßige Anzahl der Ausgabezeichen; durch maxCharsCap begrenzt maxCharsCap: 20000, // feste Obergrenze für den Parameter maxChars maxResponseBytes: 750000, // maximale Downloadgröße vor der Kürzung (32000-10000000) timeoutSeconds: 30, cacheTtlMinutes: 15, maxRedirects: 3, useTrustedEnvProxy: false, // einem vertrauenswürdigen HTTP(S)-Umgebungsproxy die DNS-Auflösung überlassen readability: true, // Readability-Extraktion verwenden userAgent: "Mozilla/5.0 ...", // User-Agent überschreiben ssrfPolicy: { allowRfc2544BenchmarkRange: true, // Opt-in für vertrauenswürdige Fake-IP-Proxys mit 198.18.0.0/15 allowIpv6UniqueLocalRange: true, // Opt-in für vertrauenswürdige Fake-IP-Proxys mit fc00::/7 }, }, }, },}Firecrawl-Fallback
Wenn die Readability-Extraktion fehlschlägt, kann web_fetch auf
Firecrawl zurückgreifen, um Botschutz zu umgehen und eine bessere Extraktion zu erzielen:
{ tools: { web: { fetch: { provider: "firecrawl", // optional; für automatische Erkennung anhand verfügbarer Anmeldedaten weglassen }, }, }, plugins: { entries: { firecrawl: { enabled: true, config: { webFetch: { // apiKey: "fc-...", // optional; für schlüssellosen Starterzugriff weglassen baseUrl: "https://api.firecrawl.dev", onlyMainContent: true, maxAgeMs: 172800000, // Cache-Dauer (2 Tage) timeoutSeconds: 60, }, }, }, }, },}plugins.entries.firecrawl.config.webFetch.apiKey ist optional und unterstützt SecretRef-Objekte.
Die veraltete Konfiguration tools.web.fetch.firecrawl.* wird über
openclaw doctor --fix automatisch zu plugins.entries.firecrawl.config.webFetch migriert.
Aktuelles Laufzeitverhalten:
tools.web.fetch.providerwählt den Fallback-Provider für den Abruf explizit aus.- Wenn
providerausgelassen wird, erkennt OpenClaw automatisch den ersten einsatzbereiten Web-Abruf- Provider anhand der konfigurierten Anmeldedaten. Nicht in einer Sandbox ausgeführtesweb_fetchkann installierte Plugins verwenden, diecontracts.webFetchProvidersdeklarieren und zur Laufzeit einen passenden Provider registrieren. Das offizielle Firecrawl-Plugin stellt derzeit diesen Fallback bereit. - In einer Sandbox ausgeführte
web_fetch-Aufrufe erlauben gebündelte Provider sowie installierte Provider, deren offizielle npm- oder ClawHub-Herkunft verifiziert wurde. Derzeit ist dadurch das offizielle Firecrawl-Plugin zulässig; externe Abruf-Plugins von Drittanbietern bleiben ausgeschlossen. - Wenn Readability deaktiviert ist, springt
web_fetchdirekt zum ausgewählten Provider-Fallback. Wenn kein Provider verfügbar ist, schlägt der Vorgang standardmäßig fehl.
Vertrauenswürdiger Umgebungsproxy
Wenn Ihre Bereitstellung erfordert, dass web_fetch über einen vertrauenswürdigen ausgehenden
HTTP(S)-Proxy geleitet wird, legen Sie tools.web.fetch.useTrustedEnvProxy: true fest.
In diesem Modus wendet OpenClaw weiterhin hostnamenbasierte SSRF-Prüfungen an, bevor die Anfrage gesendet wird, überlässt jedoch dem Proxy die DNS-Auflösung, anstatt lokales DNS- Pinning durchzuführen. Aktivieren Sie dies nur, wenn der Proxy vom Betreiber kontrolliert wird und nach der DNS-Auflösung Richtlinien für ausgehenden Datenverkehr durchsetzt.
Beschränkungen und Sicherheit
maxCharswird auftools.web.fetch.maxCharsCapbegrenzt (Standard:20000)- Der Antworttext wird vor der Analyse auf
maxResponseBytesbegrenzt (Standard:750000, begrenzt auf 32000-10000000); übergroße Antworten werden mit einer Warnung gekürzt - Private/interne Hostnamen werden blockiert
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangeundtools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangesind eng begrenzte Opt-ins für vertrauenswürdige Fake-IP-Proxy-Stacks; lassen Sie sie ungesetzt, sofern Ihr Proxy diese synthetischen Bereiche nicht kontrolliert und keine eigene Zielrichtlinie durchsetzt- Weiterleitungen werden geprüft und durch
maxRedirectsbegrenzt (Standard:3) useTrustedEnvProxyist ein ausdrückliches Opt-in und sollte nur für vom Betreiber kontrollierte Proxys aktiviert werden, die auch nach der DNS- Auflösung Richtlinien für ausgehenden Datenverkehr durchsetzenweb_fetchfunktioniert nach bestem Bemühen – einige Websites benötigen den Webbrowser
Tool-Profile
Wenn Sie Tool-Profile oder Positivlisten verwenden, fügen Sie web_fetch oder group:web hinzu:
{ tools: { allow: ["web_fetch"], // oder: allow: ["group:web"] (enthält web_fetch, web_search und x_search) },}Verwandte Themen
- Websuche – das Web mit mehreren Providern durchsuchen
- Webbrowser – vollständige Browserautomatisierung für JS-lastige Websites
- Firecrawl – Firecrawl-Tools zum Suchen und Scrapen