Ir al contenido

Obtención web

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

Para sitios con mucho JavaScript 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 invocarlo inmediatamente:

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

    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. Extraer

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

  3. Alternativa (opcional)

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

  4. Caché

    Los resultados se almacenan en caché durante 15 minutos (configurable) para reducir las obtenciones repetidas de la misma URL.

web_fetch emite una línea de progreso pública solo cuando la obtención todavía está pendiente después de cinco segundos:

Fetching page content...

Los aciertos rápidos de caché y las respuestas rápidas de la red finalizan antes de que se active el temporizador, por lo que no muestran una línea de progreso. Si se cancela la llamada, se borra el temporizador. Cuando la obt最终mente se completa, el agente recibe el resultado normal de la herramienta; la línea de progreso es solo un estado de la interfaz de usuario del canal y nunca contiene el contenido de la página obtenida.

{
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 usar como respaldo Firecrawl para evitar la 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 admite 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 respaldo de obtención.
  • Si se omite provider, OpenClaw detecta automáticamente el primer proveedor web-fetch listo a partir de las credenciales disponibles. El 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 el respaldo del proveedor 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) de salida de confianza, establezca tools.web.fetch.useTrustedEnvProxy: true.

En este modo, OpenClaw aún 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 realizar la fijación 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 se limita 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 opt-ins reducidos para pilas de proxy de IP falsas de confianza; déjelos sin configurar a menos que su proxy sea propietario de esos rangos sintéticos y haga cumplir su propia política de destino
  • Las redirecciones se verifican y limitan mediante maxRedirects
  • useTrustedEnvProxy es una opción explícita y solo debe habilitarse para proxies controlados por el operador que aún hacen cumplir 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, añada 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 JS
  • Firecrawl — herramientas de búsqueda y extracción de Firecrawl