Das Setzen von strict: true auf einer Werkzeugdefinition verwendet grammatikbeschränkte Stichprobenentnahme, um zu garantieren, dass Claude's Werkzeugeingaben Ihrem JSON-Schema entsprechen. Diese Seite behandelt, warum der strikte Modus für Agenten wichtig ist, wie man ihn aktiviert, und häufige Anwendungsfälle. Für die unterstützte JSON-Schema-Teilmenge siehe JSON-Schema-Einschränkungen. Für Anleitung zu nicht-striktem Schema siehe Werkzeuge definieren.
Strikte Werkzeugnutzung validiert Werkzeugparameter und stellt sicher, dass Claude Ihre Funktionen mit korrekt typisierten Argumenten aufruft. Verwenden Sie strikte Werkzeugnutzung, wenn Sie Folgendes benötigen:
Das Erstellen zuverlässiger Agentensysteme erfordert garantierte Schema-Konformität. Ohne strikten Modus könnte Claude inkompatible Typen zurückgeben ("2" statt 2) oder erforderliche Felder vermissen, was Ihre Funktionen bricht und Laufzeitfehler verursacht.
Strikte Werkzeugnutzung garantiert typsichere Parameter:
Angenommen, ein Buchungssystem benötigt passengers: int. Ohne strikten Modus könnte Claude passengers: "two" oder passengers: "2" bereitstellen. Mit strict: true enthält die Antwort immer passengers: 2.
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)Antwortformat: Werkzeugnutzungsblöcke mit validierten Eingaben in response.content[x].input
{
"type": "tool_use",
"name": "get_weather",
"input": {
"location": "San Francisco, CA"
}
}Garantien:
input folgt streng dem input_schemaname ist immer gültig (von bereitgestellten Werkzeugen oder Server-Werkzeugen)Definieren Sie Ihr Werkzeugschema
Erstellen Sie ein JSON-Schema für das input_schema Ihres Werkzeugs. Das Schema verwendet das Standard-JSON-Schema-Format mit einigen Einschränkungen (siehe JSON-Schema-Einschränkungen).
Fügen Sie strict: true hinzu
Setzen Sie "strict": true als Top-Level-Eigenschaft in Ihrer Werkzeugdefinition, neben name, description und input_schema.
Verarbeiten Sie Werkzeugaufrufe
Wenn Claude das Werkzeug verwendet, folgt das input-Feld im tool_use-Block streng Ihrem input_schema, und der name ist immer gültig.
Die strikte Tool-Nutzung kompiliert Tool-input_schema-Definitionen in Grammatiken mit derselben Pipeline wie strukturierte Ausgaben. Tool-Schemas werden vorübergehend für bis zu 24 Stunden seit der letzten Verwendung zwischengespeichert. Prompts und Antworten werden nicht über die API-Antwort hinaus beibehalten.
Die strikte Tool-Nutzung ist HIPAA-berechtigt, aber PHI darf nicht in Tool-Schema-Definitionen enthalten sein. Die API speichert kompilierte Schemas separat vom Nachrichteninhalt, und diese zwischengespeicherten Schemas erhalten nicht denselben PHI-Schutz wie Prompts und Antworten. Fügen Sie PHI nicht in input_schema-Eigenschaftsnamen, enum-Werte, const-Werte oder pattern-Regex-Ausdrücke ein. PHI sollte nur in Nachrichteninhalten (Prompts und Antworten) erscheinen, wo es unter HIPAA-Schutzmaßnahmen geschützt ist.
Für ZDR- und HIPAA-Berechtigung über alle Funktionen hinweg siehe API und Datenspeicherung.
Was this page helpful?