tool_choice et contrôle des outils
Diriger le modèle vers les bons outils
Par défaut, le modèle décide librement quels outils utiliser (ou ne pas en utiliser du tout). Le paramètre tool_choice vous donne un contrôle plus fin sur ce comportement.
Les modes de tool_choice
auto (défaut)
Le modèle décide librement. Il peut utiliser un outil, plusieurs, ou aucun :
{
"model": "grok-4.20-reasoning",
"input": "Quelle est la capitale de la France ?",
"tools": [{"type": "web_search"}],
"tool_choice": "auto"
}
Pour cette question factuelle simple, le modèle répondra probablement sans recherche web. Pour une question sur l’actualité, il lancera une recherche.
required
Force le modèle à utiliser au moins un outil :
{
"model": "grok-4.20-reasoning",
"input": "Donne-moi les cours de la bourse aujourd'hui.",
"tools": [{"type": "web_search"}],
"tool_choice": "required"
}
Utile quand vous savez que la réponse nécessite des données fraîches et que le modèle ne devrait pas répondre de mémoire.
none
Interdit l’utilisation des outils, même s’ils sont déclarés :
{
"model": "grok-4.20-reasoning",
"input": "Explique le concept de récursion.",
"tools": [{"type": "web_search"}, {"type": "code_interpreter"}],
"tool_choice": "none"
}
Pratique pour forcer une réponse purement textuelle dans un contexte où les outils sont normalement disponibles.
Fonction spécifique
Force l’utilisation d’une fonction précise :
{
"model": "grok-4.20-reasoning",
"input": "Paris",
"tools": [{
"type": "function",
"name": "get_weather",
"description": "Récupère la météo",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}],
"tool_choice": {"type": "function", "name": "get_weather"}
}
Le modèle est contraint d’appeler get_weather avec les arguments appropriés.
parallel_tool_calls
Par défaut, parallel_tool_calls est à true. Le modèle peut lancer plusieurs outils en parallèle dans un même tour :
{
"model": "grok-4.20-reasoning",
"input": "Compare la météo à Paris et à Londres.",
"tools": [{
"type": "function",
"name": "get_weather",
"description": "Récupère la météo pour une ville",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}],
"parallel_tool_calls": true
}
Le modèle pourrait appeler get_weather("Paris") et get_weather("Londres") simultanément, ce qui accélère le traitement.
Pour désactiver ce comportement :
{
"parallel_tool_calls": false
}
Désactivez les appels parallèles si vos fonctions ont des effets de bord ou des dépendances entre elles (par exemple, si la seconde fonction dépend du résultat de la première).
max_turns
Le paramètre max_turns limite le nombre de tours d’interaction entre le modèle et les outils côté serveur :
{
"model": "grok-4.20-reasoning",
"input": "Fais une analyse approfondie du marché de l'IA en 2026.",
"tools": [{"type": "web_search"}, {"type": "code_interpreter"}],
"max_turns": 5
}
Un “tour” correspond à un cycle complet : le modèle appelle un outil, reçoit le résultat, puis décide s’il a besoin d’un autre appel. Avec max_turns: 5, le modèle peut effectuer jusqu’à 5 cycles d’appels d’outils serveur avant de produire sa réponse finale.
Comportement avec les outils client
max_turns ne s’applique qu’aux outils serveur. Quand le modèle appelle une fonction client, le compteur est réinitialisé à la requête suivante. Cela signifie que chaque aller-retour client-serveur crée une nouvelle allocation de tours.
Stratégies de contrôle
| Scénario | tool_choice | parallel | max_turns |
|---|---|---|---|
| Recherche d’actualité | required | true | 3 |
| Calcul précis | {"type": "function", "name": "calc"} | false | 1 |
| Conversation libre | auto | true | 5 |
| Réponse sans outil | none | - | - |
Points clés à retenir
tool_choicecontrôle si et quels outils le modèle utilise :auto,required,none, ou une fonction spécifiqueparallel_tool_calls(défauttrue) permet les appels d’outils simultanésmax_turnslimite les cycles d’outils serveur — les appels client réinitialisent le compteur- Utilisez
requiredquand des données fraîches sont indispensables - Désactivez le parallélisme si vos fonctions ont des dépendances entre elles