Aller au contenu

Récupération Web

L’outil web_fetch effectue une requête HTTP GET simple et extrait le contenu lisible (HTML vers markdown ou texte). Il n’exécute pas JavaScript.

Pour les sites utilisant beaucoup JS ou les pages protégées par connexion, utilisez Web Browser à la place.

web_fetch est activé par défaut — aucune configuration requise. L’agent peut l’appeler immédiatement :

await web_fetch({ url: "https://example.com/article" });
URL à récupérer. `http(s)` uniquement. Format de sortie après l'extraction du contenu principal. Tronque la sortie à ce nombre de caractères.
  1. Fetch

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

  2. Extract

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

  3. Fallback (optional)

    Si Readabilité échoue et que Firecrawl est configuré, réessaie via l’ Firecrawl API avec le mode de contournement des bots.

  4. Cache

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

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

Si l’extraction Readability échoue, web_fetchFirecrawl peut revenir à Firecrawl pour contourner les bots et améliorer l’extraction :

{
tools: {
web: {
fetch: {
provider: "firecrawl", // optional; omit for auto-detect from available credentials
},
},
},
plugins: {
entries: {
firecrawl: {
enabled: true,
config: {
webFetch: {
apiKey: "fc-...", // optional if FIRECRAWL_API_KEY is set
baseUrl: "https://api.firecrawl.dev",
onlyMainContent: true,
maxAgeMs: 86400000, // cache duration (1 day)
timeoutSeconds: 60,
},
},
},
},
},
}

plugins.entries.firecrawl.config.webFetch.apiKey prend en charge les objets SecretRef. La configuration de tools.web.fetch.firecrawl.* obsolète est automatiquement migrée par openclaw doctor --fix.

Comportement actuel à l’exécution :

  • tools.web.fetch.provider sélectionne explicitement le fournisseur de repli de récupération (fetch).
  • Si providerOpenClaw est omis, OpenClaw détecte automatiquement le premier fournisseur web-fetch prêt parmi les informations d’identification disponibles. Les web_fetch non sandboxé peuvent utiliser les plugins installés qui déclarent contracts.webFetchProvidersFirecrawl et enregistrent un fournisseur correspondant au moment de l’exécution. Aujourd’hui, le fournisseur inclus est Firecrawl.
  • Les appels web_fetch sandboxés restent limités aux fournisseurs inclus.
  • Si Readability est désactivé, web_fetch passe directement au fournisseur de repli sélectionné. Si aucun fournisseur n’est disponible, il échoue en mode fermé.

Si votre déploiement nécessite que web_fetch passe par un proxy sortant HTTP(S) de confiance, définissez tools.web.fetch.useTrustedEnvProxy: true.

Dans ce mode, OpenClaw applique toujours les vérifications SSRF basées sur le nom d’hôte avant d’envoyer la requête, mais il laisse le proxy résoudre le DNS au lieu de faire un épinglage DNS local. N’activez cela que lorsque le proxy est contrôlé par l’opérateur et applique la stratégie sortante après la résolution DNS.

  • maxChars est limité à tools.web.fetch.maxCharsCap
  • Le corps de la réponse est plafonné à maxResponseBytes 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 options d’adhésion étroites pour les piles de proxy IP fictives de confiance ; laissez-les non définies, 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
  • useTrustedEnvProxy est une option d’adhésion explicite et ne doit être activée que pour des proxies contrôlés par l’opérateur qui appliquent toujours une politique de sortie après la résolution DNS
  • web_fetch est un best-effort — certains sites ont besoin du Web Browser

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

{
tools: {
allow: ["web_fetch"],
// or: allow: ["group:web"] (includes web_fetch, web_search, and x_search)
},
}
  • Web Search — rechercher sur le web avec plusieurs fournisseurs
  • Web Browser — automatisation complète du navigateur pour les sites lourds en JS
  • Firecrawl — outils de recherche et de scraping Firecrawl