Wird geladen

Senden von Tool-Ergebnissen

Lektion 267 Min.

Nachdem Claude einen Tool-Aufruf angefordert hat, musst du die Funktion ausführen und die Ergebnisse zurücksenden. Dies vervollständigt den Tool-Nutzungs-Workflow, indem Claude die angeforderten Informationen bereitgestellt werden.

Ausführen der Tool-Funktion

Wenn Claude mit einem Tool-Nutzungsblock antwortet, extrahierst du die Eingabeparameter und rufst deine Funktion auf. So greifst du auf die Tool-Parameter zu:

python
# Auf den Tool-Nutzung-Block zugreifen
tool_use_block = response.content[1]

# Die Eingabeparameter abrufen
input_params = tool_use_block.input

# Rufe deine Funktion mit den Parametern auf
result = get_current_datetime(**input_params)

Das doppelte Sternchen (**) entpackt das Dictionary in Schlüsselwortargumente, die deine Funktion erwartet.

Tool-Ergebnisblock

Nachdem du das Tool ausgeführt hast, sendest du die Ergebnisse mithilfe eines Tool-Ergebnisblocks an Claude zurück. Dieser Block hat mehrere wichtige Eigenschaften:

  • tool_use_id - Muss mit der ID aus dem ursprünglichen Tool-Nutzungsblock übereinstimmen
  • content - Die Ausgabe deiner Tool-Funktion, in einen String umgewandelt
  • is_error - Auf true gesetzt, wenn während der Ausführung ein Fehler aufgetreten ist

Umgang mit mehreren Tool-Aufrufen

Claude kann in einer einzigen Antwort mehrere Tool-Aufrufe anfordern. Wenn ein Nutzer beispielsweise fragt „Was ist 10 + 10 und was ist 30 + 30?", könnte Claude zwei separate Tool-Nutzungsblöcke senden:

Jeder Tool-Nutzungsblock erhält eine eindeutige ID, und du musst diese IDs beim Zurücksenden der Ergebnisse abgleichen:

Dieses ID-System stellt sicher, dass Claude jedes Ergebnis korrekt mit der entsprechenden Anfrage abgleichen kann, selbst wenn die Ergebnisse in einer anderen Reihenfolge eintreffen.

Senden der Folgeanfrage

Deine Folgeanfrage an Claude muss den vollständigen Gesprächsverlauf sowie das neue Tool-Ergebnis enthalten:

python
messages.append({
    "role": "user",
    "content": [{
        "type": "tool_result",
        "tool_use_id": response.content[1].id,
        "content": result,
        "is_error": False
    }]
})

Der Gesprächsablauf sieht folgendermaßen aus:

Denke daran, das Tool-Schema in deine Folgeanfrage einzubeziehen, auch wenn Claude wahrscheinlich keine Tools erneut aufrufen muss. Claude benötigt das Schema, um die Tool-Referenzen im Gesprächsverlauf zu verstehen.

Vollständiger Workflow

Hier ist der gesamte Prozess:

  1. Der Nutzer stellt eine Frage, die Tool-Nutzung erfordert
  2. Claude antwortet mit einem Tool-Nutzungsblock
  3. Du führst die angeforderte Tool-Funktion aus
  4. Du sendest eine Folgeanfrage mit dem Tool-Ergebnis
  5. Claude liefert eine endgültige Antwort unter Verwendung der Tool-Ausgabe

Die endgültige Anfrage enthält deinen vollständigen Nachrichtenverlauf, den Tool-Ergebnisblock und das Tool-Schema. Claude antwortet dann mit einer regulären Textnachricht, die die Informationen aus deiner Tool-Ausführung einbezieht.