Ir al contenido

Web fetch

La herramienta web_fetch realiza un HTTP GET simple y extrae contenido legible (de HTML a markdown o texto). No ejecuta JavaScript.

Para sitios con mucho JS o páginas protegidas por inicio de sesión, utilice Navegador Web en su lugar.

web_fetch está habilitado de forma predeterminada — no se necesita configuración. El agente puede llamarlo inmediatamente:

await web_fetch({ url: "https://example.com/article" });
URL que se va a recuperar. Solo `http(s)`. Formato de salida después de la extracción del contenido principal. Truncar la salida a esta cantidad de caracteres.
  1. Fetch

    Envía un HTTP GET con un User-Agent similar al de Chrome y el encabezado Accept-Language . Bloquea nombres de host privados/internos y vuelve a verificar las redirecciones.

  2. Extract

    Ejecuta Readability (extracción de contenido principal) en la respuesta HTML.

  3. Fallback (optional)

    Si Readability falla y Firecrawl está configurado, se reintentará a través de la API de Firecrawl con modo de evasión de bots.

  4. Cache

    Los resultados se almacenan en caché durante 15 minutos (configurable) para reducir las recuperaciones repetidas de la misma 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 la extracción de Readability falla, web_fetch puede recurrir a Firecrawl para evitar detección de bots y mejorar la extracción:

{
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 es compatible con objetos SecretRef. La configuración heredada tools.web.fetch.firecrawl.* se migra automáticamente mediante openclaw doctor --fix.

Comportamiento actual en tiempo de ejecución:

  • tools.web.fetch.provider selecciona explícitamente el proveedor de reserva de recuperación.
  • Si se omite provider, OpenClaw detecta automáticamente el primer proveedor de web-fetch listo a partir de las credenciales disponibles. web_fetch sin sandbox puede usar complementos instalados que declaren contracts.webFetchProviders y registren un proveedor coincidente en tiempo de ejecución. Hoy el proveedor incluido es Firecrawl.
  • Las llamadas web_fetch en sandbox se limitan a los proveedores incluidos.
  • Si Readability está deshabilitado, web_fetch omite directamente al proveedor alternativo seleccionado. Si no hay ningún proveedor disponible, falla de forma cerrada.

Si su implementación requiere que web_fetch pase a través de un proxy HTTP(S) saliente de confianza, configure tools.web.fetch.useTrustedEnvProxy: true.

En este modo, OpenClaw todavía aplica comprobaciones SSRF basadas en el nombre de host antes de enviar la solicitud, pero permite que el proxy resuelva el DNS en lugar de hacer el anclaje de DNS local. Habilite esto solo cuando el proxy esté controlado por el operador y haga cumplir la política de salida después de la resolución del DNS.

  • maxChars está limitado a tools.web.fetch.maxCharsCap
  • El cuerpo de la respuesta está limitado a maxResponseBytes antes del análisis; las respuestas excesivamente grandes se truncarán con una advertencia
  • Los nombres de host privados/internos están bloqueados
  • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange y tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange son opciones de participación limitada para pilas de proxy de IP falsas de confianza; déjelos sin configurar a menos que su proxy sea dueño de esos rangos sintéticos y haga cumplir su propia política de destino
  • Los redireccionamientos se verifican y limitan mediante maxRedirects
  • useTrustedEnvProxy es una opción de participación explícita y solo debe habilitarse para proxys controlados por el operador que todavía apliquen la política de salida después de la resolución de DNS
  • web_fetch es de mejor esfuerzo; algunos sitios necesitan el Web Browser

Si utiliza perfiles de herramientas o listas de permitidos, agregue web_fetch o group:web:

{
tools: {
allow: ["web_fetch"],
// or: allow: ["group:web"] (includes web_fetch, web_search, and x_search)
},
}
  • Web Search: busque en la web con varios proveedores
  • Web Browser: automatización completa del navegador para sitios con mucho JavaScript
  • Firecrawl: herramientas de búsqueda y extracción de Firecrawl