Aller au contenu principal
Leçon 10 sur 16 · Responses API : l’endpoint principal

tool_choice et contrôle des outils

Leçon 10 sur 16 Mis à jour le 30 juillet 2026 Développeur
Sur cette page
  1. Diriger le modèle vers les bons outils
  2. Les modes de tool_choice
  3. parallel_tool_calls
  4. max_turns
  5. Stratégies de contrôle
  6. Points clés à retenir

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-0309-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-0309-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-0309-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-0309-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-0309-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-0309-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énariotool_choiceparallelmax_turns
Recherche d’actualitérequiredtrue3
Calcul précis{"type": "function", "name": "calc"}false1
Conversation libreautotrue5
Réponse sans outilnone--

Points clés à retenir

  • tool_choice contrôle si et quels outils le modèle utilise : auto, required, none, ou une fonction spécifique
  • parallel_tool_calls (défaut true) permet les appels d’outils simultanés
  • max_turns limite les cycles d’outils serveur — les appels client réinitialisent le compteur
  • Utilisez required quand des données fraîches sont indispensables
  • Désactivez le parallélisme si vos fonctions ont des dépendances entre elles