Aller au contenu

Recherche Web

L’outil web_search recherche le web en utilisant votre provider configuré et renvoie les résultats. Les résultats sont mis en cache par requête pendant 15 minutes (configurable).

OpenClaw inclut également x_search pour les billets X (anciennement Twitter) et web_fetch pour la récupération légère d’URL. À ce stade, web_fetch reste local tandis que web_search et x_search peuvent utiliser xAI Responses en arrière-plan.

  1. Obtenir une clé d'API

    Choisissez un provider et obtenez une clé d’API. Consultez les pages des providers ci-dessous pour les liens d’inscription.

  2. Configurer

    Fenêtre de terminal
    openclaw configure --section web

    Cela stocke la clé et définit le provider. Vous pouvez également définir une env var (ex. BRAVE_API_KEY) et passer cette étape.

  3. Utiliser

    L’agent peut maintenant appeler web_search :

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

    Pour les billets X, utilisez :

    await x_search({ query: "dinner recipes" });
Recherche Brave

Résultats structurés avec extraits. Prend en charge le mode llm-context, les filtres de pays/langue. Palier gratuit disponible.

DuckDuckGo

Solution de repli sans clé. Aucune clé API nécessaire. Intégration non officielle basée sur HTML.

Exa

Recherche neurale + par mots-clés avec extraction de contenu (extraits, texte, résumés).

Firecrawl

Résultats structurés. Fonctionne mieux avec firecrawl_search et firecrawl_scrape pour une extraction approfondie.

Gemini

Réponses synthétisées par l’IA avec citations via le Google Search grounding.

Grok

Réponses synthétisées par l’IA avec citations via le xAI web grounding.

Kimi

Réponses synthétisées par l’IA avec citations via la recherche web Moonshot.

Perplexity

Résultats structurés avec contrôles d’extraction de contenu et filtrage de domaine.

SearXNG

Moteur de recherche méta auto-hébergé. Aucune clé API nécessaire. Agrège Google, Bing, DuckDuckGo, et plus encore.

Tavily

Résultats structurés avec profondeur de recherche, filtrage par sujet, et tavily_extract pour l’extraction d’URL.

FournisseurStyle de résultatFiltresClé API
BraveExtraits structurésPays, langue, heure, mode llm-contextBRAVE_API_KEY
DuckDuckGoExtraits structurésAucune (sans clé)
ExaStructuré + extraitMode neuronal/par mots-clés, date, extraction de contenuEXA_API_KEY
FirecrawlExtraits structurésVia l’outil firecrawl_searchFIRECRAWL_API_KEY
GeminiSynthétisé par IA + citationsGEMINI_API_KEY
GrokSynthétisé par IA + citationsXAI_API_KEY
KimiSynthétisé par IA + citationsKIMI_API_KEY / MOONSHOT_API_KEY
PerplexityExtraits structurésPays, langue, heure, domaines, limites de contenuPERPLEXITY_API_KEY / OPENROUTER_API_KEY
SearXNGExtraits structurésCatégories, langueAucune (auto-hébergé)
TavilyExtraits structurésVia l’outil tavily_searchTAVILY_API_KEY

