Wie muss der Code gestaltet sein, wenn Claude mehrere Tool-Nutzungs-Teile (Tool Use Parts) in einer einzigen Antwort senden kann?	Der Code muss defensiv programmiert werden und alle Tool-Nutzungs-Teile iterieren, da mehrere Tools parallel aufgerufen werden können.
Welche drei Schlüssel muss die Funktion `run_tools` aus einem Tool Use Part extrahieren?	Tool Use ID, Tool Name (`name`) und die Eingabe (`input`).
Wie wird die Eingabe an die eigentliche Tool-Funktion übergeben, wenn sie Argument-Dictionaries enthält?	Die Argument-Dictionary muss mit `**` (splatting) in die Tool-Funktion übergeben werden.
Was ist der Zweck der `tool_use_id` in den Tool Use Parts und den Tool Result Parts?	Sie hilft Claude, die korrekte Tool-Antwort mit dem ursprünglichen Tool-Aufruf abzugleichen, besonders bei parallelen Aufrufen.
Welche drei Schlüssel sind in einem `tool_result_part` enthalten, der an Claude zurückgesendet wird?	`tool_use_id`, `content` (Serienform der Ausgabe) und `status` (Success oder Error).
Warum ist es wichtig, den Prozess der Erzeugung eines Tool Result Parts in einem `try...except`-Block zu verpacken?	Um sicherzustellen, dass bei einem Fehler im Tool-Aufruf ein `tool_result_part` mit dem Status `error` an Claude zurückgesendet wird.
