Wird geladen

Agenten stellen eine Abkehr von den strukturierten Workflows dar, die wir zuvor untersucht haben. Während Workflows sich auszeichnen, wenn du die genauen Schritte kennst, die zur Erledigung einer Aufgabe erforderlich sind, glänzen Agenten, wenn der Weg nach vorne nicht klar ist. Anstatt eine starre Abfolge zu definieren, gibst du Claude ein Ziel und eine Reihe von Tools und lässt es dann herausfinden, wie es diese Tools kombinieren kann, um das Ziel zu erreichen.

Diese Flexibilität macht Agenten für Entwickler attraktiv. Du kannst einen Agenten einmal erstellen, sicherstellen, dass er einigermaßen gut funktioniert, und ihn dann einsetzen, um eine Vielzahl von Aufgaben zu bewältigen. Dieser Ansatz bringt jedoch erhebliche Nachteile in Bezug auf Zuverlässigkeit und Kosten mit sich, die wir später untersuchen werden.

Wie Tools den Agenten ausmachen

Die wahre Stärke von Agenten liegt in ihrer Fähigkeit, einfache Tools auf unerwartete Weise zu kombinieren. Betrachte eine grundlegende Reihe von Datum-/Uhrzeit-Tools, die wir zuvor im Kurs behandelt haben:

  • get_current_datetime - Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück
  • add_duration_to_datetime - Fügt einem bestimmten Datum Zeit hinzu
  • set_reminder - Erstellt eine Erinnerung für eine bestimmte Zeit

Jedes Tool ist für sich genommen einfach, aber Claude kann sie kombinieren, um unterschiedliche Anfragen zu bearbeiten:

Bei „Wie spät ist es?" ruft Claude einfach get_current_datetime auf. Bei „Welcher Wochentag ist in 11 Tagen?" verkettet es get_current_datetime mit anschließendem add_duration_to_datetime. Komplexere Anfragen wie „Erinnere mich daran, nächsten Mittwoch ins Fitnessstudio zu gehen" erfordern alle drei Tools in Folge.

Claude kann sogar erkennen, wenn es zusätzliche Informationen benötigt. Wenn gefragt wird „Wann läuft meine 90-tägige Garantie ab?", fragt es den Nutzer zunächst, wann er die Garantie erhalten hat, und verwendet diese Information dann mit add_duration_to_datetime, um das Ablaufdatum zu berechnen.

Tools sollten abstrakt sein

Die zentrale Erkenntnis beim Erstellen effektiver Agenten ist, angemessen abstrakte Tools bereitzustellen, anstatt hochspezialisierte. Claude Code demonstriert dieses Prinzip perfekt.

Claude Code hat Zugriff auf generische, flexible Tools:

  • bash - Befehle ausführen
  • glob - Dateien finden
  • grep - Dateiinhalte durchsuchen
  • read - Eine Datei lesen
  • write - Eine Datei erstellen
  • edit - Eine Datei bearbeiten
  • webfetch - Eine URL abrufen

Beachte, was Claude Code nicht hat – spezialisierte Tools wie „Refactor" oder „Run Tests" oder „Install Dependencies". Stattdessen findet es heraus, wie es diese Aufgaben durch die Kombination der verfügbaren grundlegenden Tools erledigen kann. Um Abhängigkeiten zu installieren, liest es Projektdateien, um die Konfiguration zu verstehen, und verwendet dann bash, um die entsprechenden Installationsbefehle auszuführen.

Best Practice: Stelle angemessen abstrakte Tools bereit

Konzentriere dich beim Erstellen von Agenten auf Tools, die Claude kreativ kombinieren kann, anstatt auf Tools, die ein einzelnes spezifisches Problem lösen. Betrachte einen Agenten zur Erstellung von Social-Media-Videos:

Effektive Tools für diesen Agenten könnten Folgendes umfassen:

  • bash - Bietet Zugriff auf FFMPEG für die Videobearbeitung
  • generate_image - Erstellt Bilder aus Text-Prompts
  • text_to_speech - Wandelt Text in Audio um
  • post_media - Veröffentlicht Inhalte in sozialen Medien

Dieses Tool-Set ermöglicht sowohl einfache als auch komplexe Interaktionen. Ein Nutzer könnte anfragen „Erstelle und poste ein Video über Python-Programmierung", und der Agent erledigt alles automatisch. Alternativ könnte die Interaktion kollaborativer gestaltet sein:

Der Nutzer könnte sagen „Ich möchte, dass du ein Video über Python erstellst, aber zuerst möchte ich ein Ausgangsbild für das Video auswählen." Der Agent kann ein Beispielbild generieren, es dem Nutzer zur Genehmigung zeigen und dann mit der Videoerstellung fortfahren, sobald es bestätigt wurde.

Diese Flexibilität entsteht natürlich daraus, dass du den richtigen Abstraktionsgrad in deinen Tools bereitstellst. Jedes Tool sollte allgemein genug sein, um in mehreren Kontexten nützlich zu sein, aber spezifisch genug, um in Kombination mit anderen sinnvolle Arbeit zu leisten.