Published on

Die Entwicklung von Anthropic-Agenten: Einfachheit übertrifft Komplexität

Autoren
  • avatar
    Name
    Ajax
    Twitter

Die Definition von Agenten

Das Konzept von Agenten ist vielfältig. Einige sehen sie als 'Alleskönner', die selbstständig denken, Entscheidungen treffen und Werkzeuge zur Erledigung komplexer Aufgaben einsetzen können. Andere betrachten sie als 'Regelbefolger', die vorgegebene Arbeitsabläufe Schritt für Schritt ausführen. Anthropic fasst beide unter dem Begriff intelligente Systeme zusammen und unterscheidet zwischen Workflows und Agenten:

  • Workflows: Systeme, die Large Language Models (LLM) und Werkzeuge über vordefinierte Codepfade orchestrieren.
  • Agenten: Systeme, deren Prozesse und Werkzeugnutzung dynamisch von LLMs gesteuert werden, wodurch sie die Art und Weise der Aufgabenerledigung autonom kontrollieren können.

Wann man Agenten wählen sollte

Anthropic empfiehlt, bei der Entwicklung von KI-Anwendungen dem Prinzip 'So einfach wie möglich, so komplex wie nötig' zu folgen. Nicht jede Situation erfordert den Aufbau komplexer intelligenter Systeme. Intelligente Systeme sind zwar leistungsstark, können aber zu langsameren Reaktionszeiten und höheren Kosten führen. Entwickler müssen ein Gleichgewicht zwischen Funktionalität und Effizienz finden.

  • Workflows: Geeignet für klar definierte Aufgaben, die Vorhersehbarkeit und Konsistenz erfordern.
  • Agenten: Besser geeignet für umfangreiche Szenarien, die Flexibilität und modellgesteuerte Entscheidungen erfordern.

Für viele Anwendungen reicht es oft aus, gute Prompts in Verbindung mit Retrieval und Kontextbeispielen zu verwenden, um direkt Fragen an ein großes Modell zu stellen.

Die Verwendung von Frameworks

Es gibt derzeit viele Frameworks, die Entwicklern beim Aufbau von KI-Agenten helfen, wie zum Beispiel:

  • LangGraph von LangChain
  • Das AI Agent Framework von Amazon Bedrock
  • Das Drag-and-Drop-Tool Rivet zur Erstellung von Workflows für große Modelle
  • Das GUI-Tool Vellum zum Erstellen und Testen komplexer Workflows

Diese Frameworks vereinfachen zwar den Entwicklungsprozess, erhöhen aber auch die Abstraktionsebene des Codes, wodurch die zugrunde liegende Logik weniger transparent und die Fehlersuche schwieriger wird. Dies kann auch dazu führen, dass in einfachen Szenarien übermäßig komplexe Lösungen eingeführt werden.

Anthropic empfiehlt Entwicklern, mit der direkten Verwendung der API großer Modelle zu beginnen. Viele Muster lassen sich mit wenigen Codezeilen implementieren. Wenn man sich für die Verwendung eines Frameworks entscheidet, ist es wichtig, dessen zugrunde liegende Prinzipien zu verstehen. Ein unzureichendes Verständnis der zugrunde liegenden Mechanismen von Frameworks ist eine Hauptursache für Entwicklungsprobleme.

Anthropic's Cookbook bietet konkrete Beispiele.

Bausteine, Workflows und Agenten

Grundlegende Bausteine: Erweiterte LLMs

Der grundlegende Baustein intelligenter Systeme ist ein erweitertes LLM, das über Fähigkeiten wie Retrieval und Gedächtnis verfügt. Die Modelle von Anthropic können diese Fähigkeiten aktiv nutzen, z.B. um Suchanfragen zu generieren, Werkzeuge auszuwählen und zu entscheiden, welche Informationen aufbewahrt werden sollen.

Bei der Erweiterung der Funktionalität sollte man sich auf Folgendes konzentrieren:

  • Anpassung der Funktionen an den jeweiligen Anwendungsfall
  • Sicherstellung einer einfachen und gut dokumentierten Schnittstelle für das Modell

Das kürzlich von Anthropic veröffentlichte Modellkontextprotokoll vereinfacht die Integration von KI-Modellen in das Ökosystem von Drittanbietern.

Workflows: Prompt-Ketten

