Saltar al contenido principal
web_search busca en la web con tu proveedor configurado y devuelve resultados normalizados, almacenados en caché por consulta durante 15 minutos (configurable). OpenClaw también incluye x_search para publicaciones de X (antes Twitter) y web_fetch para obtener URL de forma ligera. web_fetch siempre se ejecuta localmente; web_search se enruta mediante xAI Responses cuando Grok es el proveedor, y x_search siempre usa xAI Responses.
web_search es una herramienta HTTP ligera, no automatización de navegador. Para sitios con mucho JS o inicios de sesión, usa Navegador web. Para obtener una URL específica, usa Obtención web.

Inicio rápido

1

Choose a provider

Elige un proveedor y completa cualquier configuración requerida. Algunos proveedores no requieren clave; otros necesitan una clave de API. Consulta las páginas de proveedores siguientes para obtener detalles.
2

Configure

openclaw configure --section web
Esto almacena el proveedor y cualquier credencial necesaria. Para proveedores respaldados por API, también puedes establecer la variable de entorno del proveedor (por ejemplo, BRAVE_API_KEY) y omitir este paso.
3

Use it

await web_search({ query: "OpenClaw plugin SDK" });
Para publicaciones de X:
await x_search({ query: "dinner recipes" });

Elegir un proveedor

Brave Search

Resultados estructurados con fragmentos. Admite el modo llm-context y filtros de país/idioma. Nivel gratuito disponible.

Codex Hosted Search

Respuestas fundamentadas y sintetizadas por IA mediante tu cuenta del servidor de aplicación de Codex.

DuckDuckGo

Proveedor sin clave. No se necesita clave de API. Integración no oficial basada en HTML.

Exa

Búsqueda neuronal + por palabras clave con extracción de contenido (resaltados, texto, resúmenes).

Firecrawl

Resultados estructurados. Mejor combinado con firecrawl_search y firecrawl_scrape para extracción profunda.

Gemini

Respuestas sintetizadas por IA con citas mediante fundamentación de Google Search.

Grok

Respuestas sintetizadas por IA con citas mediante fundamentación web de xAI.

Kimi

Respuestas sintetizadas por IA con citas mediante búsqueda web de Moonshot; las alternativas de chat sin fundamentación fallan explícitamente.

MiniMax Search

Resultados estructurados mediante la API de búsqueda de MiniMax Token Plan.

Ollama Web Search

Búsqueda mediante un host local de Ollama con sesión iniciada o la API alojada de Ollama.

Parallel

API Parallel Search de pago (PARALLEL_API_KEY); límites de tasa más altos y ajuste de objetivos.

Parallel Search (Free)

Activación sin clave. MCP de búsqueda gratuito de Parallel, con extractos densos optimizados para LLM y sin clave de API.

Perplexity

Resultados estructurados con controles de extracción de contenido y filtrado por dominio.

SearXNG

Metabúsqueda autoalojada. No se necesita clave de API. Agrega Google, Bing, DuckDuckGo y más.

Tavily

Resultados estructurados con profundidad de búsqueda, filtrado por tema y tavily_extract para extracción de URL.

Comparación de proveedores

ProveedorEstilo de resultadosFiltrosClave de API
BraveFragmentos estructuradosPaís, idioma, tiempo, modo llm-contextBRAVE_API_KEY
Codex Hosted SearchSintetizados por IA + URL de fuentesDominios, tamaño de contexto, ubicación del usuarioNinguna; usa inicio de sesión de Codex/OpenAI
DuckDuckGoFragmentos estructuradosNinguna (sin clave)
ExaEstructurados + extraídosModo neuronal/por palabras clave, fecha, extracción de contenidoEXA_API_KEY
FirecrawlFragmentos estructuradosMediante la herramienta firecrawl_searchFIRECRAWL_API_KEY
GeminiSintetizados por IA + citasGEMINI_API_KEY
GrokSintetizados por IA + citasOAuth de xAI, XAI_API_KEY o plugins.entries.xai.config.webSearch.apiKey
KimiSintetizados por IA + citas; falla con alternativas de chat sin fundamentaciónKIMI_API_KEY / MOONSHOT_API_KEY
MiniMax SearchFragmentos estructuradosRegión (global / cn)MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN
Ollama Web SearchFragmentos estructuradosNinguna para hosts locales con sesión iniciada; OLLAMA_API_KEY para búsqueda directa en https://ollama.com
ParallelExtractos densos clasificados para contexto de LLMPARALLEL_API_KEY (de pago)
Parallel Search (Free)Extractos densos clasificados para contexto de LLMNinguna (MCP de búsqueda gratuito)
PerplexityFragmentos estructuradosPaís, idioma, tiempo, dominios, límites de contenidoPERPLEXITY_API_KEY / OPENROUTER_API_KEY
SearXNGFragmentos estructuradosCategorías, idiomaNinguna (autoalojado)
TavilyFragmentos estructuradosMediante la herramienta tavily_searchTAVILY_API_KEY

