web_fetch realiza una solicitud HTTP GET simple y extrae contenido legible (de HTML a
markdown o texto). No ejecuta JavaScript. Para sitios que dependen en gran medida de JS o
páginas protegidas mediante inicio de sesión, use en su lugar el navegador web.
Inicio rápido
Está habilitado de forma predeterminada y no requiere configuración:Parámetros de la herramienta
string
requerido
URL que se obtendrá. Solo
http(s).'markdown' | 'text'
predeterminado:"markdown"
Formato de salida tras extraer el contenido principal.
number
Trunca la salida a esta cantidad de caracteres. Se limita a
tools.web.fetch.maxCharsCap.Resultado
web_fetch devuelve un resultado estructurado cerrado con estos campos:
- Metadatos de la solicitud:
url,finalUrl,status,extractModeyextractor - Metadatos opcionales de la respuesta:
contentType,titleywarning(se omiten si no están presentes) - Metadatos del contenido encapsulado:
externalContent,truncated,length,rawLength,fetchedAt,tookMsytext cached: trueopcional cuando se produce un acierto de cachéspill: { path, chars, truncated? }opcional cuando se escribió contenido truncado en un archivo temporal privado;truncatedsolo está presente cuando ese archivo contiene contenido parcial de la fuente
length es la longitud encapsulada de text. rawLength es la longitud del contenido extraído
antes de encapsular el contenido externo.
Funcionamiento
1
Obtención
Envía una solicitud HTTP GET con un User-Agent similar al de Chrome y el encabezado
Accept-Language. Bloquea nombres de host privados o internos y vuelve a comprobar las redirecciones.2
Extracción
Ejecuta Readability (extracción del contenido principal) sobre la respuesta HTML.
3
Alternativa (opcional)
Si Readability falla y hay disponible un proveedor de obtención, vuelve a intentarlo mediante
dicho proveedor (por ejemplo, el modo de evasión de bots de Firecrawl).
4
Caché
Los resultados se almacenan en caché durante 15 minutos (configurable) para reducir las
obtenciones repetidas de la misma URL.
Actualizaciones de progreso
web_fetch emite una línea pública de progreso únicamente si la obtención sigue pendiente
después de cinco segundos:
Configuración
Alternativa de Firecrawl
Si la extracción de Readability falla,web_fetch puede recurrir a
Firecrawl para evadir bots y mejorar la extracción:
plugins.entries.firecrawl.config.webFetch.apiKey es opcional y admite objetos SecretRef.
La configuración heredada tools.web.fetch.firecrawl.* se migra automáticamente a
plugins.entries.firecrawl.config.webFetch mediante openclaw doctor --fix.
Si configura una SecretRef de clave de API de Firecrawl y esta no se puede resolver sin una
alternativa de entorno
FIRECRAWL_API_KEY, el inicio del Gateway falla de inmediato.Las sustituciones de
baseUrl de Firecrawl están restringidas: el tráfico alojado utiliza
https://api.firecrawl.dev; las sustituciones autoalojadas deben apuntar a puntos de conexión privados o
internos, y http:// solo se acepta para esos destinos privados.tools.web.fetch.providerselecciona explícitamente el proveedor alternativo de obtención.- Si se omite
provider, OpenClaw detecta automáticamente el primer proveedor de obtención web listo a partir de las credenciales configuradas. Las llamadasweb_fetchno aisladas pueden usar plugins instalados que declarencontracts.webFetchProvidersy registren un proveedor correspondiente en tiempo de ejecución. Actualmente, el plugin oficial de Firecrawl proporciona esta alternativa. - Las llamadas
web_fetchaisladas permiten proveedores incluidos y proveedores instalados cuya procedencia oficial de npm o ClawHub esté verificada. Actualmente, esto permite el plugin oficial de Firecrawl; los plugins externos de obtención de terceros permanecen excluidos. - Si Readability está deshabilitado,
web_fetchpasa directamente al proveedor alternativo seleccionado. Si no hay ningún proveedor disponible, falla de forma cerrada.
Proxy de entorno de confianza
Si la implementación requiere queweb_fetch pase por un proxy HTTP(S)
de salida de confianza, establezca tools.web.fetch.useTrustedEnvProxy: true.
En este modo, OpenClaw sigue aplicando 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 esta opción únicamente cuando el proxy esté controlado por el operador y aplique
la política de salida después de la resolución de DNS.
Si no se ha configurado ninguna variable de entorno de proxy HTTP(S), o el host de destino está excluido mediante
NO_PROXY, web_fetch recurre a la ruta estricta normal con fijación de DNS
local.Límites y seguridad
maxCharsse limita atools.web.fetch.maxCharsCap(valor predeterminado:20000)- El cuerpo de la respuesta se limita a
maxResponseBytes(valor predeterminado:750000, limitado a 32000-10000000) antes del análisis; las respuestas demasiado grandes se truncan con una advertencia - Se bloquean los nombres de host privados o internos
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangeytools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangeson activaciones explícitas específicas para conjuntos de proxies de IP falsas de confianza; déjelas sin establecer a menos que el proxy sea propietario de esos intervalos sintéticos y aplique su propia política de destinos- Las redirecciones se comprueban y se limitan mediante
maxRedirects(valor predeterminado:3) useTrustedEnvProxyrequiere una activación explícita y solo debe habilitarse para proxies controlados por el operador que sigan aplicando la política de salida después de la resolución de DNSweb_fetchfunciona con el mejor esfuerzo; algunos sitios necesitan el navegador web
Perfiles de herramientas
Si utiliza perfiles de herramientas o listas de permitidos, añadaweb_fetch o group:web:
Contenido relacionado
- Búsqueda web: busca en la web con varios proveedores
- Navegador web: automatización completa del navegador para sitios que dependen en gran medida de JS
- Firecrawl: herramientas de búsqueda y extracción de Firecrawl