Patterns de combinaison d'outils
Mis à jour le 30 juillet 2026
Combiner les outils pour des tâches complexes
Les outils de Grok deviennent véritablement puissants quand vous les combinez. Une recherche web seule fournit des données brutes. Ajoutez l’exécution de code, et vous pouvez analyser ces données. Ajoutez vos fonctions personnalisées, et vous pouvez agir sur les résultats. Cette leçon présente les patterns de combinaison les plus utiles.
Pattern 1 : Recherche + Analyse
Le cas d’usage le plus courant combine la recherche web avec l’exécution de code pour collecter des données et en tirer des conclusions :
response = await client.chat.completions.create(
model="grok-4.5",
messages=[{
"role": "user",
"content": "Recherche les cours de Tesla, Apple et Microsoft sur les 30 derniers jours. "
"Calcule la performance relative et identifie la tendance."
}],
tools=[
{"type": "web_search"},
{"type": "code_interpreter"}
],
max_turns=5
)
Grok commence par une recherche web pour obtenir les données financières, puis utilise l’exécution de code pour calculer les performances et tracer un graphique. Tout se passe dans une seule requête grâce au max_turns suffisant.
Pattern 2 : Actualités multi-sources
La combinaison de Web Search et X Search offre une couverture complète sur un sujet :
response = await client.chat.completions.create(
model="grok-4.5",
messages=[{
"role": "user",
"content": "Quelles sont les réactions à l'annonce de la nouvelle réglementation IA en Europe ? "
"Compare les sources officielles et les réactions sur X."
}],
tools=[
{"type": "web_search"},
{"type": "x_search"}
],
max_turns=5
)
La recherche web capture les articles de presse et les communiqués officiels, tandis que la recherche X capture les réactions en temps réel et les opinions.
Pattern 3 : Extraction multi-sources avec fonctions
Pour des workflows plus complexes, combinez les outils serveur avec vos fonctions personnalisées :
tools = [
{"type": "web_search"},
{"type": "code_interpreter"},
{
"type": "function",
"function": {
"name": "save_to_database",
"description": "Sauvegarde les résultats structures dans la base de données",
"parameters": {
"type": "object",
"properties": {
"category": {"type": "string"},
"data": {"type": "object"},
"source_urls": {"type": "array", "items": {"type": "string"}}
},
"required": ["category", "data"]
}
}
}
]
async def research_and_save(topic: str) -> str:
messages = [{"role": "user", "content": f"Recherche et analyse : {topic}. "
"Sauvegarde les résultats structures."}]
while True:
response = await client.chat.completions.create(
model="grok-4.5",
messages=messages,
tools=tools,
max_turns=5
)
message = response.choices[0].message
if not message.tool_calls:
return message.content
messages.append(message)
for tc in message.tool_calls:
if tc.function.name == "save_to_database":
result = await save_to_db(json.loads(tc.function.arguments))
messages.append({
"role": "tool",
"tool_call_id": tc.id,
"content": json.dumps(result)
})
Dans ce pattern, Grok recherche les informations, les analyse avec du code, puis appelle votre fonction pour sauvegarder les résultats. Le workflow est entièrement autonome.
Pattern 4 : Validation croisée
Utilisez plusieurs sources pour vérifier la fiabilité d’une information :
response = await client.chat.completions.create(
model="grok-4.5",
messages=[{
"role": "user",
"content": "Vérifie cette affirmation en croisant les sources : "
"'La France a produit 70% de son electricite a partir du nucleaire en 2024.' "
"Compare les données de plusieurs sources officielles."
}],
tools=[
{"type": "web_search"},
{"type": "code_interpreter"}
],
max_turns=8
)
Avec un max_turns plus élevé, Grok peut effectuer plusieurs recherches successives pour croiser les informations et utiliser l’exécution de code pour comparer les chiffres.
Bonnes pratiques
Spécifier les outils dans le prompt
Ne vous contentez pas de déclarer les outils dans le paramètre tools. Indiquez explicitement dans votre prompt ce que vous attendez :
# BON : le prompt guide l'utilisation des outils
"""Recherche les données, puis utilise le code pour générer un tableau
comparatif. Sauvegarde le résultat final via save_to_database."""
# MAUVAIS : le prompt ne mentionne pas les outils
"Donne-moi les informations sur ce sujet."
Limiter les outils aux besoins
N’activez pas tous les outils si vous n’en avez besoin que d’un seul. Chaque outil ajoute du contexte dans le prompt système, consommant des tokens et pouvant distraire le modèle.
Points clés à retenir
- Recherche + Code Execution permet de collecter et analyser des données en une seule requête
- Web Search + X Search offre une couverture complète (articles + réactions)
- Les fonctions personnalisées étendent les capacités au-delà de ce que les outils serveur offrent
- Guidez explicitement Grok dans votre prompt sur les outils à utiliser
- Adaptez
max_turnsà la complexité du workflow (5-8 pour les combinaisons multi-outils) - N’activez que les outils nécessaires pour optimiser la consommation de tokens