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

Tool-Aufrufe verarbeiten

Analysieren Sie tool_use-Blöcke, formatieren Sie tool_result-Antworten und behandeln Sie Fehler mit is_error.

Diese Seite behandelt den Tool-Call-Lebenszyklus: Lesen von tool_use-Blöcken aus Claudes Antwort, Formatieren von tool_result-Blöcken in Ihrer Antwort und Signalisieren von Fehlern. Für die SDK-Abstraktion, die dies automatisch verarbeitet, siehe Tool Runner.

Einfacher mit Tool Runner: Die auf dieser Seite beschriebene manuelle Tool-Verarbeitung wird automatisch von Tool Runner verwaltet. Verwenden Sie diese Seite, wenn Sie benutzerdefinierte Kontrolle über die Tool-Ausführung benötigen.

Claudes Antwort unterscheidet sich je nachdem, ob ein Client- oder Server-Tool verwendet wird.

Verarbeitung von Ergebnissen von Client-Tools

Die Antwort hat einen stop_reason von tool_use und einen oder mehrere tool_use-Inhaltsblöcke, die Folgendes enthalten:

  • id: Ein eindeutiger Bezeichner für diesen bestimmten Tool-Use-Block. Dies wird später verwendet, um die Tool-Ergebnisse abzugleichen.
  • name: Der Name des verwendeten Tools.
  • input: Ein Objekt, das die an das Tool übergebene Eingabe enthält und dem input_schema des Tools entspricht.

Wenn Sie eine Tool-Use-Antwort für ein Client-Tool erhalten, sollten Sie:

  1. Extrahieren Sie name, id und input aus dem tool_use-Block.
  2. Führen Sie das tatsächliche Tool in Ihrer Codebasis aus, das diesem Tool-Namen entspricht, und übergeben Sie die Tool-input.
  3. Setzen Sie das Gespräch fort, indem Sie eine neue Nachricht mit der role von user und einem content-Block mit dem tool_result-Typ und den folgenden Informationen senden:
    • tool_use_id: Die id der Tool-Use-Anfrage, für die dies ein Ergebnis ist.
    • content: Das Ergebnis des Tools als Zeichenkette (z. B. ), eine Liste verschachtelter Inhaltsblöcke (z. B. ) oder eine Liste von Dokumentblöcken (z. B. ). Diese Inhaltsblöcke können die Typen , oder verwenden.

Wichtige Formatierungsanforderungen:

  • Tool-Result-Blöcke müssen unmittelbar nach ihren entsprechenden Tool-Use-Blöcken in der Nachrichtenhistorie folgen. Sie können keine Nachrichten zwischen der Tool-Use-Nachricht des Assistenten und der Tool-Result-Nachricht des Benutzers einfügen.
  • In der Benutzernachricht mit Tool-Ergebnissen müssen die tool_result-Blöcke ZUERST im Content-Array stehen. Jeder Text muss NACH allen Tool-Ergebnissen kommen.

Beispielsweise führt dies zu einem 400-Fehler:

{
  "role": "user",
  "content": [
    { "type": "text", "text": "Here are the results:" }, // ❌ Text vor tool_result
    { "type": "tool_result", "tool_use_id": "toolu_01" /* ... */ }
  ]
}

Nach Erhalt des Tool-Ergebnisses wird Claude diese Informationen verwenden, um eine Antwort auf die ursprüngliche Benutzereingabe zu generieren.

Verarbeitung von Ergebnissen von Server-Tools

Claude führt das Tool intern aus und integriert die Ergebnisse direkt in seine Antwort, ohne dass zusätzliche Benutzerinteraktion erforderlich ist.

Unterschiede zu anderen APIs

Im Gegensatz zu APIs, die Tool-Use trennen oder spezielle Rollen wie tool oder function verwenden, integriert die Claude API Tools direkt in die user- und assistant-Nachrichtenstruktur.

Nachrichten enthalten Arrays von text-, image-, tool_use- und tool_result-Blöcken. user-Nachrichten enthalten Client-Inhalte und tool_result, während assistant-Nachrichten KI-generierte Inhalte und tool_use enthalten.

Fehlerbehandlung mit is_error

Es gibt verschiedene Arten von Fehlern, die bei der Verwendung von Tools mit Claude auftreten können:

Nächste Schritte

  • Für die Ausführung mehrerer Tools in einer Runde siehe Parallel tool use.
  • Für die SDK-Abstraktion, die diese Schleife automatisiert, siehe Tool Runner.
  • Für den vollständigen Tool-Use-Workflow siehe Define tools.

Was this page helpful?

  • Verarbeitung von Ergebnissen von Client-Tools
  • Verarbeitung von Ergebnissen von Server-Tools
  • Fehlerbehandlung mit is_error
  • Nächste Schritte
"content": "15 degrees"
"content": [{"type": "text", "text": "15 degrees"}]
"content": [{"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "15 degrees"}}]
text
image
document
  • is_error (optional): Setzen Sie auf true, wenn die Tool-Ausführung zu einem Fehler führte.
  • Dies ist korrekt:

    {
      "role": "user",
      "content": [
        { "type": "tool_result", "tool_use_id": "toolu_01" /* ... */ },
        { "type": "text", "text": "What should I do next?" } // ✅ Text nach tool_result
      ]
    }

    Wenn Sie einen Fehler wie „tool_use ids were found without tool_result blocks immediately after" erhalten, überprüfen Sie, ob Ihre Tool-Ergebnisse korrekt formatiert sind.