Das Setzen von strict: true auf einer Werkzeugdefinition verwendet grammatikgestütztes Sampling, 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:
Der Aufbau 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 beschädigt 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.
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather in San Francisco?"}
],
"tools": [{
"name": "get_weather",
"description": "Get the current weather in a given location",
"strict": true,
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"],
"additionalProperties": false
}
}]
}'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.
Handhaben 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 unter Verwendung derselben Pipeline wie strukturierte Ausgaben. Tool-Schemas werden temporär 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?