Was ist ein Agent?
- Es gibt verschiedene Definitionen von Agenten, sie lassen sich jedoch in zwei Kategorien einteilen:
- Workflows: LLMs und Tools werden über vordefinierte Codepfade koordiniert
- Agents: Das LLM steuert die Ausführung von Aufgaben und den Einsatz von Tools dynamisch
- Bei Anthropic werden beide als Agentic Systems klassifiziert, wobei es wichtige Unterschiede bei Flexibilität und Autonomie gibt
Wann sollte man Agents einsetzen?
- Wenn eine einfache Lösung möglich ist, ist es wichtig, die Komplexität zu minimieren
- Workflows: Nützlich für vorhersehbare Aufgaben und bieten Konsistenz und Stabilität
- Agents: Geeignet, wenn im großen Maßstab Flexibilität und modellzentrierte Entscheidungsfindung erforderlich sind
- In den meisten Fällen reicht es aus, einfach LLM-Aufrufe zu optimieren oder Kontextbeispiele zu nutzen
Leitfaden zur Nutzung von Frameworks
- Wichtige Frameworks:
- Vorteile von Frameworks:
- Vereinfachen LLM-Aufrufe, Tool-Definitionen und Aufrufketten
- Nachteile:
- Können zusätzliche Komplexität schaffen oder das Debugging erschweren
- Empfehlung: Direkt mit der LLM-API beginnen und auch bei Nutzung eines Frameworks den zugrunde liegenden Code verstehen
Komponenten eines Agentic Systems
Augmented LLM
- Merkmale: Verfügt zusätzlich über Retrieval-, Tool-Use- und Memory-Funktionen
- Implementierung:
- Kann mit Model Context Protocol in Tools von Drittanbietern integriert werden
- Bietet eine einfache und dokumentierte Schnittstelle
Wichtige Workflow-Muster
- Prompt Chaining
- Teilt Aufgaben in feste Teilschritte auf und verarbeitet sie nacheinander
- Anwendungsfälle:
- Marketingtexte erstellen und anschließend übersetzen
- Einen Dokumententwurf verfassen und danach prüfen
- Routing
- Klassifiziert Eingabedaten und leitet sie an die passende Aufgabe weiter
- Anwendungsfälle:
- Support-Anfragen klassifizieren (allgemeine Fragen, Rückerstattungsanfragen, technischer Support)
- Einfache Fragen an ein kleineres Modell, komplexe Fragen an ein leistungsfähigeres Modell routen
- Parallelisierung
- Trennt Aufgaben auf oder führt dieselbe Aufgabe mehrfach aus
- Anwendungsfälle:
- Mehrere Prompts für die Prüfung von Code-Sicherheitslücken verwenden
- Nutzereingaben aufteilen, um sie zu filtern und zu beantworten
- Orchestrator-Workers
- Ein zentrales LLM zerlegt die Aufgabe, weist sie Worker-LLMs zu und fasst die Ergebnisse zusammen
- Anwendungsfälle:
- Dateien in komplexen Coding-Aufgaben bearbeiten
- Aufgaben mit mehrfacher Informationsrecherche
- Evaluator-Optimizer
- Bewertet LLM-Antworten, gibt Feedback und verbessert sie iterativ
- Anwendungsfälle:
- Übersetzungsqualität bei literarischen Übersetzungen verbessern
- Aufgaben mit mehrfacher Suche und Analyse
Agents
- Agents planen Aufgaben, führen sie eigenständig aus und interagieren bei Bedarf mit Menschen
- Merkmale:
- Nutzen Tools, um aus der Umgebung „Wahrheit“ zu beziehen und den Fortschritt zu bewerten
- Prüfungen und Abbruchbedingungen können während der Aufgabe festgelegt werden
- Anwendungsfälle:
- Komplexe Coding-Agents
- Implementierungen, bei denen Claude Aufgaben auf einem Computer ausführt
Kombination von Mustern und Anpassung
- Die oben genannten Muster können je nach Situation angepasst und kombiniert werden
- Komplexität sollte nur dann hinzugefügt werden, wenn eine Verbesserung der Ergebnisse nachgewiesen ist
Zusammenfassung
- Erfolg im LLM-Bereich hängt nicht davon ab, das komplexeste System zu bauen, sondern das passende System für den jeweiligen Bedarf
- Man sollte mit einfachen Prompts beginnen, über Evaluation optimieren und mehrstufige Agentic Systems nur dann in Betracht ziehen, wenn einfache Lösungen nicht ausreichen
- Zentrale Prinzipien bei der Implementierung von Agents
- Einfachheit bewahren: Das Design der Agents so einfach wie möglich halten
- Transparenz priorisieren: Die Planungsschritte der Agents klar sichtbar machen
- Qualität der Agent-Computer-Interface (ACI) verbessern: Tools gründlich dokumentieren und testen
- Nutzung von Frameworks und Implementierungsstrategie
- Frameworks sind für die erste Implementierung nützlich, dennoch sollte auch erwogen werden, das System mit weniger Abstraktionsschichten und grundlegenden Bausteinen aufzubauen
- Wenn man diese Prinzipien befolgt, lassen sich leistungsfähige, verlässliche und wartbare Agents entwickeln
Kundenbeispiele: Einsatz von Agents in der Praxis
- A. Kundensupport
- Bietet durch natürliche Gesprächsführung und die Integration externer Daten wirksame Lösungen
- Vorteile:
- Kann anhand der erfolgreichen Lösungsquote gemessen werden
- Nutzungsbasierte Preismodelle können angewendet werden
- B. Coding-Agents
- Code-Lösungen können durch automatisierte Tests validiert werden
- Vorteile:
- Testergebnisse können als Feedback genutzt werden
- Der Problemraum ist klar und strukturiert
- C. Tool-Design und -Optimierung
- Wird unter Berücksichtigung der Art und Weise entworfen, wie LLMs Tools verwenden
- Empfohlene Methoden:
- Intuitive und prägnante Parameternamen verwenden
- Testen und iterative Verbesserung
- Beispiele und Randfälle in Tool-Definitionen aufnehmen
2 Kommentare
Es scheint, als wäre auf Low-Code etwas wie geringe Vertrautheit angewendet worden, aber ohne Datenschema und Versionsverwaltung wird sich keine Änderungsverfolgung umsetzen lassen.
Mit wenig Erfahrung wirkte es auf den ersten Blick wie das Kombinieren von Funktionen in der funktionalen Programmierung, aber als wäre es chaotisches Programmieren, bei dem man nicht weiß, was die I/O der Funktionen sein werden (Parameter, Rückgabetypen)..
Dabei kam mir ständig der Gedanke: Muss man das wirklich machen..? Muss man das wirklich so weit unterstützen..?
Bis jetzt kann ich noch nicht so richtig nachvollziehen, in welchen Bereichen ein agentisches System unbedingt nötig ist.