Après avoir écrit votre fonction d'outil, l'étape suivante consiste à créer un schéma JSON qui indique à Claude quels arguments votre fonction attend et comment l'utiliser. Ce schéma agit comme une documentation que Claude lit pour comprendre quand et comment appeler vos outils.
Comprendre JSON Schema
JSON Schema n'est pas spécifique à l'IA ou à l'appel d'outils - c'est une spécification de validation de données largement utilisée qui existe depuis des années. La communauté de l'IA l'a adoptée car c'est un moyen pratique de décrire les paramètres de fonction et de valider les données.

La spécification complète d'un outil comporte trois parties principales :
- name - Un nom clair et descriptif pour votre outil (comme « get_weather »)
- description - Ce que fait l'outil, quand l'utiliser, et ce qu'il renvoie
- input_schema - Le schéma JSON réel décrivant les arguments de la fonction
Rédiger des descriptions efficaces
La description de votre outil est cruciale pour aider Claude à comprendre quand utiliser votre fonction. Les bonnes pratiques incluent :
- Visez 3 à 4 phrases expliquant ce que fait l'outil
- Décrivez quand Claude doit l'utiliser
- Expliquez quel type de données il renvoie
- Fournissez des descriptions détaillées pour chaque argument

La méthode simple pour générer des schémas
Plutôt que d'écrire des schémas JSON à partir de zéro, vous pouvez utiliser Claude lui-même pour les générer. Voici le processus :
- Copiez le code de votre fonction d'outil
- Allez sur Claude et demandez-lui d'écrire un schéma JSON pour l'appel d'outils
- Incluez la documentation Anthropic sur l'utilisation d'outils comme contexte
- Laissez Claude générer un schéma correctement formaté en suivant les bonnes pratiques
L'invite devrait être quelque chose comme : « Écris une spécification de schéma JSON valide à des fins d'appel d'outils pour cette fonction. Suis les bonnes pratiques listées dans la documentation jointe. »

Implémenter le schéma dans le code
Une fois que Claude a généré votre schéma, copiez-le dans votre fichier de code. Voici un bon modèle de nommage à suivre :
def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
if not date_format:
raise ValueError("date_format cannot be empty")
return datetime.now().strftime(date_format)
get_current_datetime_schema = {
"name": "get_current_datetime",
"description": "Returns the current date and time formatted according to the specified format",
"input_schema": {
"type": "object",
"properties": {
"date_format": {
"type": "string",
"description": "A string specifying the format of the returned datetime. Uses Python's strftime format codes.",
"default": "%Y-%m-%d %H:%M:%S"
}
},
"required": []
}
}Utilisez le modèle function_name suivi de function_name_schema pour garder vos schémas organisés et faciles à associer à leurs fonctions correspondantes.
Ajouter la sécurité de type
Pour une meilleure vérification de type, importez et utilisez le type ToolParam de la bibliothèque Anthropic :
from anthropic.types import ToolParam
get_current_datetime_schema = ToolParam({
"name": "get_current_datetime",
"description": "Returns the current date and time formatted according to the specified format",
# ... reste du schéma
})Bien que cela ne soit pas strictement nécessaire pour le fonctionnement, cela évite les erreurs de type lorsque vous utilisez le schéma avec l'API de Claude et rend votre code plus robuste.