Loading...
    • Erstellen
    • Admin
    • Modelle & Preise
    • Client SDKs
    • API-Referenz
    Search...
    ⌘K
    Erste Schritte
    Einführung in ClaudeSchnellstart
    Entwickeln mit Claude
    FunktionsübersichtVerwendung der Messages APIStoppgründe behandeln
    Modellfähigkeiten
    Erweitertes DenkenAdaptives DenkenAufwandSchnellmodus (Beta: Forschungsvorschau)Strukturierte AusgabenZitateStreaming-NachrichtenStapelverarbeitungSuchergebnisseStreaming-AblehnungenMehrsprachige UnterstützungEmbeddings
    Tools
    ÜbersichtWie Tool-Nutzung funktioniertWeb-SuchtoolWeb-AbruftoolCode-AusführungstoolSpeichertoolBash-ToolComputer-Use-ToolTexteditor-Tool
    Tool-Infrastruktur
    Tool-SucheProgrammatisches Tool-AufrufenFeingranulares Tool-Streaming
    Kontextverwaltung
    KontextfensterKomprimierungKontextbearbeitungPrompt-CachingToken-Zählung
    Mit Dateien arbeiten
    Files APIPDF-UnterstützungBilder und Vision
    Skills
    ÜbersichtSchnellstartBest PracticesSkills für UnternehmenSkills in der API
    MCP
    Remote-MCP-ServerMCP-Connector
    Prompt-Engineering
    ÜbersichtBest Practices für PromptsConsole-Prompting-Tools
    Testen und Evaluieren
    Erfolg definieren und Evaluierungen erstellenDas Evaluierungstool in der Console verwendenLatenz reduzieren
    Leitplanken stärken
    Halluzinationen reduzierenAusgabekonsistenz erhöhenJailbreaks abmildernPrompt-Lecks reduzieren
    Ressourcen
    Glossar
    Versionshinweise
    Claude Platform
    Console
    Log in
    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
    Documentation

    Tools definieren

    Tool-Schemas angeben, effektive Beschreibungen schreiben und steuern, wann Claude Ihre Tools aufruft.

    Was this page helpful?

    • Ein Modell auswählen
    • Client-Tools angeben
    • System-Prompt bei Tool-Nutzung
    • Best Practices für Tool-Definitionen
    • Beispiele für die Tool-Nutzung bereitstellen
    • Grundlegende Verwendung
    • Anforderungen und Einschränkungen
    • Claudes Ausgabe steuern
    • Tool-Nutzung erzwingen
    • Modellantworten mit Tools
    • Nächste Schritte

    Ein Modell auswählen

    Verwenden Sie das neueste Claude Opus (4.6)-Modell für komplexe Tools und mehrdeutige Anfragen; es verarbeitet mehrere Tools besser und bittet bei Bedarf um Klärung.

    Verwenden Sie Claude Haiku-Modelle für unkomplizierte Tools, beachten Sie jedoch, dass diese fehlende Parameter möglicherweise ableiten.

    Wenn Sie Claude mit Tool-Nutzung und erweitertem Denken verwenden, lesen Sie den Leitfaden für erweitertes Denken für weitere Informationen.

    Client-Tools angeben

    Client-Tools (sowohl Anthropic-Schema als auch benutzerdefiniert) werden im tools-Parameter der obersten Ebene der API-Anfrage angegeben. Jede Tool-Definition enthält:

    ParameterBeschreibung
    nameDer Name des Tools. Muss dem regulären Ausdruck ^[a-zA-Z0-9_-]{1,64}$ entsprechen.
    descriptionEine detaillierte Klartextbeschreibung dessen, was das Tool tut, wann es verwendet werden sollte und wie es sich verhält.
    input_schemaEin JSON-Schema-Objekt, das die erwarteten Parameter für das Tool definiert.
    input_examples(Optional) Ein Array von Beispiel-Eingabeobjekten, um Claude zu helfen, die Verwendung des Tools zu verstehen. Siehe Beispiele für die Tool-Nutzung bereitstellen.

    Den vollständigen Satz optionaler Eigenschaften, die für jede Tool-Definition verfügbar sind, einschließlich cache_control, strict, defer_loading und allowed_callers, finden Sie in der Tool-Referenz.

    System-Prompt bei Tool-Nutzung

    Wenn Sie die Claude-API mit dem tools-Parameter aufrufen, erstellt die API einen speziellen System-Prompt aus den Tool-Definitionen, der Tool-Konfiguration und einem etwaigen benutzerspezifizierten System-Prompt. Der erstellte Prompt ist darauf ausgelegt, das Modell anzuweisen, die angegebenen Tools zu verwenden und den notwendigen Kontext bereitzustellen, damit das Tool ordnungsgemäß funktioniert:

    In this environment you have access to a set of tools you can use to answer the user's question.
    {{ FORMATTING INSTRUCTIONS }}
    String and scalar parameters should be specified as is, while lists and objects should use JSON format. Note that spaces for string values are not stripped. The output is not expected to be valid XML and is parsed with regular expressions.
    Here are the functions available in JSONSchema format:
    {{ TOOL DEFINITIONS IN JSON SCHEMA }}
    {{ USER SYSTEM PROMPT }}
    {{ TOOL CONFIGURATION }}

    Best Practices für Tool-Definitionen

    Um die beste Leistung von Claude bei der Verwendung von Tools zu erzielen, befolgen Sie diese Richtlinien:

    • Stellen Sie äußerst detaillierte Beschreibungen bereit. Dies ist bei weitem der wichtigste Faktor für die Tool-Leistung. Ihre Beschreibungen sollten jedes Detail über das Tool erklären, einschließlich:
      • Was das Tool tut
      • Wann es verwendet werden sollte (und wann nicht)
      • Was jeder Parameter bedeutet und wie er das Verhalten des Tools beeinflusst
      • Alle wichtigen Einschränkungen oder Limitierungen, z. B. welche Informationen das Tool nicht zurückgibt, wenn der Tool-Name unklar ist. Je mehr Kontext Sie Claude über Ihre Tools geben können, desto besser wird es bei der Entscheidung sein, wann und wie diese verwendet werden sollen. Streben Sie mindestens 3-4 Sätze pro Tool-Beschreibung an, mehr wenn das Tool komplex ist.
    • Priorisieren Sie Beschreibungen, erwägen Sie aber die Verwendung von input_examples für komplexe Tools. Klare Beschreibungen sind am wichtigsten, aber für Tools mit komplexen Eingaben, verschachtelten Objekten oder formatempfindlichen Parametern können Sie das Feld input_examples verwenden, um schema-validierte Beispiele bereitzustellen. Weitere Informationen finden Sie unter Beispiele für die Tool-Nutzung bereitstellen.
    • Anstatt für jede Aktion ein separates Tool zu erstellen (, , ), gruppieren Sie diese in einem einzigen Tool mit einem -Parameter. Weniger, leistungsfähigere Tools reduzieren Auswahlmehrdeutigkeiten und erleichtern es Claude, Ihre Tool-Oberfläche zu navigieren.

    Die gute Beschreibung erklärt klar, was das Tool tut, wann es verwendet werden soll, welche Daten es zurückgibt und was der ticker-Parameter bedeutet. Die schlechte Beschreibung ist zu kurz und lässt Claude viele offene Fragen über das Verhalten und die Verwendung des Tools.

    Für tiefergehende Anleitungen zum Tool-Design (Konsolidierung, Benennung und Antwortgestaltung) siehe Writing tools for agents.

    Beispiele für die Tool-Nutzung bereitstellen

    Sie können konkrete Beispiele für gültige Tool-Eingaben bereitstellen, um Claude zu helfen, Ihre Tools effektiver zu nutzen. Dies ist besonders nützlich für komplexe Tools mit verschachtelten Objekten, optionalen Parametern oder formatempfindlichen Eingaben.

    Grundlegende Verwendung

    Fügen Sie Ihrer Tool-Definition ein optionales input_examples-Feld mit einem Array von Beispiel-Eingabeobjekten hinzu. Jedes Beispiel muss gemäß dem input_schema des Tools gültig sein:

    Beispiele werden im Prompt zusammen mit Ihrem Tool-Schema eingefügt und zeigen Claude konkrete Muster für wohlgeformte Tool-Aufrufe. Dies hilft Claude zu verstehen, wann optionale Parameter einzuschließen sind, welche Formate zu verwenden sind und wie komplexe Eingaben zu strukturieren sind.

    Anforderungen und Einschränkungen

    • Schema-Validierung – Jedes Beispiel muss gemäß dem input_schema des Tools gültig sein. Ungültige Beispiele geben einen 400-Fehler zurück
    • Nicht für serverseitige Tools unterstützt – Eingabebeispiele funktionieren bei benutzerdefinierten und Anthropic-Schema-Client-Tools, aber nicht bei Server-Tools wie Websuche oder Code-Ausführung
    • Token-Kosten – Beispiele erhöhen die Prompt-Token: ~20-50 Token für einfache Beispiele, ~100-200 Token für komplexe verschachtelte Objekte

    Claudes Ausgabe steuern

    Tool-Nutzung erzwingen

    In einigen Fällen möchten Sie möglicherweise, dass Claude ein bestimmtes Tool verwendet, um die Frage des Benutzers zu beantworten, auch wenn Claude sonst direkt antworten würde, ohne ein Tool aufzurufen. Sie können dies tun, indem Sie das Tool im Feld tool_choice wie folgt angeben:

    tool_choice = {"type": "tool", "name": "get_weather"}

    Bei der Arbeit mit dem Parameter tool_choice gibt es vier mögliche Optionen:

    • auto erlaubt Claude zu entscheiden, ob bereitgestellte Tools aufgerufen werden sollen oder nicht. Dies ist der Standardwert, wenn tools bereitgestellt werden.
    • any teilt Claude mit, dass es eines der bereitgestellten Tools verwenden muss, erzwingt aber kein bestimmtes Tool.
    • tool zwingt Claude, immer ein bestimmtes Tool zu verwenden.
    • none verhindert, dass Claude Tools verwendet. Dies ist der Standardwert, wenn keine tools bereitgestellt werden.

    Bei der Verwendung von Prompt-Caching werden Änderungen am Parameter tool_choice zwischengespeicherte Nachrichtenblöcke ungültig machen. Tool-Definitionen und System-Prompts bleiben zwischengespeichert, aber Nachrichteninhalte müssen neu verarbeitet werden.

    Dieses Diagramm veranschaulicht, wie jede Option funktioniert:

    Diagramm, das die vier tool_choice-Optionen zeigt: auto, any, tool und none

    Beachten Sie, dass wenn Sie tool_choice als any oder tool haben, die API die Assistentennachricht vorab ausfüllt, um die Verwendung eines Tools zu erzwingen. Das bedeutet, dass die Modelle keine natürlichsprachliche Antwort oder Erklärung vor tool_use-Inhaltsblöcken ausgeben, auch wenn sie ausdrücklich dazu aufgefordert werden.

    Bei der Verwendung von erweitertem Denken mit Tool-Nutzung werden tool_choice: {"type": "any"} und tool_choice: {"type": "tool", "name": "..."} nicht unterstützt und führen zu einem Fehler. Nur tool_choice: {"type": "auto"} (der Standard) und tool_choice: {"type": "none"} sind mit erweitertem Denken kompatibel.

    Claude Mythos Preview unterstützt keine erzwungene Tool-Nutzung. Anfragen mit tool_choice: {"type": "any"} oder tool_choice: {"type": "tool", "name": "..."} geben bei diesem Modell einen 400-Fehler zurück. Verwenden Sie tool_choice: {"type": "auto"} (den Standard) oder tool_choice: {"type": "none"} und verlassen Sie sich auf Prompting, um die Tool-Auswahl zu beeinflussen.

    Tests haben gezeigt, dass dies die Leistung nicht beeinträchtigen sollte. Wenn Sie möchten, dass das Modell natürlichsprachlichen Kontext oder Erklärungen bereitstellt, während es dennoch ein bestimmtes Tool verwenden soll, können Sie {"type": "auto"} für tool_choice (den Standard) verwenden und explizite Anweisungen in einer user-Nachricht hinzufügen. Zum Beispiel: What's the weather like in London? Use the get_weather tool in your response.

    Garantierte Tool-Aufrufe mit strikten Tools

    Kombinieren Sie tool_choice: {"type": "any"} mit strikter Tool-Nutzung, um sowohl zu garantieren, dass eines Ihrer Tools aufgerufen wird, ALS AUCH dass die Tool-Eingaben strikt Ihrem Schema folgen. Setzen Sie strict: true in Ihren Tool-Definitionen, um die Schema-Validierung zu aktivieren.

    Modellantworten mit Tools

    Bei der Verwendung von Tools kommentiert Claude oft, was es tut, oder antwortet dem Benutzer auf natürliche Weise, bevor es Tools aufruft.

    Zum Beispiel könnte Claude bei der Eingabeaufforderung "What's the weather like in San Francisco right now, and what time is it there?" wie folgt antworten:

    JSON
    {
      "role": "assistant",
      "content": [
        {
          "type": "text",
          "text": "I'll help you check the current weather and time in San Francisco."
        },
        {
          "type": "tool_use",
          "id": "toolu_01A09q90qw90lq917835lq9",
          "name": "get_weather",
          "input": { "location": "San Francisco, CA" }
        }
      ]
    }

    Dieser natürliche Antwortstil hilft Benutzern zu verstehen, was Claude tut, und schafft eine konversationellere Interaktion. Sie können den Stil und den Inhalt dieser Antworten durch Ihre System-Prompts und durch die Bereitstellung von <examples> in Ihren Prompts steuern.

    Es ist wichtig zu beachten, dass Claude verschiedene Formulierungen und Ansätze verwenden kann, wenn es seine Aktionen erklärt. Ihr Code sollte diese Antworten wie jeden anderen vom Assistenten generierten Text behandeln und sich nicht auf spezifische Formatierungskonventionen verlassen.

    Nächste Schritte

    Tool-Aufrufe verarbeiten

    tool_use-Blöcke parsen und tool_result-Antworten formatieren.

    Tool Runner (SDK)

    Das SDK die agentische Schleife automatisch verwalten lassen.

    Tool-Referenz

    Verzeichnis der von Anthropic bereitgestellten Tools und optionalen Eigenschaften.

    Fassen Sie verwandte Operationen in weniger Tools zusammen.
    create_pr
    review_pr
    merge_pr
    action
  1. Verwenden Sie aussagekräftige Namensräume in Tool-Namen. Wenn Ihre Tools mehrere Dienste oder Ressourcen umfassen, stellen Sie Namen mit dem Dienst voran (z. B. github_list_prs, slack_send_message). Dies macht die Tool-Auswahl eindeutig, wenn Ihre Bibliothek wächst, und ist besonders wichtig bei der Verwendung von Tool-Suche.
  2. Gestalten Sie Tool-Antworten so, dass sie nur hochwertige Informationen zurückgeben. Geben Sie semantische, stabile Bezeichner zurück (z. B. Slugs oder UUIDs) anstatt undurchsichtige interne Referenzen, und schließen Sie nur die Felder ein, über die Claude nachdenken muss, um seinen nächsten Schritt zu bestimmen. Aufgeblähte Antworten verschwenden Kontext und erschweren es Claude, das Wesentliche zu extrahieren.
  3. ant messages create <<'YAML'
    model: claude-opus-4-6
    max_tokens: 1024
    tools:
      - name: get_weather
        description: Get the current weather in a given location
        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
          required: [location]
        input_examples:
          - location: San Francisco, CA
            unit: fahrenheit
          - location: Tokyo, Japan
            unit: celsius
          - location: New York, NY  # 'unit' is optional
    messages:
      - role: user
        content: What's the weather like in San Francisco?
    YAML