Guide de sélection des fournisseurs de recherche OpenClaw (Brave/Gemini/Grok/Tavily/SerpAPI, etc.)
Difficulté : Intermédiaire | Durée : 20 minutes | Bénéfice : Maîtriser comment choisir le fournisseur de recherche le plus adapté à OpenClaw selon des scénarios réels.
Lecteurs cibles
- Développeurs ayant terminé l'installation de base d'OpenClaw et prêts à intégrer sérieusement des capacités de recherche.
- Ingénieurs ne sachant pas quel fournisseur choisir parmi les 10 options disponibles.
- Utilisateurs souhaitant personnaliser en profondeur le comportement de recherche pour des scénarios spécifiques (RAG / Veille d'opinion / Suivi e-commerce, etc.).
Dépendances clés
- OpenClaw (dernière version)
- Node.js 18+
- Au moins une clé API d'un fournisseur de recherche
Structure du projet
openclaw/
├── config.yaml # Toutes les configurations des fournisseurs sont ici
└── .env # Les clés API sont stockées ici, ne pas soumettre au dépôt
1. Aperçu des capacités de recherche d'OpenClaw
Dans la boucle agentique d'OpenClaw, l'outil de recherche joue le rôle de "couche de perception en temps réel". Lorsque l'Agent juge que ses données d'entraînement sont insuffisantes, il appelle proactivement l'outil de recherche pour compléter l'information avant de décider de la prochaine action.
Question utilisateur
↓
Réflexion de l'Agent : Ai-je besoin d'informations récentes ?
↓ Oui
Appel du Fournisseur de recherche → Obtention des résultats
↓
Intégration de l'information → Génération de la réponse
[!TIP]
Sans fournisseur de recherche, OpenClaw ne peut se fier qu'aux données d'entraînement du modèle. Face à des questions comme "Quelle est la dernière version de..." ou "Les actualités d'aujourd'hui", il risque de répondre de manière erronée. Configurer la recherche est la première étape pour rendre l'Agent véritablement "vivant".
OpenClaw supporte actuellement 10 fournisseurs de recherche, répartis en deux catégories :
| Type | Fournisseur | Caractéristiques | Crédits gratuits | Prix de départ |
|---|---|---|---|---|
| Officiel | Perplexity | Résultats structurés, filtres temps/domaine | Aucun | $1/M tokens |
| Officiel | Brave Search | Priorité vie privée, recherche régionale | ~1,000 /mois | $5/1k |
| Officiel | Gemini | Écosystème Google, Grounding auto | Généreux | Facturation au prompt |
| Officiel | Grok | Double recherche Web + Plateforme X | Aucun | $10/1k appels |
| Officiel | Kimi | Contexte ultra-long de 256K | Aucun | $0.60/M tokens |
| Tiers | Tavily | Optimisé pour LLM, sortie structurée | 1,000 /mois | Paiement à l'usage |
| Tiers | Serper.dev | SERP Google le plus rapide et moins cher | 2,500 offerts | $0.30/1k |
| Tiers | SerpAPI | Multi-moteurs, support des captures d'écran | 250 /mois | $7.50/1k |
| Tiers | Exa | Recherche sémantique par réseau neuronal | Essai gratuit | Paiement à l'usage |
| Tiers | DataForSEO | Niveau entreprise, 10+ moteurs | $1 offert | $0.60/1k |
2. Dimensions clés de sélection
Alignez-vous sur ces 4 dimensions avant de choisir un fournisseur :
| Dimension | Question clé | Impact sur la décision |
|---|---|---|
| Fraîcheur | Quel degré de nouveauté est requis ? Temps réel / Semaine / Mois ? | Les actualités nécessitent un index en temps réel |
| Qualité | Liste de liens bruts ou résumés pré-traités ? | Pour les contextes d'AI Agent, privilégiez le type résumé |
| Coût | Quel est le volume d'appels mensuels estimé ? | Potentiel d'économie énorme sur les scénarios haute fréquence |
| Fonctionnalités | Besoin de liste blanche de domaines / Géo-localisation / Moteur spécifique ? | Les fonctions spécifiques sont cruciales pour les niches |
3. Guide de sélection pour 10 scénarios types
Scénario 1 : Agent d'aide au code
Caractéristiques : Utilisateur demande "Comment corriger cette erreur" ou "Quelle est l'API de cette bibliothèque". Les réponses se trouvent sur GitHub, Stack Overflow ou la documentation officielle.
Recommandation : Perplexity + searchDomainFilter
Le modèle sonar de Perplexity comprend mieux le contenu technique. La liste blanche de domaines force les résultats provenant de sites faisant autorité, évitant que des blogs de basse qualité ne polluent la réponse.
tools:
web:
search:
enabled: true
provider: perplexity
maxResults: 5
perplexity:
apiKey:
source: env
provider: default
id: PERPLEXITY_API_KEY
model: sonar # Léger et rapide
searchRecencyFilter: month # Contenu du mois dernier pour filtrer le trop vieux
searchDomainFilter:
- "github.com"
- "stackoverflow.com"
- "docs.python.org"
- "developer.mozilla.org"
- "pkg.go.dev"
Scénario 2 : Bot de synthèse d'actualités
Caractéristiques : Synthétiser chaque matin les dernières nouvelles d'un domaine (IA / Tech / Finance). La fraîcheur est la priorité absolue.
Recommandation : Serper.dev, type: news
Serper dispose d'un endpoint spécialisé News pour les résultats Google News en temps réel (réponse en 1-2s), avec l'un des tarifs les plus bas du marché.
tools:
web:
search:
enabled: true
provider: serper
maxResults: 10
cacheTtlMinutes: 30 # Cache de 30 min pour éviter de payer plusieurs fois
serper:
apiKey:
source: env
provider: default
id: SERPER_API_KEY
type: news # Basculer sur l'endpoint News
num: 10
Scénario 3 : Agent de recherche académique
Caractéristiques : Aider les chercheurs à trouver des articles et analyser les avancées d'un domaine. Nécessite une compréhension sémantique plutôt qu'une simple correspondance de mots-clés.
Recommandation : Exa, recherche sémantique + filtrage de domaine
Exa utilise des index vectoriels d'embeddings, permettant de comprendre des requêtes comme "applications de l'informatique quantique en cryptographie" sans se limiter aux mots-clés isolés.
tools:
web:
search:
enabled: true
provider: exa
maxResults: 8
exa:
apiKey:
source: env
provider: default
id: EXA_API_KEY
endpoint: auto # Équilibre automatique vitesse/qualité
includeDomains:
- "arxiv.org"
- "semanticscholar.org"
- "pubmed.ncbi.nlm.nih.gov"
- "nature.com"
- "science.org"
startPublishedDate: "2024-01-01" # Uniquement les articles après 2024
Scénario 4 : Veille d'opinion sur X/Twitter
Caractéristiques : Suivre les discussions en temps réel sur une marque ou un produit sur X. Les moteurs de recherche classiques ne capturent pas bien ce contenu.
Recommandation : Grok, activer x_search
C'est la capacité unique de Grok : indexer directement le contenu de la plateforme X.
tools:
web:
search:
enabled: true
provider: grok
grok:
apiKey:
source: env
provider: default
id: XAI_API_KEY
model: grok-4-1-fast # Optimisé pour la recherche agentique
inlineCitations: true
tools:
- type: x_search
fromDate: "2025-01-01"
allowedXHandles: # Optionnel : suivre des comptes précis
- "sama"
- "karpathy"
- type: web_search # Activer aussi le web pour le contexte
enableImageUnderstanding: true
Scénario 5 : Suivi des prix e-commerce
Caractéristiques : Surveiller les prix des concurrents sur Google Shopping ou trouver le prix le plus bas pour un utilisateur.
Recommandation : SerpAPI, engine: google_shopping
SerpAPI est actuellement le seul à proposer une sortie structurée complète pour Google Shopping (prix, marchand, notes).
tools:
web:
search:
enabled: true
provider: serpapi
maxResults: 20
cacheTtlMinutes: 60
serpapi:
apiKey:
source: env
provider: default
id: SERPAPI_API_KEY
engine: google_shopping
gl: us # Marché américain
hl: en
location: "New York, New York, United States"
Scénario 6 : Génération de contenu SEO
Caractéristiques : Analyser massivement la structure SERP (titres, résumés, articles concurrents) pour établir une stratégie éditoriale.
Recommandation : DataForSEO, mode: normal
Le mode normal de DataForSEO utilise une file d'attente (réponse en ~5 min) mais coûte seulement $0.0006/appel, soit 3 fois moins cher que le mode live.
tools:
web:
search:
enabled: true
provider: dataforseo
maxResults: 10
cacheTtlMinutes: 1440 # Données SEO stables, cache de 24h
dataforseo:
login:
source: env
provider: default
id: DATAFORSEO_LOGIN
password:
source: env
provider: default
id: DATAFORSEO_PASSWORD
engine: google
mode: normal # Mode file d'attente
locationCode: 2840 # 2840 = US; 2826 = UK; 2492 = FR
languageCode: en
Scénario 7 : Recherche de connaissances internes à l'entreprise
Caractéristiques : L'entreprise possède des Wikis et documentations techniques. L'Agent doit prioriser ces sources fiables et masquer le web externe non pertinent.
Recommandation : Brave Search + Goggles
La fonction Goggles de Brave permet de personnaliser les règles de classement : booster les docs internes et déclasser les sites concurrents.
tools:
web:
search:
enabled: true
provider: brave
maxResults: 8
brave:
apiKey:
source: env
provider: default
id: BRAVE_API_KEY
goggles_id: "https://raw.githubusercontent.com/votre-org/goggles/main/internal-docs.goggle"
freshness: pm # Contenu du mois dernier
Scénario 8 : Étude de marché multilingue
Caractéristiques : Analyse de marché mondial, besoin de simuler des résultats de recherche dans différents pays/langues.
Recommandation : SerpAPI, via location + hl + gl
SerpAPI permet de se "déguiser" en utilisateur local dans une ville précise.
tools:
web:
search:
enabled: true
provider: serpapi
serpapi:
apiKey:
source: env
provider: default
id: SERPAPI_API_KEY
engine: google
location: "Paris, Ile-de-France, France"
hl: fr # Langue de l'interface
gl: fr # Pays
Scénario 9 : Tâches de masse haute fréquence à bas coût
Caractéristiques : L'Agent doit déclencher des recherches très fréquentes (veille de mots-clés toutes les quelques minutes). Le coût est la préoccupation majeure.
Recommandation : Serper.dev (volume élevé) + Cache agressif
Le tarif de Serper peut descendre à $0.30/1k. Avec un cache intelligent, le coût est imbattable.
tools:
web:
search:
enabled: true
provider: serper
maxResults: 5
cacheTtlMinutes: 120 # Cache de 2h
serper:
apiKey:
source: env
provider: default
id: SERPER_API_KEY
type: search
num: 5
Scénario 10 : Budget $0 au démarrage
Caractéristiques : Projet personnel ou validation précoce, pas de budget mais besoin de fonctions réelles.
Stratégie : Alternance entre les crédits gratuits
| Fournisseur | Crédit gratuit | Total |
|---|---|---|
| Brave Search | ~1,000 /mois | |
| Tavily | 1,000 /mois | |
| SerpAPI | 250 /mois | |
| Total | ~2,250 /mois |
tools:
web:
search:
enabled: true
provider: tavily # Principal : 1000 gratuits
maxResults: 5
cacheTtlMinutes: 60
tavily:
apiKey:
source: env
provider: default
id: TAVILY_API_KEY
searchDepth: basic # Utiliser basic (1 crédit) au lieu d'advanced (2 credits)
4. Tableau récapitulatif Scénario → Fournisseur
| Scénario | Fournisseur recommandé | Paramètre clé | Coût est. (1k appels) |
|---|---|---|---|
| Aide au code | Perplexity | searchDomainFilter | ~$1 |
| Actu / News | Serper.dev | type: news | $0.30–$1 |
| Académique | Exa | includeDomains | À l'usage |
| Veille X/Twitter | Grok | x_search | $10/1k |
| E-commerce | SerpAPI | google_shopping | $7.50 |
| SEO | DataForSEO | mode: normal | $0.60 |
| Interne Entreprise | Brave + Goggles | goggles_id | $5/1k |
| Multilingue | SerpAPI | location, hl, gl | $7.50 |
| Masse / Bas coût | Serper.dev | cacheTtlMinutes: 120 | $0.30–$1 |
| Budget $0 | Alternance Tavily/Brave | searchDepth: basic | $0 |
5. Avancé : Stratégie de secours (Fallback)
Pour la production, configurez une stratégie de secours pour basculer automatiquement si le fournisseur principal échoue ou atteint son quota.
tools:
web:
search:
enabled: true
provider: perplexity # Principal
maxResults: 5
timeoutSeconds: 20
perplexity:
apiKey:
source: env
provider: default
id: PERPLEXITY_API_KEY
model: sonar
# Fournisseur de secours
fallback:
provider: serper
serper:
apiKey:
source: env
provider: default
id: SERPER_API_KEY
type: search
6. FAQ / Dépannage
Q1 : Fournisseur configuré mais l'Agent ne cherche pas.
Raison : Le system prompt ne pousse pas l'Agent à utiliser l'outil.
Solution : Ajoutez : "Si vous n'êtes pas sûr des informations récentes, utilisez l'outil de recherche. Ne devinez pas."
Q2 : searchDomainFilter de Perplexity ne fonctionne pas.
Raison : Format de domaine incorrect (ne pas inclure https://).
Solution : Utilisez github.com au lieu de https://github.com.
Q3 : Grok x_search ne renvoie rien.
Raison : Format obsolète.
Solution : Mettez à jour OpenClaw et utilisez le format tools: [{type: x_search}].
Q4 : Les crédits gratuits sont épuisés, l'Agent affiche une erreur.
Raison : Pas de fallback configuré.
Solution : Configurez un second fournisseur ou basculez manuellement dans le fichier config.yaml.