Tableaux symptôme-solution pour les erreurs d'utilisation d'outils les plus courantes. Chaque correctif renvoie à la page qui documente la fonctionnalité concernée.
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Claude appelle l'outil A alors que vous vouliez l'outil B | Ambiguïté dans la description | Affinez les descriptions. Différenciez les outils par QUAND les utiliser, pas seulement par CE QU'ils font. Consultez Définir des outils. |
| Claude n'appelle jamais votre outil | Collision de noms d'outils ou schéma trop générique | Vérifiez l'absence de noms en double dans votre liste d'outils. Ajoutez des input_examples pour rendre l'usage prévu concret. |
| Claude appelle avec des types de paramètres incorrects | Le modèle devine face à un schéma ambigu | Ajoutez strict: true (si votre schéma fait partie du sous-ensemble pris en charge) ou ajoutez des input_examples. |
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Paramètre qui n'existe pas dans votre schéma | Surgénération du modèle sans mode strict | Ajoutez strict: true si votre schéma fait partie du sous-ensemble pris en charge. |
| Valeurs de paramètres hors de votre énumération | Mode strict manquant ou énumération trop grande | Réduisez l'énumération ou ajoutez des input_examples montrant des choix valides. |
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Claude appelle les outils séquentiellement alors que le parallèle serait préférable | Formatage de l'historique des messages | Envoyez plusieurs blocs tool_result dans UN SEUL message utilisateur, pas un par tour. Consultez Utilisation d'outils en parallèle. |
disable_parallel_tool_use semble ignoré | Défini trop tard dans la conversation | Doit être défini sur la requête qui renvoie tool_use. Le définir sur une requête ultérieure n'a aucun effet sur les appels d'outils antérieurs. |
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Chaque requête est un échec de cache | tool_choice varie entre les requêtes | Gardez tool_choice stable ou placez le point d'arrêt cache_control avant le point de variation. Consultez Utilisation d'outils avec la mise en cache des prompts. |
| L'ajout d'un outil en cours de conversation casse le cache | Outil ajouté au début du tableau d'outils | Utilisez defer_loading: true avec la recherche d'outils pour ajouter l'outil en ligne au lieu de modifier le début du tableau. |
| Erreur | Cause | Correctif |
|---|---|---|
tool_use ids were found without tool_result blocks immediately after | tool_result manquant pour certains identifiants tool_use, ou tool_result n'est pas le premier bloc de contenu dans le message utilisateur | Renvoyez un tool_result pour chaque bloc tool_use dans la réponse de l'assistant. Placez les blocs tool_result avant tout texte. Consultez Gérer les appels d'outils et Utilisation d'outils en parallèle. |
was found without a corresponding <name>_tool_result block | Le tour d'assistant précédent contient un bloc server_tool_use sans bloc de résultat (le plus souvent, Claude l'a appelé en même temps qu'un outil client), et soit votre message utilisateur suivant a mis fin à ce tour (par exemple, avec du texte après les blocs tool_result), soit la requête de reprise ne définit plus cet outil serveur (le message se termine alors par but no <name> tool was provided) | Envoyez un message utilisateur contenant uniquement les blocs tool_result pour les identifiants tool_use client et conservez le même tableau tools. Consultez Raisons d'arrêt et repli. |
Input schema is not compatible with strict mode: string patterns are not supported | Utilisation de pattern avec strict: true | Supprimez le pattern ou retirez strict: true. Le mot-clé pattern ne fait pas encore partie du sous-ensemble JSON Schema pris en charge. |
All tools have defer_loading: true | Aucun outil visible pour le modèle | Au moins un outil doit être chargé immédiatement. L'outil de recherche d'outils lui-même ne doit jamais avoir defer_loading: true. |
Si une requête échoue avec une erreur 400 invalid_request_error dont le message contient `thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modified lors de la poursuite d'une conversation après un appel d'outil, votre application modifie les blocs de réflexion de l'assistant avant de les renvoyer. Renvoyez l'intégralité du message de l'assistant sans modification, puis ajoutez votre tool_result.
Consultez Les blocs de réflexion ne peuvent pas être modifiés pour l'erreur complète et les étapes de correction.
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Claude refuse d'agir sur un résultat d'outil, ou demande à l'utilisateur de confirmer des instructions qui en proviennent | Vos propres instructions sont transmises à l'intérieur du contenu tool_result | Claude est entraîné à traiter les instructions contenues dans les résultats d'outils comme du contenu tiers potentiellement non fiable. Déplacez vos instructions hors du résultat d'outil : envoyez-les dans un tour user après le bloc tool_result, ou (sur Claude Opus 4.8 et versions ultérieures) dans un message système en cours de conversation. Limitez le résultat d'outil aux seules données. Consultez Atténuer les jailbreaks et les injections de prompt. |
| Symptôme | Cause | Correctif |
|---|---|---|
| La comparaison de chaînes sur les entrées d'outils échoue avec les modèles plus récents | L'échappement Unicode et des barres obliques diffère entre les versions de modèles | Analysez avec json.loads() ou JSON.parse(). Ne faites jamais de correspondance de chaînes brutes sur l'entrée sérialisée. |
Rédigez des schémas et des descriptions qui orientent Claude vers le bon outil.
Exécutez les outils et renvoyez les résultats dans le format de message requis.
Répertoire complet des outils à schéma Anthropic et de leurs chaînes de version.
Was this page helpful?