Loading...
  • Erstellen
  • Admin
  • Modelle & Preise
  • Client-SDKs
  • API-Referenz
Search...
⌘K
Log in
Strikte Tool-Nutzung
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
Erstellen/Tools

Strikte Werkzeugnutzung

Erzwingen Sie JSON-Schema-Konformität bei Claude's Werkzeugeingaben mit grammatikbeschränkter Stichprobenentnahme.

Was this page helpful?

  • Warum strikte Werkzeugnutzung für Agenten wichtig ist
  • Schnellstart
  • Wie es funktioniert
  • Häufige Anwendungsfälle
  • Datenspeicherung

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:

  • Werkzeugparameter validieren
  • Agentenworkflows erstellen
  • Typsichere Funktionsaufrufe sicherstellen
  • Komplexe Werkzeuge mit verschachtelten Eigenschaften verarbeiten

Warum strikte Werkzeugnutzung für Agenten wichtig ist

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:

  • Funktionen erhalten jedes Mal korrekt typisierte Argumente
  • Keine Notwendigkeit, Werkzeugaufrufe zu validieren und erneut zu versuchen
  • Produktionsreife Agenten, die konsistent in großem Maßstab funktionieren

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.

Schnellstart

Antwortformat: Werkzeugnutzungsblöcke mit validierten Eingaben in response.content[x].input

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

Garantien:

  • Werkzeug input folgt streng dem input_schema
  • Werkzeug name ist immer gültig (von bereitgestellten Werkzeugen oder Server-Werkzeugen)

Wie es funktioniert

  1. 1

    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).

  2. 2

    Fügen Sie strict: true hinzu

    Setzen Sie "strict": true als Top-Level-Eigenschaft in Ihrer Werkzeugdefinition, neben name, description und input_schema.

  3. 3

    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.

Häufige Anwendungsfälle

Datenspeicherung

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.

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)