Tools
Récupération web
L’outil web_fetch effectue un simple GET HTTP et extrait le contenu lisible
(HTML vers Markdown ou texte). Il n’exécute pas JavaScript.
Pour les sites qui dépendent fortement de JS ou les pages protégées par connexion, utilisez plutôt le Navigateur Web.
Démarrage rapide
web_fetch est activé par défaut -- aucune configuration n’est nécessaire. L’agent peut
l’appeler immédiatement :
await web_fetch({ url: "https://example.com/article" });Paramètres de l’outil
urlstringrequiredURL à récupérer. http(s) uniquement.
extractMode'markdown' | 'text'default: markdownFormat de sortie après extraction du contenu principal.
maxCharsnumberTronque la sortie à ce nombre de caractères.
Fonctionnement
Fetch
Envoie un GET HTTP avec un User-Agent semblable à celui de Chrome et un en-tête
Accept-Language. Bloque les noms d’hôte privés/internes et revérifie les redirections.
Extract
Exécute Readability (extraction du contenu principal) sur la réponse HTML.
Fallback (optional)
Si Readability échoue et que Firecrawl est sélectionné, réessaie via l’API Firecrawl avec le mode de contournement des bots.
Cache
Les résultats sont mis en cache pendant 15 minutes (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 lorsque la récupération est toujours en attente
après cinq secondes :
Fetching page content...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 pas de ligne de progression. Si l’appel est annulé, le minuteur est effacé. Lorsque la récupération finit par se terminer, l’agent reçoit le résultat normal de l’outil ; la ligne de progression n’est qu’un état d’interface de canal et ne contient jamais le contenu de la page récupérée.
Configuration
{ 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 }, }, }, },}Solution de secours Firecrawl
Si l’extraction Readability échoue, web_fetch peut se rabattre sur
Firecrawl pour le contournement des bots et une meilleure extraction :
{ 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 est facultatif et prend en charge les objets SecretRef.
La configuration héritée tools.web.fetch.firecrawl.* est migrée automatiquement par openclaw doctor --fix.
Comportement d’exécution actuel :
tools.web.fetch.providersélectionne explicitement le fournisseur de secours de récupération.- Si
providerest omis, OpenClaw détecte automatiquement le premier fournisseur web-fetch prêt à partir des identifiants configurés.web_fetchnon isolé peut utiliser les plugins installés qui déclarentcontracts.webFetchProviderset enregistrent un fournisseur correspondant à l’exécution. Le Plugin Firecrawl officiel fournit cette solution de secours. - Les appels
web_fetchisolés autorisent les fournisseurs intégrés ainsi que les fournisseurs installés dont la provenance npm officielle ou ClawHub est vérifiée. Aujourd’hui, cela autorise le Plugin Firecrawl officiel ; les plugins de récupération externes tiers restent exclus. - Si Readability est désactivé,
web_fetchpasse directement à la solution de secours du fournisseur sélectionné. Si aucun fournisseur n’est disponible, il échoue en mode fermé.
Proxy d’environnement approuvé
Si votre déploiement exige que web_fetch passe par un proxy sortant
HTTP(S) approuvé, définissez tools.web.fetch.useTrustedEnvProxy: true.
Dans ce mode, OpenClaw applique toujours les contrôles SSRF fondés 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 ce mode uniquement lorsque le proxy est contrôlé par l’opérateur et applique la politique sortante après la résolution DNS.
Limites et sécurité
maxCharsest limité àtools.web.fetch.maxCharsCap- Le corps de réponse est plafonné à
maxResponseBytesavant 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.allowRfc2544BenchmarkRangeettools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangesont des opt-ins étroits pour les piles de proxy à fausses IP approuvées ; laissez-les non définis sauf si votre proxy possède ces plages synthétiques et applique sa propre politique de destination- Les redirections sont vérifiées et limitées par
maxRedirects useTrustedEnvProxyest un opt-in explicite et ne doit être activé que pour les proxys contrôlés par l’opérateur qui appliquent toujours la politique sortante après la résolution DNSweb_fetchfonctionne au mieux -- 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 :
{ tools: { allow: ["web_fetch"], // or: allow: ["group:web"] (includes web_fetch, web_search, and x_search) },}Associés
- Recherche Web -- recherchez sur le Web avec plusieurs fournisseurs
- Navigateur Web -- automatisation complète du navigateur pour les sites dépendant fortement de JS
- Firecrawl -- outils de recherche et de scraping Firecrawl