Passer au contenu principal

Récupération Web

L’outil web_fetch effectue un simple HTTP GET et extrait un contenu lisible (HTML vers markdown ou texte). Il n’exécute pas JavaScript. Pour les sites riches en JS ou les pages protégées par connexion, utilisez plutôt le Web Browser.

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

ParameterTypeDescription
urlstringURL à récupérer (obligatoire, http/https uniquement)
extractModestring"markdown" (par défaut) ou "text"
maxCharsnumberTronquer la sortie à ce nombre de caractères

Fonctionnement

1

Récupération

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

Extraction

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

Repli (facultatif)

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

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.

Configuration

{
  tools: {
    web: {
      fetch: {
        enabled: true, // par défaut : true
        provider: "firecrawl", // facultatif ; omettez pour la détection automatique
        maxChars: 50000, // nombre maximal de caractères en sortie
        maxCharsCap: 50000, // limite stricte du paramètre maxChars
        maxResponseBytes: 2000000, // taille maximale de téléchargement avant troncature
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
        maxRedirects: 3,
        readability: true, // utiliser l'extraction Readability
        userAgent: "Mozilla/5.0 ...", // remplacer le User-Agent
      },
    },
  },
}

Repli Firecrawl

Si l’extraction Readability échoue, web_fetch peut se replier sur Firecrawl pour le contournement des bots et une meilleure extraction :
{
  tools: {
    web: {
      fetch: {
        provider: "firecrawl", // facultatif ; omettez pour la détection automatique à partir des identifiants disponibles
      },
    },
  },
  plugins: {
    entries: {
      firecrawl: {
        enabled: true,
        config: {
          webFetch: {
            apiKey: "fc-...", // facultatif si FIRECRAWL_API_KEY est défini
            baseUrl: "https://api.firecrawl.dev",
            onlyMainContent: true,
            maxAgeMs: 86400000, // durée du cache (1 jour)
            timeoutSeconds: 60,
          },
        },
      },
    },
  },
}
plugins.entries.firecrawl.config.webFetch.apiKey prend en charge les objets SecretRef. L’ancienne configuration tools.web.fetch.firecrawl.* est migrée automatiquement par openclaw doctor --fix.
Si Firecrawl est activé et que son SecretRef n’est pas résolu sans variable d’environnement de repli FIRECRAWL_API_KEY, le démarrage de la gateway échoue immédiatement.
Les remplacements de baseUrl Firecrawl sont strictement encadrés : ils doivent utiliser https:// et l’hôte officiel Firecrawl (api.firecrawl.dev).
Comportement actuel à l’exécution :
  • tools.web.fetch.provider sélectionne explicitement le fournisseur de repli de récupération.
  • Si provider est omis, OpenClaw détecte automatiquement le premier fournisseur web-fetch prêt à partir des identifiants disponibles. Aujourd’hui, le fournisseur groupé est Firecrawl.
  • Si Readability est désactivé, web_fetch passe directement au repli du fournisseur sélectionné. Si aucun fournisseur n’est disponible, il échoue de manière fermée.

Limites et sécurité

  • maxChars est limité à tools.web.fetch.maxCharsCap
  • Le corps de la réponse est limité à maxResponseBytes avant analyse ; les réponses trop volumineuses sont tronquées avec un avertissement
  • Les noms d’hôte privés/internes sont bloqués
  • Les redirections sont vérifiées et limitées par maxRedirects
  • web_fetch fonctionne au mieux — certains sites nécessitent le Web Browser

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"],
    // ou : allow: ["group:web"]  (inclut web_fetch, web_search et x_search)
  },
}

Lié

  • Web Search — rechercher sur le web avec plusieurs fournisseurs
  • Web Browser — automatisation complète du navigateur pour les sites riches en JS
  • Firecrawl — outils Firecrawl de recherche et de scraping