Loading...
  • Construire
  • Admin
  • Modèles & tarification
  • SDKs clients
  • Référence API
Search...
⌘K
Log in
Utilisation stricte des outils
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
Construire/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)