Detección automática

Las listas de proveedores en la documentación y los flujos de configuración están en orden alfabético. La detección automática usa un orden de precedencia separado y fijo, y solo elige un proveedor que necesita una credencial (requiresCredential !== false) cuando encuentra una configurada. Si no se establece provider, OpenClaw comprueba los proveedores en este orden y usa el primero que esté listo: Primero los proveedores respaldados por API:
  1. BraveBRAVE_API_KEY o plugins.entries.brave.config.webSearch.apiKey (orden 10)
  2. MiniMax SearchMINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEY o plugins.entries.minimax.config.webSearch.apiKey (orden 15)
  3. Geminiplugins.entries.google.config.webSearch.apiKey, GEMINI_API_KEY o models.providers.google.apiKey (orden 20)
  4. Grok — OAuth de xAI, XAI_API_KEY o plugins.entries.xai.config.webSearch.apiKey (orden 30)
  5. KimiKIMI_API_KEY / MOONSHOT_API_KEY o plugins.entries.moonshot.config.webSearch.apiKey (orden 40)
  6. PerplexityPERPLEXITY_API_KEY / OPENROUTER_API_KEY o plugins.entries.perplexity.config.webSearch.apiKey (orden 50)
  7. FirecrawlFIRECRAWL_API_KEY o plugins.entries.firecrawl.config.webSearch.apiKey (orden 60)
  8. ExaEXA_API_KEY o plugins.entries.exa.config.webSearch.apiKey; el plugins.entries.exa.config.webSearch.baseUrl opcional anula el endpoint de Exa (orden 65)
  9. TavilyTAVILY_API_KEY o plugins.entries.tavily.config.webSearch.apiKey (orden 70)
  10. Parallel — API Parallel Search de pago mediante PARALLEL_API_KEY o plugins.entries.parallel.config.webSearch.apiKey; el plugins.entries.parallel.config.webSearch.baseUrl opcional anula el endpoint (orden 75)
Después, proveedores de endpoint configurado:
  1. SearXNGSEARXNG_BASE_URL o plugins.entries.searxng.config.webSearch.baseUrl (orden 200)
Los proveedores sin clave como Parallel Search (Free), DuckDuckGo, Ollama Web Search y Codex Hosted Search nunca ganan la detección automática, aunque tengan un valor de orden interno. Solo se usan cuando los seleccionas explícitamente con tools.web.search.provider o mediante openclaw configure --section web. OpenClaw no envía consultas gestionadas de web_search a un proveedor sin clave solo porque no haya ningún proveedor respaldado por API configurado. Los modelos de OpenAI Responses son una excepción: mientras tools.web.search.provider no esté establecido, usan la búsqueda web nativa de OpenAI en lugar de los proveedores gestionados anteriores (consulta más abajo). Establece tools.web.search.provider en parallel-free (u otro proveedor) para enrutarlos por la ruta gestionada en su lugar.
Todos los campos de clave de proveedor admiten objetos SecretRef. Las SecretRefs con ámbito de Plugin bajo plugins.entries.<plugin>.config.webSearch.apiKey se resuelven para los proveedores de búsqueda web respaldados por API instalados, incluidos Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax, Parallel, Perplexity y Tavily, tanto si el proveedor se elige explícitamente mediante tools.web.search.provider como si se selecciona mediante detección automática. En el modo de detección automática, OpenClaw resuelve solo la clave del proveedor seleccionado: las SecretRefs no seleccionadas permanecen inactivas, por lo que puedes mantener varios proveedores configurados sin pagar el coste de resolución de los que no estás usando.

Búsqueda web nativa de OpenAI

Direct OpenAI Responses models (api: "openai-responses", provider openai, sin URL base o con una URL base oficial de la API de OpenAI) usan automáticamente la herramienta web_search alojada de OpenAI cuando la búsqueda web de OpenClaw está habilitada y no se ha fijado ningún proveedor gestionado. Este es un comportamiento propiedad del proveedor en el Plugin de OpenAI incluido y no se aplica a URL base de proxy compatibles con OpenAI ni a rutas de Azure. Define tools.web.search.provider en otro proveedor, como brave, para conservar la herramienta gestionada web_search para modelos de OpenAI, o define tools.web.search.enabled: false para deshabilitar tanto la búsqueda gestionada como la búsqueda nativa de OpenAI.