Prompt-Ketten zerlegen komplexe Aufgaben in mehrere Schritte, wobei jeder Schritt ein großes Modell aufruft und nachfolgende Schritte auf den Ergebnissen des vorherigen Schritts aufbauen. Entwickler können Kontrollpunkte in den Prozess einfügen, um sicherzustellen, dass er wie erwartet abläuft.

Prompt-Ketten eignen sich für Szenarien, in denen komplexe Aufgaben klar in eine Reihe von festen Teilaufgaben zerlegt werden können. Jedes Modell konzentriert sich auf die Erledigung einer einfachen Aufgabe. Die Gesamtantwortzeit kann zwar etwas länger sein, aber die Genauigkeit wird deutlich erhöht.

Typische Anwendungsfälle:

  • Zuerst einen Marketingtext erstellen und ihn dann in andere Sprachen übersetzen.
  • Zuerst einen Dokumentenentwurf schreiben und auf Konformität prüfen und dann auf der Grundlage des Entwurfs ein vollständiges Dokument erstellen.

Workflows: Intelligentes Shunting

Shunting-Technologien bestimmen die Art der eingehenden Aufgabe und ordnen sie dem entsprechenden Modul zu. Dieses Design ermöglicht es jedem Modul, sich auf eine bestimmte Aufgabe zu optimieren und Interferenzen zwischen verschiedenen Aufgabentypen zu vermeiden. Intelligentes Shunting eignet sich für Szenarien, in denen Aufgaben eindeutige Klassifizierungsmerkmale aufweisen. KI-Systeme können die Art der Aufgabe mithilfe großer Sprachmodelle oder traditioneller Algorithmen genau erkennen und zuordnen.

Typische Anwendungsfälle:

  • In Kundenservice-Systemen werden allgemeine Anfragen, Rückerstattungsanträge und technischer Support an die entsprechenden Prozesse weitergeleitet.
  • Einfache, häufige Fragen werden kleineren Modellen zugewiesen, während schwierige, seltene Fragen stärkeren Modellen zugewiesen werden, um Kosten und Geschwindigkeit zu optimieren.

Workflows: Parallel

Große Sprachmodelle können Aufgaben gleichzeitig bearbeiten und Ausgaben programmatisch aggregieren. Merkmale von parallelen Workflows:

  • Aufgabensegmentierung: Aufgaben werden in parallel ausführbare Teilaufgaben zerlegt, deren Ergebnisse am Ende zusammengeführt werden.
  • Voting-Mechanismus: Die gleiche Aufgabe wird mehrmals ausgeführt, wobei das beste Ergebnis ausgewählt oder mehrere Antworten zusammengeführt werden.

Die Parallelmethode ist sehr effektiv, wenn Teilaufgaben parallel ausgeführt werden können, um die Geschwindigkeit zu erhöhen, oder wenn mehrere Versuche aus verschiedenen Blickwinkeln erforderlich sind, um ein Ergebnis mit höherer Sicherheit zu erhalten. Bei komplexen Aufgaben ist es effektiver, wenn sich jeder Aufruf auf einen bestimmten Aspekt konzentriert.

Typische Anwendungsfälle:

  • Aufgabensegmentierung:
    • Sicherheitsschutz: Ein Modell verarbeitet Benutzeranfragen, ein anderes führt eine Inhaltsprüfung durch.
    • Leistungsbewertung: Verschiedene Modelle bewerten die Systemleistungskennzahlen.
  • Voting-Mechanismus:
    • Code-Sicherheitsprüfung: Mehrere Erkennungsmodelle finden gemeinsam Code-Schwachstellen.
    • Inhaltsprüfung: Mehrere Modelle bewerten die Inhaltsicherheit aus verschiedenen Blickwinkeln.

Workflows: Führungskraft - Ausführender

Ein zentrales großes Sprachmodell zerlegt Aufgaben dynamisch, weist sie Ausführungsmodellen zu und fasst die Ergebnisse zusammen.

Dieser Workflow eignet sich für komplexe Aufgaben, bei denen die genauen Schritte nicht im Voraus festgelegt werden können. Die Aufgabenteilung ist nicht fest, sondern wird vom KI-System dynamisch je nach Situation entschieden.

Typische Anwendungsfälle:

  • Programmierungsanwendungen, bei denen komplexe Änderungen an mehreren Dateien erforderlich sind.
  • Suchaufgaben, bei denen relevante Informationen aus verschiedenen Quellen gesammelt und analysiert werden müssen.