Les modèles compatibles avec Codex peuvent utiliser l’outil web_search Responses natif du fournisseur au lieu de la fonction gérée web_search de OpenClaw.

  • Configurez-le sous tools.web.search.openaiCodex
  • Il ne s’active que pour les modèles compatibles Codex (openai-codex/* ou fournisseurs utilisant api: "openai-codex-responses")
  • Le web_search géré s’applique toujours aux modèles non Codex
  • mode: "cached" est le paramètre par défaut et recommandé
  • tools.web.search.enabled: false désactive la recherche gérée et native
{
tools: {
web: {
search: {
enabled: true,
openaiCodex: {
enabled: true,
mode: "cached",
allowedDomains: ["example.com"],
contextSize: "high",
userLocation: {
country: "US",
city: "New York",
timezone: "America/New_York",
},
},
},
},
},
}

Si la recherche native Codex est activée mais que le modèle actuel n’est pas compatible Codex, OpenClaw conserve le comportement normal géré web_search.

Les listes de fournisseurs dans la documentation et les flux de configuration sont par ordre alphabétique. La détection automatique conserve un ordre de priorité distinct :

Si aucun provider n’est défini, OpenClaw vérifie les clés API dans cet ordre et utilise la première trouvée :

  1. BraveBRAVE_API_KEY ou plugins.entries.brave.config.webSearch.apiKey
  2. GeminiGEMINI_API_KEY ou plugins.entries.google.config.webSearch.apiKey
  3. GrokXAI_API_KEY ou plugins.entries.xai.config.webSearch.apiKey
  4. KimiKIMI_API_KEY / MOONSHOT_API_KEY ou plugins.entries.moonshot.config.webSearch.apiKey
  5. PerplexityPERPLEXITY_API_KEY / OPENROUTER_API_KEY ou plugins.entries.perplexity.config.webSearch.apiKey
  6. FirecrawlFIRECRAWL_API_KEY ou plugins.entries.firecrawl.config.webSearch.apiKey
  7. TavilyTAVILY_API_KEY ou plugins.entries.tavily.config.webSearch.apiKey

Les fournisseurs sans clé sont vérifiés après les fournisseurs pris en charge par API :

  1. DuckDuckGo — aucune clé nécessaire (ordre de détection automatique 100)
  2. SearXNGSEARXNG_BASE_URL ou plugins.entries.searxng.config.webSearch.baseUrl (ordre de détection automatique 200)

Si aucun fournisseur n’est détecté, il revient à Brave (vous obtiendrez une erreur de clé manquante vous invitant à en configurer une).

{
tools: {
web: {
search: {
enabled: true, // default: true
provider: "brave", // or omit for auto-detection
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
},
},
}

La configuration spécifique au fournisseur (clés API, URL de base, modes) se trouve sous plugins.entries.<plugin>.config.webSearch.*. Consultez les pages des fournisseurs pour des exemples.

Pour x_search, configurez tools.web.x_search.* directement. Il utilise le même fallback XAI_API_KEY que la recherche web Grok. Lorsque vous choisissez Grok pendant openclaw onboard ou openclaw configure --section web, OpenClaw peut également proposer une configuration x_search facultative avec la même clé. Il s’agit d’une étape de suivi distincte dans le chemin Grok, et non d’un choix distinct de fournisseur de recherche web de niveau supérieur. Si vous choisissez un autre fournisseur, OpenClaw n’affiche pas la demande x_search.

Exécutez openclaw configure --section web ou définissez la clé directement :

{
plugins: {
entries: {
brave: {
config: {
webSearch: {
apiKey: "YOUR_KEY", // pragma: allowlist secret
},
},
},
},
},
}
ParamètreDescription
queryRequête de recherche (requis)
countRésultats à renvoyer (1-10, par défaut : 5)
countryCode pays ISO à 2 lettres (ex. “US”, “DE”)
languageCode de langue ISO 639-1 (ex. “en”, “de”)
freshnessFiltre temporel : day, week, month ou year
date_afterRésultats après cette date (YYYY-MM-DD)
date_beforeRésultats avant cette date (YYYY-MM-DD)
ui_langCode de langue de l’interface (Brave uniquement)
domain_filterTableau de liste verte/noire de domaines (Perplexity uniquement)
max_tokensBudget total de contenu, par défaut 25000 (Perplexity uniquement)
max_tokens_per_pageLimite de jetons par page, par défaut 2048 (Perplexity uniquement)

x_search interroge les publications X (anciennement Twitter) à l’aide de xAI et renvoie des réponses synthétisées par l’IA avec des citations. Il accepte les requêtes en langage naturel et des filtres structurés optionnels. OpenClaw n’active l’outil xAI x_search intégré que sur la demande qui traite cet appel d’outil.

{
tools: {
web: {
x_search: {
enabled: true,
apiKey: "xai-...", // optional if XAI_API_KEY is set
model: "grok-4-1-fast-non-reasoning",
inlineCitations: false,
maxTurns: 2,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
},
},
}
ParamètreDescription
queryRequête de recherche (requis)
allowed_x_handlesLimiter les résultats à des comptes X spécifiques
excluded_x_handlesExclure des comptes X spécifiques
from_dateInclure uniquement les publications à partir de cette date (AAAA-MM-JJ)
to_dateInclure uniquement les publications jusqu’à cette date (AAAA-MM-JJ)
enable_image_understandingAutoriser xAI à inspecter les images jointes aux publications correspondantes
enable_video_understandingAutoriser xAI à inspecter les vidéos jointes aux publications correspondantes
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",
});
// 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"],
});

Si vous utilisez des profils d’outils ou des listes d’autorisation, ajoutez web_search, x_search ou group:web :

{
tools: {
allow: ["web_search", "x_search"],
// or: allow: ["group:web"] (includes web_search, x_search, and web_fetch)
},
}
  • Web Fetch — Récupérer une URL et extraire le contenu lisible
  • Web Browser — Automatisation complète du navigateur pour les sites riches en JS
  • Grok Search — Grok en tant que fournisseur web_search