Búsqueda web nativa de Codex

El runtime del app-server de Codex usa automáticamente la herramienta web_search alojada de Codex cuando la búsqueda web está habilitada y no se ha seleccionado ningún proveedor gestionado. La búsqueda alojada nativa y la herramienta dinámica web_search gestionada por OpenClaw son mutuamente excluyentes, por lo que la búsqueda gestionada no puede eludir las restricciones de dominio nativas. OpenClaw usa la herramienta gestionada cuando la búsqueda alojada no está disponible, se ha deshabilitado explícitamente o se reemplaza por un proveedor gestionado seleccionado. OpenClaw mantiene deshabilitada la extensión independiente web.run de Codex (features.standalone_web_search: false) porque el tráfico de app-server de producción rechaza su espacio de nombres web definido por el usuario.
  • Configura la búsqueda nativa en tools.web.search.openaiCodex
  • Define tools.web.search.provider: "codex" para aprovisionar Codex Hosted Search como proveedor gestionado de web_search para cualquier modelo principal. Cada llamada ejecuta un turno efímero acotado del app-server de Codex y falla si Codex no emite un elemento webSearch alojado.
  • mode: "cached" es la preferencia predeterminada, pero Codex la resuelve como acceso externo en vivo para turnos de app-server sin restricciones; define "live" para solicitar explícitamente acceso en vivo
  • Define tools.web.search.provider en un proveedor gestionado, como brave, para usar el web_search gestionado por OpenClaw en su lugar
  • Define tools.web.search.openaiCodex.enabled: false para excluirte de la búsqueda alojada por Codex; otros proveedores gestionados siguen disponibles
  • Restringir la superficie de herramientas nativas de Codex también mantiene disponible el web_search gestionado
  • Cuando se define allowedDomains, el fallback gestionado automático falla en modo cerrado si la búsqueda alojada no está disponible, de modo que la lista de permitidos nativa no pueda eludirse
  • Las ejecuciones solo con LLM y herramientas deshabilitadas deshabilitan tanto la búsqueda nativa como la gestionada
  • tools.web.search.enabled: false deshabilita tanto la búsqueda gestionada como la nativa
