Loading...
    • Construire
    • Admin
    • Modèles & tarification
    • SDKs clients
    • Référence API
    Search...
    ⌘K
    Premiers pas
    Introduction à ClaudeDémarrage rapide
    Construire avec Claude
    Aperçu des fonctionnalitésUtiliser l'API MessagesCompétence API ClaudeGérer les raisons d'arrêt
    Capacités du modèle
    Réflexion étendueRéflexion adaptativeEffortBudgets de tâches (bêta)Mode rapide (bêta : aperçu recherche)Sorties structuréesCitationsMessages en streamingTraitement par lotsRésultats de rechercheRefus en streamingSupport multilingueEmbeddings
    Outils
    AperçuFonctionnement des outilsTutoriel : Créer un agent utilisant des outilsDéfinir des outilsGérer les appels d'outilsUtilisation parallèle des outilsTool Runner (SDK)Utilisation stricte des outilsUtilisation des outils avec mise en cache des promptsOutils serveurDépannageOutil de recherche webOutil de récupération webOutil d'exécution de codeOutil conseillerOutil mémoireOutil BashOutil d'utilisation de l'ordinateurOutil éditeur de texte
    Infrastructure des outils
    Référence des outilsGérer le contexte des outilsCombinaisons d'outilsRecherche d'outilsAppel d'outils programmatiqueStreaming d'outils à grain fin
    Gestion du contexte
    Fenêtres de contexteCompactionÉdition du contexteMise en cache des promptsComptage de tokens
    Travailler avec des fichiers
    Files APISupport PDFImages et vision
    Compétences
    AperçuDémarrage rapideMeilleures pratiquesCompétences pour l'entrepriseCompétences dans l'API
    MCP
    Serveurs MCP distantsConnecteur MCP
    Ingénierie des prompts
    AperçuMeilleures pratiques de promptingOutils de prompting dans la Console
    Tester et évaluer
    Définir le succès et créer des évaluationsUtiliser l'outil d'évaluation dans la ConsoleRéduire la latence
    Renforcer les garde-fous
    Réduire les hallucinationsAugmenter la cohérence des sortiesAtténuer les jailbreaksRéduire les fuites de prompts
    Ressources
    Glossaire
    Notes de version
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Outils

    Utilisation stricte des outils

    Appliquez la conformité du schéma JSON aux entrées des outils de Claude avec l'échantillonnage contraint par grammaire.

    Was this page helpful?

    • Pourquoi l'utilisation stricte des outils est importante pour les agents
    • Démarrage rapide
    • Comment ça fonctionne
    • Cas d'usage courants
    • Conservation des données

    La définition de strict: true sur un outil utilise l'échantillonnage contraint par grammaire pour garantir que les entrées des outils de Claude correspondent à votre schéma JSON. Cette page couvre pourquoi le mode strict est important pour les agents, comment l'activer et les cas d'usage courants. Pour le sous-ensemble de schéma JSON supporté, voir Limitations du schéma JSON. Pour les conseils sur les schémas non stricts, voir Définir les outils.

    L'utilisation stricte des outils valide les paramètres des outils, en s'assurant que Claude appelle vos fonctions avec des arguments correctement typés. Utilisez l'utilisation stricte des outils quand vous avez besoin de :

    • Valider les paramètres des outils
    • Construire des flux de travail d'agents
    • Assurer des appels de fonction type-safe
    • Gérer des outils complexes avec des propriétés imbriquées

    Pourquoi l'utilisation stricte des outils est importante pour les agents

    La construction de systèmes d'agents fiables nécessite une conformité de schéma garantie. Sans le mode strict, Claude pourrait retourner des types incompatibles ("2" au lieu de 2) ou des champs requis manquants, cassant vos fonctions et causant des erreurs d'exécution.

    L'utilisation stricte des outils garantit des paramètres type-safe :

    • Les fonctions reçoivent des arguments correctement typés à chaque fois
    • Pas besoin de valider et de réessayer les appels d'outils
    • Des agents prêts pour la production qui fonctionnent de manière cohérente à grande échelle

    Par exemple, supposons qu'un système de réservation ait besoin de passengers: int. Sans le mode strict, Claude pourrait fournir passengers: "two" ou passengers: "2". Avec strict: true, la réponse contiendra toujours passengers: 2.

    Démarrage rapide

    Format de réponse : Blocs d'utilisation d'outils avec des entrées validées dans response.content[x].input

    Output
    {
      "type": "tool_use",
      "name": "get_weather",
      "input": {
        "location": "San Francisco, CA"
      }
    }

    Garanties :

    • L'input de l'outil suit strictement l'input_schema
    • Le name de l'outil est toujours valide (parmi les outils fournis ou les outils serveur)

    Comment ça fonctionne

    1. 1

      Définir votre schéma d'outil

      Créez un schéma JSON pour l'input_schema de votre outil. Le schéma utilise le format standard du schéma JSON avec certaines limitations (voir Limitations du schéma JSON).

    2. 2

      Ajouter strict: true

      Définissez "strict": true comme propriété de niveau supérieur dans votre définition d'outil, aux côtés de name, description et input_schema.

    3. 3

      Gérer les appels d'outils

      Quand Claude utilise l'outil, le champ input dans le bloc tool_use suivra strictement votre input_schema, et le name sera toujours valide.

    Cas d'usage courants

    Conservation des données

    L'utilisation stricte d'outils compile les définitions input_schema d'outils en grammaires en utilisant le même pipeline que les sorties structurées. Les schémas d'outils sont temporairement mis en cache pendant jusqu'à 24 heures depuis la dernière utilisation. Les invites et les réponses ne sont pas conservées au-delà de la réponse de l'API.

    L'utilisation stricte d'outils est éligible à HIPAA, mais les PHI ne doivent pas être inclus dans les définitions de schéma d'outils. L'API met en cache les schémas compilés séparément du contenu des messages, et ces schémas mis en cache ne reçoivent pas les mêmes protections PHI que les invites et les réponses. N'incluez pas de PHI dans les noms de propriété input_schema, les valeurs enum, les valeurs const ou les expressions régulières pattern. Les PHI ne doivent apparaître que dans le contenu des messages (invites et réponses), où ils sont protégés par les garanties de sécurité HIPAA.

    Pour l'éligibilité ZDR et HIPAA dans toutes les fonctionnalités, consultez Conservation des données et API.

    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-opus-4-7",
        max_tokens=1024,
        messages=[{"role": "user", "content": "What's the weather like in San Francisco?"}],
        tools=[
            {
                "name": "get_weather",
                "description": "Get the current weather in a given location",
                "strict": True,  # Enable strict mode
                "input_schema": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "type": "string",
                            "description": "The city and state, e.g. San Francisco, CA",
                        },
                        "unit": {
                            "type": "string",
                            "enum": ["celsius", "fahrenheit"],
                            "description": "The unit of temperature, either 'celsius' or 'fahrenheit'",
                        },
                    },
                    "required": ["location"],
                    "additionalProperties": False,
                },
            }
        ],
    )
    print(response.content)