Skip to main content
web_fetch effectue une requête HTTP GET simple et extrait le contenu lisible (conversion du HTML en Markdown ou en texte). Il n’exécute pas JavaScript. Pour les sites qui utilisent beaucoup JS ou les pages protégées par une connexion, utilisez plutôt le navigateur Web.

Démarrage rapide

Activé par défaut, sans configuration nécessaire :

Paramètres de l’outil

string
requis
URL à récupérer. http(s) uniquement.
'markdown' | 'text'
défaut:"markdown"
Format de sortie après l’extraction du contenu principal.
number
Tronque la sortie à ce nombre de caractères. La valeur est limitée à tools.web.fetch.maxCharsCap.

Fonctionnement

1

Récupération

Envoie une requête HTTP GET avec un User-Agent similaire à celui de Chrome et l’en-tête Accept-Language. Bloque les noms d’hôte privés/internes et vérifie à nouveau les redirections.
2

Extraction

Exécute Readability (extraction du contenu principal) sur la réponse HTML.
3

Solution de repli (facultative)

Si Readability échoue et qu’un fournisseur de récupération est disponible, effectue une nouvelle tentative par l’intermédiaire de ce fournisseur (par exemple, le mode de contournement des robots de Firecrawl).
4

Cache

Les résultats sont mis en cache pendant 15 minutes (durée configurable) afin de réduire les récupérations répétées de la même URL.

Mises à jour de progression

web_fetch émet une ligne de progression publique uniquement si la récupération est toujours en cours après cinq secondes :
Les accès rapides au cache et les réponses réseau rapides se terminent avant le déclenchement du minuteur ; ils n’affichent donc jamais de ligne de progression. L’annulation de l’appel efface le minuteur. La ligne de progression représente uniquement l’état de l’interface utilisateur du canal et ne contient jamais le contenu de la page récupérée.

Configuration

Solution de repli Firecrawl

Si l’extraction Readability échoue, web_fetch peut utiliser Firecrawl comme solution de repli pour contourner les robots et améliorer l’extraction :
plugins.entries.firecrawl.config.webFetch.apiKey est facultatif et prend en charge les objets SecretRef. L’ancienne configuration tools.web.fetch.firecrawl.* est automatiquement migrée vers plugins.entries.firecrawl.config.webFetch au moyen de openclaw doctor --fix.
Si vous configurez une SecretRef pour une clé d’API Firecrawl et qu’elle n’est pas résolue, sans variable d’environnement FIRECRAWL_API_KEY de repli, le démarrage du Gateway échoue immédiatement.
Les remplacements de baseUrl de Firecrawl sont strictement encadrés : le trafic hébergé utilise https://api.firecrawl.dev ; les remplacements auto-hébergés doivent cibler des points de terminaison privés ou internes, et http:// n’est accepté que pour ces cibles privées.
Comportement actuel à l’exécution :
  • tools.web.fetch.provider sélectionne explicitement le fournisseur de récupération de repli.
  • Si provider est omis, OpenClaw détecte automatiquement le premier fournisseur de récupération Web prêt à l’emploi à partir des identifiants configurés. Hors bac à sable, web_fetch peut utiliser les plugins installés qui déclarent contracts.webFetchProviders et enregistrent un fournisseur correspondant à l’exécution. Le plugin Firecrawl officiel fournit actuellement cette solution de repli.
  • Les appels web_fetch en bac à sable autorisent les fournisseurs intégrés ainsi que les fournisseurs installés dont la provenance officielle npm ou ClawHub est vérifiée. À ce jour, cela autorise le plugin Firecrawl officiel ; les plugins de récupération externes tiers restent exclus.
  • Si Readability est désactivé, web_fetch passe directement à la solution de repli du fournisseur sélectionné. Si aucun fournisseur n’est disponible, l’appel échoue de manière sécurisée.

Proxy d’environnement de confiance

Si votre déploiement exige que web_fetch passe par un proxy HTTP(S) sortant de confiance, définissez tools.web.fetch.useTrustedEnvProxy: true. Dans ce mode, OpenClaw applique toujours les vérifications SSRF fondées sur le nom d’hôte avant d’envoyer la requête, mais laisse le proxy résoudre le DNS au lieu d’effectuer un épinglage DNS local. Activez cette option uniquement lorsque le proxy est contrôlé par l’opérateur et applique la politique de trafic sortant après la résolution DNS.
Si aucune variable d’environnement de proxy HTTP(S) n’est configurée, ou si l’hôte cible est exclu par NO_PROXY, web_fetch revient au chemin strict normal avec un épinglage DNS local.

Limites et sécurité

  • maxChars est limité à tools.web.fetch.maxCharsCap (valeur par défaut : 20000)
  • Le corps de la réponse est limité à maxResponseBytes (valeur par défaut : 750000, comprise entre 32000 et 10000000) avant l’analyse ; les réponses trop volumineuses sont tronquées avec un avertissement
  • Les noms d’hôte privés/internes sont bloqués
  • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange et tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange sont des activations explicites ciblées destinées aux piles de proxys de confiance utilisant de fausses adresses IP ; laissez-les non définies sauf si votre proxy contrôle ces plages synthétiques et applique sa propre politique de destination
  • Les redirections sont vérifiées et limitées par maxRedirects (valeur par défaut : 3)
  • useTrustedEnvProxy nécessite une activation explicite et ne doit être activé que pour les proxys contrôlés par l’opérateur qui continuent d’appliquer la politique de trafic sortant après la résolution DNS
  • web_fetch fonctionne au mieux de ses possibilités : certains sites nécessitent le navigateur Web

Profils d’outils

Si vous utilisez des profils d’outils ou des listes d’autorisation, ajoutez web_fetch ou group:web :

Voir aussi

  • Recherche Web — rechercher sur le Web avec plusieurs fournisseurs
  • Navigateur Web — automatisation complète du navigateur pour les sites qui utilisent beaucoup JS
  • Firecrawl — outils Firecrawl de recherche et d’extraction