Zum Hauptinhalt springen

Tool-Nutzung / Function Calling

Fortgeschritten

Tool-Nutzung ermöglicht es Claude, Funktionen aufzurufen, die du definierst — eine Suche, einen Taschenrechner, deine Datenbank, jede beliebige API — und deren Ergebnisse zu verwenden. Sie ist die Grundlage jedes Agenten.

What you'll learn
  • Wie die vierstufige agentische Schleife funktioniert, von den Tool-Definitionen bis zur finalen Antwort
  • Wie man ein Tool in Python mit Name, Beschreibung und JSON-Schema-Eingabe definiert
  • Warum Tool-Beschreibungen als Prompts wirken, die prägen, wann und wie Claude sie aufruft
  • Wie man Eingaben validiert, Fehler als Ergebnisse zurückgibt und serverseitige Tools sicher nutzt

Die Schleife

Tool-Nutzung ist ein Dialog, kein einzelner Aufruf. Du reichst Claude ein Menü von Tools; Claude wählt eines aus und pausiert; du führst es aus und meldest zurück; Claude fügt das Ergebnis in seine Antwort ein — und wiederholt das bei Bedarf.

Guided walkthrough1 of 4
  1. Du fügst eine Liste von Tool-Definitionen hinzu — jede mit einem Namen, einer Beschreibung und einer JSON-Schema-Eingabe.

Ein Tool definieren (Python)

Eine Tool-Definition ist einfach ein Name, eine Beschreibung in einfacher Sprache und ein JSON-Schema für die Eingabe. Übergib sie in tools und prüfe dann stop_reason, um zu erkennen, wann Claude handeln möchte.

get_weather-Tool + erster Aufruf

tools = [{
  "name": "get_weather",
  "description": "Get current weather for a city.",
  "input_schema": {
      "type": "object",
      "properties": {"city": {"type": "string"}},
      "required": ["city"],
  },
}]

msg = client.messages.create(
  model="claude-sonnet-5", max_tokens=1024,
  tools=tools,
  messages=[{"role": "user", "content": "What's the weather in Rome?"}],
)
# If msg.stop_reason == "tool_use": run the tool, then send a tool_result back.

Tipps

Kleine Entscheidungen darüber, wie du Tools definierst und verarbeitest, machen einen großen Unterschied bei der Zuverlässigkeit.

  • Beschreibungen sind Prompts. Eine klare Tool-description und Parameter-Dokumentation verbessern enorm, wann/wie Claude es aufruft.
  • Validiere Eingaben, die du erhältst, bevor du sie ausführst — vertraue ihnen niemals blind.
  • Gib Fehler als Ergebnisse zurück. Wenn ein Tool fehlschlägt, schicke ein tool_result, das den Fehler beschreibt, damit Claude sich erholen kann.
  • Serverseitige Tools. Anthropic bietet außerdem integrierte Tools an (z. B. Websuche, Codeausführung, Computer-Use) — prüfe die Dokumentation für das aktuelle Menü.

:::warning Tools = Aktionen = Risiko Ein Tool, das echte Aktionen ausführt, erbt ein Sicherheitsmodell. Wende das Least-Privilege-Prinzip an und behalte bei riskanten Aufrufen einen Menschen in der Schleife — siehe Agenten & Tools absichern. :::

Vokabular der Tool-Nutzung
Drücke Enter oder die Leertaste, um die Karte umzudrehen. Nutze die Pfeiltasten links und rechts, um zwischen den Karten zu wechseln.Begriff angezeigt.
1 / 4

Überprüfe dich selbst

0/3
  1. Nachdem Claude einen tool_use-Block zurückgegeben hat, wer führt das Tool aus?
  2. Ein von dir definiertes Tool schlägt zur Laufzeit fehl. Was ist das empfohlene Vorgehen?
  3. Warum ist eine klare Tool-Beschreibung so wichtig?
Key takeaways
  • Tool-Nutzung ist eine Schleife: Tool-Definitionen schicken, Claude gibt einen tool_use-Block zurück und stoppt, du führst aus und gibst ein tool_result zurück, Claude fährt fort, bis es antwortet.
  • Eine Tool-Definition ist ein Name, eine Beschreibung und eine JSON-Schema-Eingabe — übergib sie in tools und prüfe stop_reason == tool_use.
  • Beschreibungen sind Prompts; validiere Eingaben vor der Ausführung; gib Fehlschläge als tool_result-Fehler zurück, damit Claude sich erholen kann.
  • Anthropic bietet außerdem serverseitige Tools an, und jedes Tool, das echte Aktionen ausführt, braucht Least Privilege plus einen Menschen in der Schleife.

Weiter