Aller au contenu principal
Leçon 23 sur 67 · Claude sur Amazon Bedrock

Fonctions outils

Leçon 23 sur 67 Mis à jour le 5 novembre 2026 Développeur
Sur cette page
  1. Trois manques, trois outils
  2. Écrire une fonction outil
  3. Le premier outil
  4. Le schéma, l’autre moitié du travail
  5. À vous de jouer
  6. Points clés à retenir

Construire des outils pour Claude oblige à résoudre des problèmes qui ne sautent pas aux yeux. Prenez le projet de la section : un assistant à qui l’on dit « rappelle-moi mon rendez-vous chez le médecin dans 100 jours ». Trois manques apparaissent aussitôt.

Trois manques, trois outils

  • Claude peut connaître la date du jour, mais pas l’heure exacte.
  • Claude ne fait pas toujours bien l’arithmétique des dates, surtout loin dans le futur.
  • Claude ne sait pas poser un rappel : il produit du texte, il n’agit pas.

D’où trois outils :

  1. get_current_datetime : donner la date et l’heure actuelles.
  2. add_duration_to_datetime : ajouter une durée à une date.
  3. set_reminder : enregistrer un rappel.

Aucun ne traite seul une vraie demande ; ensemble, ils couvrent tout le parcours : savoir quand on est, calculer l’échéance, agir. On conçoit rarement un outil isolé : on conçoit un jeu d’outils que Claude composera.

Écrire une fonction outil

Une fonction outil est une fonction Python ordinaire, exécutée quand Claude décide qu’il a besoin d’elle. Ce qui change, c’est son utilisateur : un modèle, qui ne connaîtra d’elle que son nom, ses paramètres et ses messages d’erreur. Trois bonnes pratiques, données par le cours officiel :

  • des noms d’arguments descriptifs ;
  • des entrées validées, avec une erreur levée si la validation échoue ;
  • des messages d’erreur utiles, car Claude réessaiera après une erreur.

La troisième règle change la nature des erreurs : ce ne sont plus des impasses de débogage, mais des consignes de correction adressées au modèle. Un « date_format ne peut pas être vide » bien rédigé permet à Claude de comprendre sa faute et de réessayer avec un argument valide.

Le premier outil

from datetime import datetime


def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
    if not date_format:
        raise ValueError("date_format ne peut pas être vide")
    return datetime.now().strftime(date_format)

La fonction respecte les principes : un nom qui se comprend sans documentation, un paramètre bien nommé avec une valeur par défaut raisonnable, une validation, et un retour exactement conforme à la promesse. Le paramètre date_format est aussi un choix de conception : une seule fonction paramétrable plutôt que trois variantes (get_time, get_date, etc.), c’est moins d’outils à décrire et moins d’hésitation pour Claude.

Trois outils pour un assistant de rappels Trois tuiles : get_current_datetime donne l'heure, add_duration_to_datetime calcule une échéance, set_reminder enregistre le rappel. FONCTIONS OUTILS Trois outils pour un assistant de rappels 01 L'heure Claude ne connaît pas l'heure exacte. get_current_datetime 02 Le calcul L'arithmétique des dates lointaines est fragile. add_duration_to_datetime 03 Le rappel Claude produit du texte, il n'agit pas. set_reminder Ensemble, ils couvrent le parcours : savoir quand on est, calculer l'échéance, agir.
D'après la leçon « Tool functions » (Claude Academy, Claude with Amazon Bedrock).

Le schéma, l’autre moitié du travail

Claude ne voit pas votre code. Il faut donc décrire la fonction dans un schéma JSON, qui dit au modèle quels arguments elle attend, quand l’utiliser et ce qu’elle renvoie. JSON Schema n’a pas été inventé pour l’IA : c’est un standard de validation de données, que beaucoup d’outils savent produire. Le cours officiel donne trois règles pour la description : expliquer ce que fait l’outil, quand l’utiliser et ce qu’il renvoie ; viser trois ou quatre phrases ; détailler chaque paramètre. La leçon suivante construit ce schéma.

À vous de jouer

Une erreur utile. Appelez get_current_datetime("") et lisez le message d’erreur : permettrait-il à Claude de corriger son appel ? Écrivez ensuite une variante qui refuse aussi un format sans aucun code %, avec un message qui explique quoi envoyer.

Sources officielles : Tool functions (Claude Academy) · Use a tool to complete an Amazon Bedrock model response (documentation AWS)

Points clés à retenir

  • Trois limites de Claude (l’heure, le calcul de dates, l’action) appellent trois outils complémentaires.
  • Une fonction outil est du Python ordinaire, mais son utilisateur est le modèle : noms clairs, entrées validées.
  • Un message d’erreur utile est une consigne de correction : Claude réessaie avec de meilleurs arguments.
  • Une fonction paramétrable vaut mieux que plusieurs variantes.
  • Claude ne voit que le schéma : il doit dire quoi, quand et ce que l’outil renvoie.