Fonctions d'outils
Mis à jour le 30 juillet 2026
Quand on construit des applications IA avec Claude, on a souvent besoin de lui donner accès à des informations en temps réel ou la capacité d’effectuer des actions. C’est là que les fonctions d’outils entrent en jeu : ce sont des fonctions Python que Claude peut appeler quand il a besoin de données supplémentaires pour aider l’utilisateur.
Qu’est-ce qu’une fonction d’outil ?
Une fonction d’outil est une simple fonction Python qui s’exécute automatiquement quand Claude décide qu’il a besoin d’informations supplémentaires. Par exemple, si quelqu’un demande “Quelle heure est-il ?”, Claude appellerait votre outil date/heure pour obtenir l’heure actuelle.
Bonnes pratiques pour les fonctions d’outils
Trois règles importantes à suivre :
- Utilisez des noms descriptifs : Le nom de la fonction et les noms des paramètres doivent indiquer clairement leur utilité.
- Validez les entrées : Vérifiez que les paramètres requis ne sont pas vides ou invalides, et levez des erreurs le cas échéant.
- Fournissez des messages d’erreur explicites : Claude peut voir les messages d’erreur et pourrait retenter l’appel avec des paramètres corrigés.
La validation est particulièrement importante parce que Claude apprend de ses erreurs. Si vous levez une erreur claire comme "Location cannot be empty", Claude pourrait retenter l’appel avec une valeur de localisation correcte.
Créer sa première fonction d’outil
Créons une fonction pour obtenir la date et l’heure actuelles. Cette fonction accepte un paramètre de format pour que Claude puisse demander l’heure dans différents formats :
from datetime import datetime
def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
# Vérifie que le format n'est pas vide
if not date_format:
raise ValueError("date_format cannot be empty")
# Retourne la date/heure formatée
return datetime.now().strftime(date_format)
Cette fonction utilise le module datetime de Python pour obtenir l’heure actuelle et la formater selon la chaîne de format fournie. Le format par défaut donne : année-mois-jour heure:minute:seconde.
Tester avec différents formats
# Format par défaut : "2024-01-15 14:30:25"
get_current_datetime()
# Juste heure et minute : "14:30"
get_current_datetime("%H:%M")
La vérification de validation empêche Claude de passer une chaîne vide pour le format. Même si cette erreur spécifique est peu probable, elle illustre le patron de validation des entrées et de messages d’erreur utiles dont Claude peut tirer parti.
Prochaines étapes
Créer la fonction n’est que la première étape. Ensuite, il faudra :
- Écrire un schéma JSON qui décrit la fonction à Claude
- Intégrer le tout dans votre système de chat
Cette approche par fonctions d’outils donne à Claude des capacités puissantes tout en gardant votre code organise et maintenable.
Exercice : Créez votre propre fonction d'outil
Essayez de créer une fonction d’outil qui calcule l’âge d’une personne à partir de sa date de naissance :
from datetime import datetime
def calculate_age(birth_date_str, date_format="%Y-%m-%d"):
if not birth_date_str:
raise ValueError("birth_date_str cannot be empty")
birth_date = datetime.strptime(birth_date_str, date_format)
today = datetime.now()
age = today.year - birth_date.year
if (today.month, today.day) < (birth_date.month, birth_date.day):
age -= 1
return str(age)
Points à vérifier :
- Le nom de la fonction est-il descriptif ?
- Les entrées sont-elles validées ?
- Les messages d’erreur sont-ils clairs ?