Tableaux symptôme-correctif pour les erreurs d'utilisation d'outils (tool use) les plus courantes. Chaque correctif renvoie à la page qui traite de la fonctionnalité concernée.
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Claude appelle l'outil A alors que vous vouliez l'outil B | Ambiguïté de la description | Affinez les descriptions. Différenciez les outils par le QUAND les utiliser, et 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 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 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 en dehors de votre enum | Mode strict absent ou enum trop grand | Réduisez l'enum ou ajoutez 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, et non 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, la configuration de réflexion ou output_config.effort varie entre les requêtes | Gardez tool_choice stable ou placez le point d'arrêt cache_control avant le point de variation ; maintenez la configuration de réflexion et le niveau d'effort constants pendant toute la durée d'une conversation mise en cache. Consultez Utilisation d'outils avec la mise en cache des prompts et Réflexion et mise en cache des prompts. |
| L'ajout d'un outil en cours de conversation casse le cache | Outil ajouté en tête du tableau des outils | Utilisez defer_loading: true avec la recherche d'outils pour ajouter l'outil en ligne au lieu de modifier la tête 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 du message utilisateur | Renvoyez un tool_result pour chaque bloc tool_use de 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 précédent de l'assistant 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 terminé 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. |
Unsupported regex feature in pattern field: ... | Un pattern dans l'input_schema d'un outil strict utilise une fonctionnalité d'expression régulière que le mode strict ne peut pas compiler, comme une référence arrière, une assertion avant/arrière (lookaround), une limite de mot ou une grande plage {n,m} | Simplifiez le motif. Les motifs ancrés avec des quantificateurs de base, des classes de caractères et des groupes sont pris en charge ; consultez Limitations de JSON Schema. |
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. Sortez vos instructions du résultat d'outil : envoyez-les dans un tour user après le bloc tool_result, ou, sur les modèles pris en charge, 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(). N'effectuez jamais de correspondance de chaînes brutes sur une 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 au schéma Anthropic et de leurs chaînes de version.
Was this page helpful?