Parse tool_use-Blöcke, formatiere tool_result-Antworten und behandle Fehler mit is_error.
Diese Seite behandelt den Lebenszyklus von Tool-Aufrufen: das Lesen von tool_use-Blöcken aus Claudes Antwort, das Formatieren von tool_result-Blöcken in deiner Antwort und das Signalisieren von Fehlern. Für die SDK-Abstraktion, die dies automatisch übernimmt, siehe Tool Runner.
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. Dieser wird später verwendet, um die Tool-Ergebnisse zuzuordnen.
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 du eine Tool-Use-Antwort für ein Client-Tool erhältst, solltest du:
name, id und input aus dem tool_use-Block extrahieren.
Das tatsächliche Tool in deiner Codebasis ausführen, das diesem Tool-Namen entspricht, und dabei das Tool-input übergeben.
Die Konversation fortsetzen, indem du eine neue Nachricht mit der roleuser und einem content-Block sendest, der den Typ tool_result und die folgenden Informationen enthält:
tool_use_id: Die id der Tool-Use-Anfrage, für die dies ein Ergebnis ist.
content (optional): Das Ergebnis des Tools, als String (zum Beispiel "content": "15 degrees"), als Liste verschachtelter Inhaltsblöcke (zum Beispiel "content": [{"type": "text", "text": "15 degrees"}]) oder als Liste von Dokumentblöcken (zum Beispiel "content": [{"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "15 degrees"}}]). Diese Inhaltsblöcke können die Typen text, image, document oder search_result verwenden.
is_error (optional): Setze dies auf true, wenn die Tool-Ausführung zu einem Fehler geführt hat.
Nach Erhalt des Tool-Ergebnisses verwendet Claude diese Informationen, um weiterhin eine Antwort auf den ursprünglichen Benutzer-Prompt zu generieren.
Ergebnisse von Server-Tools verarbeiten
Claude führt das Tool intern aus und integriert die Ergebnisse direkt in seine Antwort, ohne dass eine zusätzliche Benutzerinteraktion erforderlich ist.
Fehlerbehandlung mit is_error
Es gibt einige verschiedene Arten von Fehlern, die bei der Verwendung von Tools mit Claude auftreten können: