Das Setzen von strict: true in einer Tool-Definition garantiert, dass Claudes Tool-Eingaben deinem JSON-Schema entsprechen, indem das Token-Sampling des Modells auf schemakonforme Ausgaben beschränkt wird (eine Technik namens „grammar-constrained sampling" (grammatikbeschränktes Sampling)). Diese Seite behandelt, warum der strikte Modus für Agenten wichtig ist, wie du ihn aktivierst und häufige Anwendungsfälle. Die unterstützte JSON-Schema-Teilmenge findest du unter JSON-Schema-Einschränkungen. Hinweise zu nicht-strikten Schemas findest du unter Tools definieren.
„Strict tool use" (strikte Tool-Nutzung) validiert Tool-Parameter und stellt sicher, dass Claude deine Funktionen mit korrekt typisierten Argumenten aufruft. Verwende strikte Tool-Nutzung, wenn du Folgendes benötigst:
Der Aufbau zuverlässiger agentischer Systeme erfordert garantierte Schemakonformität. Ohne strikten Modus könnte Claude inkompatible Typen zurückgeben ("2" statt 2) oder erforderliche Felder weglassen, was deine Funktionen zum Scheitern bringt und Laufzeitfehler verursacht.
Strikte Tool-Nutzung garantiert typsichere Parameter:
Angenommen, ein Buchungssystem benötigt beispielsweise passengers: int. Ohne strikten Modus könnte Claude passengers: "two" oder passengers: "2" liefern. Mit strict: true enthält die Antwort immer passengers: 2.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-5",
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: Tool-Use-Blöcke mit validierten Eingaben in response.content[x].input
{
"type": "tool_use",
"name": "get_weather",
"input": {
"location": "San Francisco, CA"
}
}Garantien:
input folgt strikt dem input_schemaname ist immer gültig (aus den bereitgestellten Tools oder Server-Tools)Definiere dein Tool-Schema
Erstelle ein JSON-Schema für das input_schema deines Tools. Das Schema verwendet das Standard-JSON-Schema-Format mit einigen Einschränkungen (siehe JSON-Schema-Einschränkungen).
Füge strict: true hinzu
Setze "strict": true als Eigenschaft auf oberster Ebene in deiner Tool-Definition, neben name, description und input_schema.
Verarbeite Tool-Aufrufe
Wenn Claude das Tool verwendet, folgt das Feld input im tool_use-Block strikt deinem input_schema, und der name ist immer gültig.
Die Toolset-Einträge für Computer Use und Browser Use (computer_toolset_20260801 und browser_toolset_20260801) akzeptieren strict: true nicht; eine Anfrage, die es bei einem der beiden Einträge setzt, wird abgelehnt.
Strikte Tool-Nutzung kompiliert die input_schema-Definitionen von Tools zu Grammatiken und verwendet dabei dieselbe 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 aufbewahrt.
Strikte Tool-Nutzung ist HIPAA-fähig, aber „protected health information" (geschützte Gesundheitsinformationen), oder PHI, dürfen nicht in Tool-Schema-Definitionen enthalten sein. Die API speichert kompilierte Schemas getrennt vom Nachrichteninhalt zwischen, und diese zwischengespeicherten Schemas erhalten nicht denselben PHI-Schutz wie Prompts und Antworten. Füge keine PHI in input_schema-Eigenschaftsnamen, enum-Werte, const-Werte oder reguläre Ausdrücke in pattern ein. PHI sollten nur im Nachrichteninhalt (Prompts und Antworten) erscheinen, wo sie durch HIPAA-Schutzmaßnahmen geschützt sind.
Informationen zur ZDR- und HIPAA-Fähigkeit aller Funktionen findest du unter API und Datenaufbewahrung.
Rufe Inhalte von bestimmten URLs ab und lies sie, um Live-Webinhalte in Claudes Kontext zu bringen.
Speichere Tool-Definitionen über mehrere Turns hinweg zwischen, um Kosten und Latenz zu reduzieren.
Erhalte validierte JSON-Antworten mit demselben grammatikbeschränkten Sampling.
Lege Tool-Schemas fest, schreibe wirksame Beschreibungen und steuere, wann Claude deine Tools aufruft.
Was this page helpful?