0Pricing
AI Agents · Leçon

Choisir les outils à l’exécution

Laissez le modèle décider quel outil appeler, imposez un outil précis ou n’exposez que les outils pertinents dans l’état actuel.

Choisir les outils à l’exécution est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.

Laisser le modèle choisir

Par défaut, vous fournissez au modèle une liste d'outils et il décide lequel appeler (ou n'en appeler aucun). C'est le mode standard, qui fonctionne bien lorsque :

  • Vous avez 5 à 15 outils
  • Les outils ont des descriptions claires et distinctes
  • Le bon outil dépend de l'entrée de l'utilisateur

tool_choice : auto

Le comportement par défaut : le modèle décide :

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='auto',  # default; can be omitted
)

tool_choice : required

Forcez le modèle à appeler SOME outil (n'importe lequel) :

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='required',
)
# Model must return a tool_call, never a free-form answer

Forcer un outil précis

Pour imposer un outil précis, indiquez son nom :

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice={'type': 'function', 'function': {'name': 'extract_entities'}},
)

tool_choice : none

Désactivez les outils pour un tour :

# After a tool result, you might want a pure text response:
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='none',
)

Réduire la liste d'outils selon le contexte

Les modèles choisissent moins bien parmi de grands ensembles d'outils. Ne rendez accessibles que les outils pertinents pour l'état actuel :

def relevant_tools(state):
    if state == 'authenticated':
        return [search_orders, refund_order, escalate]
    elif state == 'guest':
        return [search_products, contact_support]
    return []

Sélection d'outils en deux étapes

Pour plus de 50 outils, utilisez une hiérarchie :

  1. L'agent externe choisit un domaine (commandes / facturation / livraison)
  2. L'agent interne choisit l'outil précis dans ce domaine

Chaque appel ne voit qu'environ 10 outils.

Recherche vectorielle parmi les outils

Vectorisez la description de chaque outil : lors de l'exécution, vectorisez la requête de l'utilisateur et récupérez les outils les mieux classés jusqu'à K pour les rendre accessibles :

from openai import OpenAI
import numpy as np

query_emb = embed(user_query)
sims = [cosine(query_emb, tool.emb) for tool in all_tools]
top = [t for _, t in sorted(zip(sims, all_tools), reverse=True)[:10]]
# Send only these 10 to the model

tool_choice d'Anthropic

Anthropic utilise le même concept avec une structure différente :

tool_choice = {'type': 'auto'}
print("auto:", tool_choice)
tool_choice = {'type': 'any'}                              # required
print("any (required):", tool_choice)
tool_choice = {'type': 'tool', 'name': 'get_weather'}      # specific
print("specific tool:", tool_choice)
tool_choice = {'type': 'none'}
print("none:", tool_choice)

Pourquoi forcer un outil précis ?

C'est utile pour :

  • La validation — extraire un champ structuré précis
  • Le routage — l'utilisateur a cliqué sur « remboursement », vous appelez donc refund_order
  • La sortie structurée — détourner l'appel d'outils pour obtenir du JSON

Listes d'outils vides

Si vous transmettez tools=[] avec tool_choice="required", vous obtenez une erreur. Validez toujours la liste d'outils avant l'envoi.

Forcer une sortie JSON

Pourquoi pourriez-vous forcer un appel à un outil précis ?

Récapitulatif

Utilisez le mode auto dans la plupart des cas. Forcez les outils pour le routage et l'extraction structurée. Réduisez la liste d'outils selon l'état pour que la sélection reste pertinente.

Questions Fréquemment Posées

La leçon « Choisir les outils à l’exécution » est-elle gratuite ?

Oui — le texte complet de « Choisir les outils à l’exécution » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Choisir les outils à l’exécution » ?

Laissez le modèle décider quel outil appeler, imposez un outil précis ou n’exposez que les outils pertinents dans l’état actuel. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Agents ?

Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Choisir les outils à l’exécution » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?

Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Fonctionnement des appels de fonctions
  2. Définir des schémas d’outils (JSON Schema)
  3. Choisir les outils à l’exécution
  4. Renvoyer les résultats au modèle
← Retour à AI Agents