Workflows: Bewertung - Optimierung

Ein LLM-Aufruf generiert eine Antwort, ein anderer liefert eine Bewertung und Feedback, wodurch ein Kreislauf entsteht.

Dieser Workflow ist besonders effektiv, wenn klare Bewertungskriterien vorhanden sind und eine iterative Verfeinerung einen deutlichen Mehrwert bietet. LLMs können Feedback geben, ähnlich wie menschliche Autoren, die ihren Text wiederholt überarbeiten.

Typische Anwendungsfälle:

  • Literarische Übersetzung: Ein Bewertungsmodell findet sprachliche Unterschiede, die bei der Übersetzung übersehen wurden, und schlägt Änderungen vor.
  • Komplexe Suche: Ein Bewertungsmodell entscheidet, ob eine weitere, tiefere Suche erforderlich ist.

Agenten

Agenten entstehen mit der Reife von LLMs in Bezug auf das Verständnis komplexer Eingaben, die Planung von Schlussfolgerungen, die Verwendung von Werkzeugen und die Fehlerbehebung.

Die Arbeit eines Agenten beginnt mit einem Befehl oder einer interaktiven Diskussion mit einem menschlichen Benutzer. Sobald eine Aufgabe klar ist, plant und agiert der Agent unabhängig, wobei er möglicherweise weitere Informationen von Menschen anfordert oder Entscheidungen von Menschen treffen lässt.

In jedem Schritt des Ausführungsprozesses ist es wichtig, die 'Realität' aus der Umgebung zu erhalten. Agenten können an Kontrollpunkten oder bei Blockaden anhalten, um menschliches Feedback einzuholen. Aufgaben werden in der Regel nach ihrer Fertigstellung beendet, enthalten aber auch oft Stoppbedingungen.

Agenten können komplexe Aufgaben bewältigen, ihre Implementierung ist aber in der Regel einfach und besteht oft nur aus einem großen Sprachmodell, das Werkzeuge in einem Kreislauf in Abhängigkeit vom Feedback aus der Umgebung verwendet. Daher ist es wichtig, dass das Werkzeugset und seine Dokumentation klar und durchdacht sind.

Agenten eignen sich für offene Fragen, bei denen die Anzahl der erforderlichen Schritte schwer vorherzusagen ist und keine festen Pfade hartkodiert werden können. Die Autonomie der Agenten macht sie zu einer idealen Wahl für die Ausweitung von Aufgaben in einer vertrauenswürdigen Umgebung. Die Autonomie der Agenten bedeutet höhere Kosten und das Risiko der Fehlerakkumulation. Es wird empfohlen, umfangreiche Tests in einer Sandbox-Umgebung durchzuführen und geeignete Schutzmaßnahmen einzurichten.

Anwendungsbeispiele für Agenten:

  • Ein Code-Agent zur Lösung von SWE-Bench-Aufgaben, bei denen mehrere Dateien gemäß der Aufgabenbeschreibung bearbeitet werden müssen.
  • Die Funktion 'Computernutzung' von Anthropic, bei der Claude einen Computer zur Erledigung von Aufgaben verwendet.

Kombination und Anpassung

Diese Bausteine sind nicht präskriptiv und können von Entwicklern je nach Anwendungsfall geformt und kombiniert werden. Der Schlüssel zum Erfolg liegt in der Messung der Leistung und der iterativen Implementierung. Eine Erhöhung der Komplexität sollte nur dann in Betracht gezogen werden, wenn einfachere Lösungen nicht möglich sind. Der Erfolg im LLM-Bereich besteht nicht darin, das komplexeste System zu bauen, sondern ein System, das den Bedürfnissen entspricht. Beginnen Sie mit einfachen Prompts, optimieren Sie diese mit umfassenden Bewertungen und fügen Sie erst dann mehrstufige Agentensysteme hinzu, wenn einfachere Lösungen nicht möglich sind.

Bei der Bereitstellung von Agenten sind folgende Prinzipien zu beachten:

  • Das Design des Agenten sollte einfach gehalten werden.
  • Die Transparenz des Agenten sollte Priorität haben, wobei jeder geplante Schritt klar dargestellt werden sollte.
  • Die Mensch-Computer-Schnittstelle (ACI) sollte durch umfassende Werkzeugdokumentation und Tests sorgfältig gestaltet werden.