Los cambios persistentes efectivos en la política de búsqueda de Codex inician un nuevo hilo vinculado para que un hilo de app-server ya cargado no pueda mantener acceso obsoleto a la búsqueda alojada. Las restricciones transitorias por turno usan un hilo restringido temporal y conservan la vinculación existente para reanudar más tarde. El tráfico directo de OpenAI ChatGPT Responses también puede usar la herramienta web_search alojada de OpenAI. Esa ruta separada sigue siendo opt-in mediante tools.web.search.openaiCodex.enabled: true y solo se aplica a modelos openai/* aptos que usen api: "openai-chatgpt-responses".
{
  tools: {
    web: {
      search: {
        enabled: true,
        // Opcional: usa Codex Hosted Search también desde modelos principales que no sean Codex.
        provider: "codex",
        openaiCodex: {
          enabled: true,
          mode: "cached",
          allowedDomains: ["example.com"],
          contextSize: "high",
          userLocation: {
            country: "US",
            city: "New York",
            timezone: "America/New_York",
          },
        },
      },
    },
  },
}
Para runtimes y proveedores que no admiten la búsqueda nativa de Codex, Codex puede usar el fallback gestionado web_search a través del espacio de nombres de herramientas dinámicas de OpenClaw. Usa un proveedor gestionado explícito cuando necesites los controles de red específicos del proveedor de OpenClaw en lugar de la búsqueda alojada por Codex. Seleccionar provider: "codex" habilita el Plugin codex incluido y usa las mismas restricciones de tools.web.search.openaiCodex mostradas arriba. Autentica primero el app-server de Codex con openclaw models auth login --provider openai. El agente principal puede usar cualquier modelo o runtime; solo el trabajador de búsqueda acotado se ejecuta a través de Codex.

Seguridad de red

Las llamadas de proveedor HTTP web_search gestionadas usan la ruta de fetch protegida de OpenClaw, limitada al nombre de host propio del proveedor actual. Solo para ese nombre de host, OpenClaw permite respuestas DNS de IP falsa de Surge, Clash y sing-box en 198.18.0.0/15 y fc00::/7. Otros destinos privados, loopback, link-local y de metadatos permanecen bloqueados. Codex Hosted Search es la excepción: su trabajador acotado delega el acceso de red a la herramienta web_search alojada del app-server de Codex. Esta autorización automática no se aplica a URL arbitrarias de web_fetch. Para web_fetch, habilita explícitamente tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange y tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange solo cuando tu proxy de confianza posea esos rangos sintéticos.

Configuración

{
  tools: {
    web: {
      search: {
        enabled: true, // predeterminado: true
        provider: "brave", // u omitir para detección automática
        maxResults: 5,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
      },
    },
  },
}
La configuración específica del proveedor (claves de API, URL base, modos) vive en plugins.entries.<plugin>.config.webSearch.*. Gemini también puede reutilizar models.providers.google.apiKey y models.providers.google.baseUrl como fallbacks de menor prioridad después de su configuración dedicada de búsqueda web y GEMINI_API_KEY. Consulta las páginas de proveedores para ver ejemplos. Grok también puede reutilizar un perfil de autenticación OAuth de xAI desde openclaw models auth login --provider xai --method oauth; la configuración con clave de API sigue siendo el fallback. tools.web.search.provider se valida contra los ids de proveedor de búsqueda web declarados por los manifiestos de plugins incluidos e instalados. Un error tipográfico como "brvae" falla la validación de configuración en lugar de volver silenciosamente a la detección automática. Si un proveedor configurado solo tiene evidencia de Plugin obsoleta, como un bloque sobrante plugins.entries.<plugin> después de desinstalar un Plugin de terceros, OpenClaw mantiene el arranque resiliente e informa una advertencia para que puedas reinstalar el Plugin o ejecutar openclaw doctor --fix para limpiar la configuración obsoleta. La selección del proveedor de fallback de web_fetch es independiente:
  • elígelo con tools.web.fetch.provider
  • u omite ese campo y deja que OpenClaw detecte automáticamente el primer proveedor de web-fetch listo a partir de las credenciales configuradas
  • web_fetch sin sandbox puede usar proveedores de Plugin instalados que declaren contracts.webFetchProviders; los fetches en sandbox permiten proveedores incluidos e instalaciones verificadas de Plugins oficiales, pero excluyen Plugins externos de terceros
  • el Plugin oficial de Firecrawl es hoy el único colaborador incluido de webFetchProviders, configurado en plugins.entries.firecrawl.config.webFetch.*
Cuando eliges Kimi durante openclaw onboard o openclaw configure --section web, OpenClaw también puede pedir:
  • la región de la API de Moonshot (https://api.moonshot.ai/v1 o https://api.moonshot.cn/v1)
  • el modelo predeterminado de búsqueda web de Kimi (predeterminado: kimi-k2.6)
Para x_search, configura plugins.entries.xai.config.xSearch.*. Usa el mismo perfil de autenticación de xAI que el chat, o la credencial XAI_API_KEY / credencial de búsqueda web del Plugin usada por la búsqueda web de Grok. La configuración heredada tools.web.x_search.* se migra automáticamente con openclaw doctor --fix. Cuando eliges Grok durante openclaw onboard o openclaw configure --section web, OpenClaw también ofrece la configuración opcional de x_search con la misma credencial justo después de que se completa la configuración de Grok. Este es un paso de seguimiento separado dentro de la ruta de Grok, no una opción separada de proveedor de búsqueda web de nivel superior. Si eliges otro proveedor, OpenClaw no muestra el prompt de x_search.

Almacenamiento de claves de API

Ejecuta openclaw configure --section web o define la clave directamente:
{
  plugins: {
    entries: {
      brave: {
        config: {
          webSearch: {
            apiKey: "YOUR_KEY", // pragma: allowlist secret
          },
        },
      },
    },
  },
}

Parámetros de la herramienta

ParámetroDescripción
queryConsulta de búsqueda (obligatoria)
countResultados a devolver (1-10, predeterminado: 5)
countryCódigo de país ISO de 2 letras (p. ej., “US”, “DE”)
languageCódigo de idioma ISO 639-1 (p. ej., “en”, “de”)
search_langCódigo de idioma de búsqueda (solo Brave)
freshnessFiltro de tiempo: day, week, month o year
date_afterResultados posteriores a esta fecha (YYYY-MM-DD)
date_beforeResultados anteriores a esta fecha (YYYY-MM-DD)
ui_langCódigo de idioma de la UI (solo Brave)
domain_filterArray de lista de permitidos/denegados de dominios (solo Perplexity)
max_tokensPresupuesto total de tokens de contenido, solo API nativa de Perplexity Search
max_tokens_per_pageLímite de tokens de extracción por página, solo API nativa de Perplexity Search
No todos los parámetros funcionan con todos los proveedores. El modo llm-context de Brave rechaza ui_lang; date_before también necesita date_after porque los rangos de freshness personalizados de Brave requieren fechas de inicio y fin. Gemini, Grok y Kimi devuelven una respuesta sintetizada con citas. Aceptan count por compatibilidad con la herramienta compartida, pero no cambia la forma de la respuesta fundamentada. Gemini trata la freshness day como una indicación de recencia; valores de freshness más amplios y fechas explícitas definen rangos de tiempo para la fundamentación de Google Search. Perplexity se comporta de la misma manera cuando usas la ruta de compatibilidad Sonar/OpenRouter (plugins.entries.perplexity.config.webSearch.baseUrl / model u OPENROUTER_API_KEY); esa ruta también elimina la compatibilidad con max_tokens y max_tokens_per_page. SearXNG acepta http:// solo para hosts de red privada o loopback de confianza; los endpoints públicos de SearXNG deben usar https://. Firecrawl y Tavily solo admiten query y count mediante web_search; usa sus herramientas dedicadas para opciones avanzadas.
x_search consulta publicaciones de X (antes Twitter) usando xAI y devuelve respuestas sintetizadas por IA con citas. Acepta consultas en lenguaje natural y filtros estructurados opcionales. OpenClaw construye la herramienta integrada x_search de xAI por solicitud en lugar de mantenerla registrada permanentemente, por lo que solo está activa para el turno que realmente la llama.
xAI documenta x_search como compatible con búsqueda por palabras clave, búsqueda semántica, búsqueda de usuarios y obtención de hilos. Para estadísticas de interacción por publicación, como reposts, respuestas, marcadores o vistas, prefiere una búsqueda dirigida de la URL exacta de la publicación o del ID de estado. Las búsquedas amplias por palabras clave pueden encontrar la publicación correcta, pero devolver metadatos por publicación menos completos. Un buen patrón es: localizar primero la publicación y luego ejecutar una segunda consulta x_search centrada en esa publicación exacta.
{
  plugins: {
    entries: {
      xai: {
        config: {
          xSearch: {
            enabled: true,
            model: "grok-4-1-fast-non-reasoning",
            baseUrl: "https://api.x.ai/v1", // optional, overrides webSearch.baseUrl
            inlineCitations: false,
            maxTurns: 2,
            timeoutSeconds: 30,
            cacheTtlMinutes: 15,
          },
          webSearch: {
            apiKey: "xai-...", // optional if an xAI auth profile or XAI_API_KEY is set
            baseUrl: "https://api.x.ai/v1", // optional shared xAI Responses base URL
          },
        },
      },
    },
  },
}
x_search publica en <baseUrl>/responses cuando plugins.entries.xai.config.xSearch.baseUrl está definido. Si ese campo se omite, recurre a plugins.entries.xai.config.webSearch.baseUrl, luego al tools.web.search.grok.baseUrl heredado y, finalmente, al endpoint público de xAI (https://api.x.ai/v1).
ParámetroDescripción
queryConsulta de búsqueda (obligatoria)
allowed_x_handlesRestringe los resultados a identificadores de X específicos
excluded_x_handlesExcluye identificadores de X específicos
from_dateIncluye solo publicaciones en esta fecha o posteriores (YYYY-MM-DD)
to_dateIncluye solo publicaciones en esta fecha o anteriores (YYYY-MM-DD)
enable_image_understandingPermite que xAI inspeccione imágenes adjuntas a publicaciones coincidentes
enable_video_understandingPermite que xAI inspeccione videos adjuntos a publicaciones coincidentes
await x_search({
  query: "dinner recipes",
  allowed_x_handles: ["nytfood"],
  from_date: "2026-03-01",
});
// Per-post stats: use the exact status URL or status ID when possible
await x_search({
  query: "https://x.com/huntharo/status/1905678901234567890",
});

Ejemplos

// Basic search
await web_search({ query: "OpenClaw plugin SDK" });

// German-specific search
await web_search({ query: "TV online schauen", country: "DE", language: "de" });

// Recent results (past week)
await web_search({ query: "AI developments", freshness: "week" });

// Date range
await web_search({
  query: "climate research",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// Domain filtering (Perplexity only)
await web_search({
  query: "product reviews",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

Perfiles de herramientas

Si usas perfiles de herramientas o listas de permitidos, agrega web_search, x_search o group:web:
{
  tools: {
    allow: ["web_search", "x_search"],
    // or: allow: ["group:web"]  (includes web_search, x_search, and web_fetch)
  },
}

Relacionado