
Digitale Wissensbissen
Welche Technologie kann meinen Geschäftsprozessen auf die Sprünge helfen? Ist generative KI schon reif für den Unternehmenseinsatz? Wie kommt meine Applikation in die "Cloud" und was habe ich davon?
Diese und weitere Fragen am Schnittpunkt von Business und Tech beantworten wir im Podcast "Digitale Wissensbissen"!
Digitale Wissensbissen
Generative KI-Agenten: Ein Job, ein Bot
KI-Agenten, auch als Agentic AI bekannt, sind autonome Komponenten, die spezifische Aufgaben ohne menschliche Intervention ausführen. Modularität und Orchestrierung von Multiagentensystemen (MAS) ermöglichen komplexere und skalierbare Lösungen auf Basis von generativer KI. Die Verwendung von Agenten kann die Fehleranfälligkeit verringern und die Wartbarkeit verbessern.
Der Hype um Agentic AI mag zwar übertrieben sein, aber die zugrunde liegenden Konzepte und Frameworks wie Semantic Kernel bieten wertvolle Werkzeuge für die Praxis.
Hallo, nachdem wir das Thema KI jetzt schon von verschiedenen Perspektiven betrachtet haben und aus verschiedenen Winkeln beleuchtet haben, teilweise mit einer gewissen Skepsis, teilweise aber auch mit einem großen Enthusiasmus, was die Möglichkeiten betrifft, die Large Language Models in Zukunft bieten können und auch heute schon bieten, ist es Zeit, sich ein bisschen mit dem nächsten darauf aufbauenden Hype zu beschäftigen. Man liest, immer häufiger von sogenannter agentic AI, also KI-Agenten, als dem nächsten Schritt oder der nächsten Ausbaustufe von dem, was generative KI erreichen kann und dem, was wir mit generativer KI machen können und machen wollen. Ich denke, da wird so viel darüber geschrieben und so viel darüber geredet und auch wieder mit relativ wenig Substanz, dass es Sinn macht, sich das nochmal anzuschauen. Vielleicht kurz zu überlegen, was man eigentlich unter Agenten verstehen wollen würde und ob und inwiefern uns das wirklich weiterhelft bei unseren Zielen, die wir mit dem Einsatz von KI verfolgen. Nochmal zur Erinnerung, wir als NEOMO, beziehungsweise ich auch als Person, fokussiere sehr, sehr stark auf den Einsatz von KI zur Verbesserung, Automatisierung, Skalierung von Geschäftsprozessen. Also wir reden hier nicht von irgendwelchen einem beliebigen Chatbot oder irgendwelchen persönlichen Produktivitätsassistenten oder sowas ähnlichem, sondern wir reden davon, sich einen Geschäftsprozess vorzunehmen, der schon in Software abgebildet ist, mit hoher Wahrscheinlichkeit irgendeinen Workflow, der in einem Produkt vorhanden ist und den gezielt durch den Einsatz von KI zu optimieren. Da ist natürlich auch die Frage, wie spielt jetzt diese Agenten-Idee da mit rein? Ist das ein diametral, orthogonal, widersprüchlich oder hilft uns das, diese Ziele zu erreichen oder ist es eigentlich nur ein Name alter Weinen, neuen Schläuchen für Dinge, die es so eigentlich schon gibt. Vielleicht kurz zur Definition, was ist eigentlich ein Agent? In Software-Kontext sieht man Agenten normalerweise aus autonomen Systeme, die unabhängig bestimmte Ziele von der verfolgen und erreichen. Und eines der Kernkonzepte ist, dass diese Agenten autonom agieren, also ohne Intervention, ohne menschliche Überwachung oder menschliche Interaktion eine Aufgabe vollständig lösen. Im Kern kann Agent auch bedeuten, dass er das Tool proaktiv tätig wird, beziehungsweise aktiv tätig wird, muss man eher sagen. Also das ist nicht eines menschlichen Anstoßesbedarf, damit der Agent etwas ausführt. Bei Agentic AI kann man gleich sagen, steht dieser Aspekt des aktiven Handelns, beziehungsweise des proaktiven Handelns nicht im Vordergrund. Im Vordergrund steht eigentlich bei Agentic AI, dass man sagt, ein Agent, der ist ein Werkzeug, das einen Job gut erledigen kann. Chet Chippie T. in seiner Rohform ist kein Agent. Chet Chippie T. kann viele, viele Jobs erledigen, manche gut, manche schlecht, basiert aber immer darauf, dass ich als Mensch einen Anstoß gebe, diesen Job auszuführen und dass ich auch vorgebe, wie dieser Job erledigt werden kann. muss. Ich als Nutzer, muss man an der Stelle sagen. Wenn ich jetzt versuchen würde, einen Agent zu bauen, könnte ich das mithilfe von JetGPT natürlich tun, würde ich vielleicht auch. Gerade für deutschsprachige Anwendungen sind die GPT-Modelle immer noch eigentlich die leistungsfähigsten. Aber jetzt müsste ich etwas erstellen, was tatsächlich alleine einen bestimmten Task ausführt. Das heißt, ich würde würde eigentlich die Mächtigkeit von Chat-GPT reduzieren, um einen Agenten zu erstellen, weil ein Agent definitionsgemäß für einen Job optimiert ist. Meistens landet man dann für diesen Agenten bei einer Kombination aus einem Large-Language-Model, sagen wir in diesem Fall GPT, einem fixen Set an Instruktionen, also quasi einem programmatisch vorgegebenen Prompt, und einer Planungsanweisung und oft auch noch einer Datenquelle mit existierendem Wissen in vielen Fällen auch einer Speicherkomponente, also einer Komponente, die es diesem Agenten erlaubt, vergangene Ausführungen abzuspeichern und für zukünftige Ausführungen heranzuziehen, um die zum Beispiel besser oder erneut zu effektiver zu machen. Gut, wie kann man sich das konkret jetzt vorstellen? Wenn ich so einen simplen Agenten bauen würde, den kann ich natürlich auch testweise in ChatGPT bauen, mit diesen GPTs, die man da erstellen kann. Ein Agent könnte zum Beispiel ein Tool sein, das ein Large Language Model verwendet, um eine Reisekostenabrechnung, das wir der Input, mit den Reisekostenrichtlinien einer Firma zu vergleichen und Probleme zu markieren. Das wäre ein Agent, weil es ist zwar ein Large Language Model, aber wir haben es so konfiguriert und aufgestellt, dass es für diesen spezifischen Job funktioniert und eigentlich nichts anderes mehr tut. Das heißt, ich habe mein Large Language Model, ich habe mein GPT, ich habe Prompt und Instruktionen für diesen spezifischen Zweck, das wäre zum sowas wie vergleiche die eingegebene Reisekostenabrechnung lineitem für lineitem mit den Reisekostenrichtlinien der Firma XYZ und markiere Probleme in einem CSV-Format und gebe die aus. Das könnte so eine Agenteninstruktion sein. Und dann hätte ich dieses Ergebnis. Datenquelle mit extremem Wissen, das wäre in dem Fall die Reisekostenrichtlinie, die würde dort angebunden, zum Beispiel als Retrieval Augmented Generation, also mithilfe von der Suche letzten Endes, oder sie würde als Volldokument dem Agenten zur Verfügung gestellt Der Agent würde nur noch diesen einen Job machen, nämlich den Input entgegennehmen, eine Reisekostenabrechnung im PDF-Format und den Output erzeugen, Verstöße gegen die Reisekostenrichtlinien in dieser Reisekostenabrechnung im CSV-Format. So, jetzt haben wir ein Agent gebaut. Das heißt, wir haben ein allgemeines Model genutzt. ein Large Language Model, das ganz, ganz viel könnte und haben es mithilfe von spezifischen Instruktionen und einer Datenquelle mit existierendem Wissen zu einem Agenten gemacht. Eigentlich ist das wirklich nur ein Name, vielleicht auch ein sehr schöner, konsistenter Name, vielleicht ist das eine gute Bezeichnung dafür, aber es ist ein Name für etwas, was schon sattsam und überall gemacht wird. Also wenn wir Software bauen, in der wir Geschäftsprozesse zu automatisieren versuchen, dann machen wir natürlich genau das. Wir bauen Komponenten, die Large Language Models verwenden, aber für einen spezifischen Zweck, die nicht diese Large Language Models dem Endnutzer zum Chatten zur Verfügung stellen, sondern die mit programmatischen Prompts einen bestimmten Zweck verfolgen. Also in dem Sinne ist jedes Retrieval Augmentation Modell, Generation System potenziell auch ein Agent, weil es auf einen Nutzerinput immer nur in einer bestimmten Art und Weise reagiert, nämlich indem es in einem existierten Datenbestand was nachschaut. So, jetzt haben wir erstmal nur die Definition von Agent und spezifisch von KI oder generativer KI-Agent ein bisschen näher gekommen. verfolgt. Da haben wir erst mal tatsächlich nur in Namensschildern etwas rangeklebt, was es eigentlich schon gibt. oder das, wo es eigentlich spannend wird, ist die Frage, was passiert, wenn es mehrere Agenten gibt, was nützt uns das? Gehen wir mal von dem Problem aus. Es gibt grundsätzlich, wenn man einen einzelnen Agenten implementiert, ist oft der Prompt, also die Instruktionen, ein limitierender Faktor. Schauen wir uns diese Reisekosten an. Richtlinien-Geschichte an. Da wäre der Prompt relativ simpel. Man würde in irgendeiner sehr guten und sehr konzisen Art und Weise die Aufgabe formulieren, nimmt dieses PDF, diese Reisekostenabrechnung und vergleicht sie mit den Reisekostenrichtlinien, die wir via Retrieval Augmented Generation oder in welcher Form auch immer zur Verfügung stellen. Als nächsten Schritt möchte man die Ausgabe in einem bestimmten Format Format haben als CSV-Datei, zum Beispiel, damit man das programmatisch weiterverarbeiten kann. Weil eine reine Textausgabe für den Endnutzer vielleicht funktionieren würde, aber nicht für weitere Prozessschritte. Vielleicht will man anschließend noch eine bestimmte Sortierung der Probleme vorgeben, also die schwerwiegendsten Verstöße gegen die Reisekostenrichtlinie bitte zuerst erwähnen. Vielleicht will man noch auf Probleme in der Eingabe angemessen reagieren, zum Beispiel wenn jemand etwas einbricht. reicht oder einspeist, was gar keine Spesenabrechnung ist. Und irgendwann kommt man zu dem Punkt, wo der Prompt relativ kompliziert wird und damit sowohl schwer zu warten ist, als auch anfällig dafür, dass das Model Teile vom Prompt ignoriert. Das ist eine Erfahrung, die wir immer wieder machen. Das ist eine Erfahrung, die man auch mit JGPT machen kann. je länger und komplexer der Prompt wird, also die Anweisung, die ich so im Model-Gib gebe, desto wahrscheinlicher ist es, dass Teile der Anweisung ignoriert werden. Jetzt kann man das lösen, haben wir in der Vergangenheit auch oft so gemacht, indem man mehr Software, mehr Prozess außen rum baut. Also man kann versuchen zu sagen, ich habe erst mal einen Schritt, der guckt, ist das eine Reisekostenabbrechung, das benutzt noch gar nicht das Large Language Models und ich habe ein Stück Software, das sieht das wie eine Reisekostenabrechnung aus. Dann habe ich vielleicht einen weiteren Schritt, der sich um die Aufbereitung für das Large Language Model kümmert. Wenn das Large Language Model reagiert hat und diese Liste mit Problemen erstellt hat, habe ich vielleicht einen weiteren Schritt, der sie nach Priorität sortiert und so weiter. Aber mein Ziel ist ja vielleicht, möglichst viel davon an so ein Large Language Model zu delegieren, weil es im Umgang mit dieser Art Problemen nicht normalerweise recht viel auch kann und leisten kann. Das heißt, da wäre ein Reflex als Programmierer vielleicht, dass ich dann eben doch versuche, das alles in den Prompt, alles in die Instruktionen zu stecken. Wie gesagt, das führt schnell dazu, dass Teile des Prompts ignoriert werden. Wir haben das gesehen bei Experimenten zum Thema leichte Sprache. Leichte Sprache ist ja für auf manche Firmen. ab diesem Jahr eine Verpflichtung. Das heißt, manche Firmen sind verpflichtet, ihre Webseiteninhalte zumindest teilweise in leichter Sprache zur Verfügung zu stellen. Und leichte Sprache ist eine Variante des Deutschen, die bestimmten Regeln folgt, um sie für sowohl nicht Muttersprachler als auch vielleicht für Menschen mit Behinderung einfacher verständlich zu machen. Da gibt es dutzende Regeln, zum Beispiel man darf, zusammengesetzte Wörter dürfen nur mit Bindestricht geschrieben werden, damit man die Teile besser identifizieren kann. Zum Beispiel, es dürfen eigentlich nur Hauptsätze verwendet werden. Zum Beispiel, man sollte eigentlich alle Zahlwörter ersetzen durch Mengenbegriffe wie viel, wenige und so weiter. Wie gesagt, es gibt Dutzende Regeln, die man da anwenden muss und in dem ersten Versuch haben wir alle diese Regeln Regeln einfach in die Instruktion gepackt. Das heißt, wir haben gesagt, liebes Large-Language-Model, übersetz mal folgenden Text in leichte Sprache, indem du diese Regeln auf den Text anwendest. Und das war eindeutig ein Fall davon, wo der Prompt oder die Instruktion so komplex geworden ist, dass das Large-Language-Model immer nur ein paar von diesen Regeln angewendet hat und die anderen ignoriert hat. Das heißt, man konnte das umorganisieren, um andere Regeln zur Anwendung zu bringen, also indem man die Regeln umsortiert hat letzten Endes, aber dann wurden halt wieder die die letzten oder die mittleren Regeln einfach ignoriert. Das heißt, es gab keine Möglichkeit, das über den Prompt wirklich zu handhaben. Das haben wir damals gelöst, indem wir Fine-Tuning gemacht haben, das heißt ein eigenes Model erstellt für diesen Zweck. indem wir ein Large-Language-Model nachtrainiert haben mit einem spezifischen Trainingssatz zum Thema leichte Sprache. Das ist natürlich potenziell sehr aufwendig und erzeugt am Ende auch einen Agenten, quasi ein par excellence, ein Agenten, weil am Ende kommt ein Model raus, was wirklich nur noch einen Job erfüllen kann, nämlich aus nicht-leichte Sprache in leichte Sprache übersetzen. Das wäre eine Single-Agent-Model. Lösung für das Problem. Aber es gibt auch eine Lösung für das Problem, die nur mit Prompts arbeitet, nämlich indem ich jede Regel oder immer mehrere verwandte Regeln auf den Text anwende und die Ausgabe davon wiederum in einen neuen Prozessschritt füttere, der wieder die nächsten Regeln anwendet. Das heißt, ich habe quasi mehrere Schritte, jeder Schritt benutze ich nutzt ein Large Language Model, aber immer mit einem unterschiedlichen Prompt, sodass jeder Schritt nur ein Subset dieser Regeln anwendet und damit die Wahrscheinlichkeit erhöht, dass alle Instruktionen in diesem Prompt tatsächlich beachtet werden. Also eine Sequenz von Agenten und damit hat man quasi schon das erste Multi-Agent-System geschaffen. Und das ist eigentlich, wo es spannend wird, wie es passiert und was für Möglichkeiten ergeben wird. sich, wenn mehrere Agenten miteinander interagieren. In dem Fall ist es eine ganz einfache Interaktion natürlich. Der erste Agent gibt es im zweiten, der zweite gibt es im dritten, der dritte gibt es im vierten, also eine reine Sequenz, wo peu à peu, Schritt für Schritt, diese Regeln angewendet werden. In dem Fall hat man von dem Multi-Agenten-System gegenüber dem Feinchen-Tuning eines einzelnen Agenten eigentlich keinen Vorteil. Man hat eigentlich eher nur Nachteile. Es dauert länger. weil man mehrere Prozessierungsschritte machen muss. Es kostet mehr, weil man die gleichen Menge an Tokens immer wieder an Large Language Models schickt und damit jedes Mal bezahlt. Und es hat eine höhere Komplexität, weil ich jetzt verwalten muss, welche Agent ist für welche Regeln zuständig. Habe ich das auch wirklich alles berücksichtigt und so weiter und so fort. Also kein gutes Beispiel für Multi-Agent-Systeme, aber definitiv ein Problem, dass man mit einem Multi-Agent-System zusammenarbeitet. theoretisch lösen könnte. Bitte macht das nicht, nehmt Fine-Tuning, das ist die viel bessere Lösung. Aber es illustriert, es ist möglich, die Komplexität der Anwendung zu erhöhen, indem man relativ simple KI-Agenten kombiniert. Weil das ist genau, was wir hier gemacht haben. Wir haben diese Komplexität der leichten Sprache überhaupt erst möglich gemacht, indem wir Agenten kombiniert haben, weil es eben mit einem einzelnen Agenten ohne Fine-Tuning nicht ging. Ja, was bedeutet das jetzt? Also, was immer dazu kommt, ist, wir haben autonome Agenten, die auch quasi einzeln agieren können, wir haben eine Interaktion zwischen diesen Agenten und wir haben eine Orchestrierungsstrategie. Das existiert eigentlich immer. Das ist die Definition quasi von einem Multiagentensystem. Interessant sind natürlich alle Ebenen, die wir hier haben. Also wir haben die Autonomieanforderungen. Die Agenten sollten autonom agieren. Das heißt, jeder Agent sollte einen Job isoliert gut machen können, programmatisch angestoßen, also über einen API-Call oder was Ähnliches. Und jetzt sollte aber auch eine Interaktion Möglichkeit sein. Das heißt, jeder Agent sollte autonom agieren. Output erzeugen, der geeignet ist, von einem weiteren Agenten verarbeitet zu werden. Auch das muss man natürlich sicherstellen. Ein Agent, der natürliche Sprache unstrukturiert ausgibt, wird in einem Multiagentensystem, ja, also kann natürlich funktionieren, aber wird vielleicht nicht optimal sein. Das ist der Kern des Ganzen. Multi-Agenten-Systems ist eigentlich die Orchestrierungsstrategie. In dem Beispiel mit der leichten Sprache hatten wir im Prinzip nur eine Sequenz. Also wir haben einen Agenten nach dem anderen aufgerufen und angewendet und dadurch kam etwas raus, was am Ende komplexer ist oder eine komplexere Aufgabe löst, als das ein einzelner Agent könnte. Es gibt natürlich auch andere Orchestrierungsstrategien. Vorstellbar ist zum Beispiel die eine Hierarchie von Agenten, die Verzweigungen realisieren. Wo ein Agent sagt, ist das A oder B, wenn es B ist, dann gehen wir in diesen Zweig des Workflows und benutzen diese Agenten. Wenn es A ist, benutzen wir einen ganz anderen Agenten. Also Verzweigungen, Hierarchien von Agenten, die sich quasi durch Entscheidungen hindurch hangeln, eigenständig, das ist ein sehr nützliches und etwas, was sehr mächtig ist, womit man sehr viele Probleme lösen kann. Dann gibt es Voting-Strategien. Also ich habe mehrere Agenten, die sehr ähnliche Dinge tun und am Ende schaue ich auf die verschiedenen Lösungen. Ich sage mal, ich habe drei verschiedene Agenten, die auf verschiedenen Wegen ein Problem zu lösen, das gleiche Problem zu lösen versuchen. Dann kann ich am Ende schauen, mit welchen einem vierten Agenten, was ist denn die beste dieser Lösungen. Also ich mache ein Voting. Es gibt die Möglichkeit in der Orchestrierung Korrekturschleifen einzubinden, zum Beispiel ich könnte ein GPT-Model bitten, dass es mir eine bestimmte Problemlösung erstellt und dann könnte ich ein Anthropic Claude Model bitten, dass es mir diese Lösung bewertet und wenn das Cloud-Model sagt, nee, die Lösung finde ich nicht gut, dann könnte man zurück ans GPT, an den GPT-Agenten gehen und sagen, erzeugen wir mal noch eine andere Lösung mit dem Feedback, das die Cloud-Implementierung gegeben hat. Hört sich jetzt komplex an, ist aber eigentlich wirklich ganz einfach. Im Prinzip ist es ein Review-Prozess, wie man den auch zwischen Menschen hätte. Der eine erstellt irgendein Dokument, der andere schaut es sich an, weist auf Probleme hin und daraufhin erstellt der andere wieder eine verbesserte Version. Genauso würde man auch zwei Agenten mit zwei unterschiedlichen Models potenziell gegeneinander oder miteinander arbeiten lassen, indem das eine Modell das andere kritisiert. Man merkt schon mit dieser Interaktion von Agenten, das kann ich jetzt Dinge realisieren, die ich normalerweise irgendwie in Software gießen müsste, die ich jetzt aber quasi über Agentenorchestrierung lösen kann. Was bedeutet das? Es bedeutet, dass ich natürlich eine höhere Modularität habe. Jeder dieser Agenten sollte für sich genommen relativ simple Aufgaben lösen, aber natürlich in der Interaktion viel komplexere Problemlösungsstrategien implementieren können, als ich das mit einer einfachen Software könnte. Diese Modularität hat natürlich zur Folge, dass ich eigentlich auch bessere Pflegbarkeit und bessere Upgrade-Fähigkeit habe von diesen Dingen. Ich kann den Agenten immer einzeln betrachten, kann sagen, okay, ich mache jetzt diesen Teil des Systems besser, indem ich dem ersten Agenten, der Aufgabe A erledigt, mehr Informationen, bessere Informationen gebe oder einen besseren Prompt oder indem ich das Feedback von vergangenen Aufgaben benutze, um ihm mehr Hinweise zu geben, wie ein guter Output aussehen würde. Und das ist viel, viel einfacher, das für einen einzelnen Agenten zu tun, als es für ein komplexes KI-System insgesamt zu tun. Man erhofft sich auch immer natürlich eine reduzierte Intervention, also weniger Notwendigkeit dafür, dass ein Mensch eingreift in diese Systeme, weil die Menschen Agenten diese einfachen Aufgaben mit höherer Wahrscheinlichkeit korrekt ausführen können. Gleichzeitig erschafft man aber auch eine Struktur, wo einzelne Agenten natürlich auch Rückfragen stellen können. Also man könnte Menschen auch an definierteren Punkten involvieren, indem ich sage, oh, der Agent, zum Beispiel, indem ich sage, dass der Output von einem Agenten dem Agenten B nicht gefällt, der Agent A aber keine bessere Lösung findet und dann der Agent B entscheidet, okay, dann nehme ich jetzt einen menschlichen Nutzen mit rein. Also auch solche Strukturen sind vorstellbar. Insgesamt sollte aber in so einem agentic AI-Approach eigentlich weniger menschliche Interaktionen, weniger Korrekturen notwendig sein. Damit kann ich auch eben deutlich komplexere Probleme lösen. Das heißt, insgesamt wird das Ding skalierbarer als aus der Software-Perspektive. Und das ist besonders auch durch diese Promptentlastung, von der ich jetzt schon mehrfach gesprochen habe. Das heißt, jeder Agent hat für sich genommen einen relativ, ich sage jetzt absichtlich, relativ simplen Prompt, relativ eindeutige Instruktionen und damit erhöhe ich die Promptentlastung. Wahrscheinlichkeit, dass das Ergebnis das gewünschte ist. Was man dabei natürlich im Hinterkopf behalten sollte, auch wenn sich die Wahrscheinlichkeit erhöht, dass jeder einzelne Agent korrekt antwortet, vielleicht dadurch, dass der Prompt einfacher wird und ich diesen Agenten spezifisch auf diesen einzelnen einfachen Task tunen kann, erhöht sich in einem Multi-Agenten-System natürlich die Fehlerwahrscheinlichkeit in Summe dadurch, dass Fehler der Agenten sich natürlich durch das System propagieren. Also wenn Agent 1 einen Fehler macht in der Prozesskette, dann wird dieser Fehler natürlich durch alle weiteren Agenten durchgetragen, außer es gibt eben so eine Korrekturschleife innen drin. Das heißt, ein bisschen kann es sein, dass sich der Effekt der geringeren Fehlerwahrscheinlichkeit pro Agent weghebt mit dem Effekt dieses Fehler-Compoundings, wenn man so will, weil quasi Fehler durch das System durchgereicht und verstärkt werden. Erfahrungsgemäß ist es aber schon so, dass einfachere Agenten so viel korrekter arbeiten, dass es sich insgesamt lohnt und insgesamt die Fehleranfälligkeit des Systems sinkt durch den agentischen Ansatz und nicht steigt. Aber man sollte das im Hinterkopf behalten, wenn ich einen Agenten drin habe, der sehr unzuverlässig arbeitet, weil ich eben keinen guten Prompt gefunden habe für das Problem oder weil ein Large Language Model vielleicht für diese Lösung einfach nicht sinnvoll ist. das gar nicht gut lösen kann. Mathematik ist nach wie vor so ein Thema, wo man sehr aufpassen muss. Dann wird dieser Fehler natürlich das System propagiert und die folgenden Prozessschritte, die auch Agenten sind, gehen davon aus, dass der zugelieferte Input natürlich korrekt war. Und wenn die dann auch noch Fehler obendrauf setzen, wird das natürlich immer falscher. Gut, wie kann das jetzt uns wirklich weiterhelfen. Also wir haben gesagt, es verringert die Komplexität, es erhöht die Modularität. Davon hat es erstmal primär der Entwickler was. Es macht dadurch aber insgesamt komplexere Systeme möglich. Davon profitiert der Anwender. Es hat ein höheres Potenzial für adaptive und sich entwickelnde Systeme, denn es ist Der Anspruch an Machine Learning ist ja immer, dass es sich anpasst an wechselnde Situationen. Bei Large-Language-Models ist das gar nicht so leicht, weil ich klassische Machine-Learning-Improvement-Schleifen da eigentlich nur relativ schwierig einbauen kann. Bei agentischen Systemen ist das wieder ein bisschen leichter, weil ich diese Agenten eben einzeln anschauen kann und sagen kann, gibt es für diesen Agenten a eine Möglichkeit, dass ich ein Reinforcement habe, dass ich eine Verbesserungsschleife einbauen einbaue. Und das ist im Allgemeinen einfacher als für ein Gesamtsystem. Das heißt, es gibt hier ein Potenzial, wenn ich die Agentenstruktur geschickt mache, dass ich auch adaptive und sich entwickelnde Systeme erstellen kann, was ich eben in einem starren Programmier-Framework nicht in dem Maße könnte. Was würde das konkret bedeuten? Das bleibt vielleicht wirklich auch jetzt momentan noch ein bisschen abstrakt und es bleibt in vielen Artikeln, die man so online liest, auch abstrakt. Wenn ich mir jetzt eine Retail-Interaktion anschaue, das heißt ein Kunde will online etwas kaufen, zum Beispiel ein Buch, dann hat der Kunde da verschiedene Schritte, die er durchlaufen muss und Teile dieser Schritte sind vielleicht automatisierbar, Teile dieser Schritte sind vielleicht nicht so gut automatisierbar. Und jetzt könnte ich natürlich sagen, ich mache meinen Chat-Interface und überlasse das alles Chat-GPT und dann schauen wir, was hinten rauskommt. Das wird normalerweise nicht zum Erfolg führen, weil Chat-GPT einen begrenzten Zugang hat zu aktuellem Wissen, einen begrenzten Zugang hat natürlich, also gar keinen Zugang hat in dem Sinne zu dem wahren Bestand, jetzt mal für sich genommen. Und weil auch die Führung dieser Konversation dann nicht Nutzer obliegt. Der Nutzer muss sagen, was er will und was er vom Modell erwartet und Nutzer sind da notorischerweise gar nicht mal so wahnsinnig gut drin. Aber wenn ich diesen Vorgang als Geschäftsprozess betrachte, dann hat der normalerweise relativ klar definierte Schritte. Wenn ich auf eine Seite komme, die mir Bücher verkaufen will und ich habe noch keine klare Vorstellung davon, was ich eigentlich kaufen möchte. Dann habe ich als erstes mal so eine Informationsphase. Da könnte ich natürlich einerseits browsen, also ich suche oder ich klicke auf Kategorien und gucke mir die Bücher an oder aber ich könnte mit einem Agenten interagieren, der über zum Beispiel einen Mechanismus wie Function Calling, der in GPT auch schon eingebaut ist, Zugriff hat auf meine bisherigen Bestellungen und der ist schon mal proaktiv, wenn ich auf die Webseite komme, sagt, hallo Johannes, schön, dass du wieder da bist. Wenn du neues Lesematerial suchst, habe ich dir auf Basis deiner Vorlieben schon mal x, y und z rausgesucht. Dann könnte ich erst mal nur mit diesem Agentenschritt, mit diesem Agenten interagieren und sagen, ja, das erste interessiert mich, das zweite finde ich nicht so toll, aber grundsätzlich hätte ich gerne vielleicht auch was, was aus dem Genre XYZ. Dann würde dieser Agent quasi meine Vorlieben repräsentieren in maschinenlesbarer Form und würde die vielleicht einem zweiten Agenten übergeben, der Zugriff hat auf allgemeines Kaufverhalten in diesem Store und deswegen über so eine Art Collaborative Filtering mir eine Liste von Titeln erstellen kann, die wahrscheinlich zu meinen Interessen passen, die sowohl das umfassen, was ich ursprünglich wollte, als auch das, was zu dem passt, was ich schon bestellt habe, als auch Sachen, die zu Dingen passen oder Sachen, die von Menschen bestellt wurden, die meinen Vorlieben ähnlich sind, die meinem Profil ähnlich sind. Das könnte ein zweiter Agent übernehmen, diese Collaborative Filtering-Geschichte und daraus eine Liste von Titeln und Optionen einfach darzustellen. Natürlich ist wieder eine Nutzerinteraktion. Ich kann das natürlich nicht einfach blind bestellen, aber der Agent könnte mir diese Nutzer-, diese Liste präsentieren und sagen, hier, das sind die fünf Titel, die ich gut für dich fände. Und dann kann ich im Prinzip sagen, okay, ich hätte gern die zwei. Normalerweise müsste ich jetzt durch den immer gleichen Bestellprozessen durchgehen. Ich könnte aber auch das natürlich mit dem KI-Agenten lösen und sagen, ich habe einen weiteren Spezialisierer, Agenten, der die Liste der Bestellung entgegen nimmt, der meine Zahldaten schon aus meinem Profil sich holen kann und meine Adresse und der mir quasi schon die fertig zusammengeklickte Bestellung präsentiert und sagt hier für 25 Euro inklusive Versandkosten würde ich dir das an folgende Adresse schicken und würde das über deine gewohnte Kreditkarte bezahlen, wo im Prinzip ich dann nur noch ja sagen müsste. Nachdem diese Bestellung durchgelaufen ist und ich meine Bücher erhalten habe, könnte durchaus auch noch ein weiterer Agent im Hintergrund agieren, der sagt, okay, nach einer gewissen Anzahl von Tagen oder nach was auch immer für einem Regelsatz, schreibe ich mal proaktiv, also das wäre wirklich sehr agentisch, eine personalisierte E-Mail an den Johannes und frage ihn, wie ihm das Buch gefallen hat und bitte ihn doch vielleicht ein bisschen Review dazu hinterlassen. Und wenn er das tut, dann habe ich einen Agenten, der den Review liest und vielleicht auch entsprechend Feedback an den Kundenservice gibt, auf Basis von dem, was da drinsteht. Alle diese Dinge sind möglich, weil es handelt sich ja um Textinformationen, mit denen Large Language Models sehr gut zurechtkommen. Aber es ist, wenn man das als Agentensystem betrachtet, natürlich viel greifbarer und viel definierbarer, wie ich diese Komplexität abbilden könnte mit so einzelnen kleinen Tools, als wenn ich jetzt versuche, diesen Gesamtprozess auf einmal zu erfassen und in einem Chat-Interface oder sowas zu verewigen. Das ist auch was, was mich an vielen Systemen stört, an vielen, was heutzutage gemacht wird mit mit KI oder besonders mit generativer KI. Nur weil Chat-GPT dieses offene Chat-Interface etabliert hat als Interaktionsmechanismus, als UX für KI, heißt das nicht, dass das die beste UX für KI ist, im Gegenteil. Ich würde sagen, in den meisten Fällen ist das eine ziemlich schlechte UX, weil eine natürliche Sprache zu erzeugen, schriftlich, ist aufwendig für Menschen, viel aufwendiger als eine Checkbox zu anzuklicken, wie in meiner Buchliste zum Beispiel, die mir meine Agent präsentiert. Und es ist natürlich auch sehr unpräzise und offen und kann dazu führen, dass jemand meinen Buchberatungspot benutzt, um sich allgemeine Auskünfte aus Wikipedia-Artikeln zu ziehen auf meine Kosten oder sowas ähnliches. Wenn ich jetzt diese fokussierten Agenten habe, die durch ihre Instruktions-Set gar nicht missbraucht werden können, weil der Nutzer letzten Endes nicht nur definierte Interaktion mit dem Agenten haben kann und nicht diese offene Chat-Interaktion, habe ich natürlich da viel mehr Möglichkeiten, gute UX zu bauen, aber auch den Nutzer einzuschränken in dem, was er mit meinen zum Teil recht teuren Large-Language-Models anstellen kann. In all diesen Systemen stellen sich natürlich die Fragen, die wir insgesamt bei KI immer wieder haben, was ist, wenn ich jetzt bei so einem Buch-Retail-System, wo ich mir Bestätigung abhole für Bestellungen, ist das natürlich nicht so ein Problem, aber bei anderen Systemen ist immer die Frage, wer ist denn jetzt verantwortlich für den Output? Also wenn ich ein Multi-Agent-System habe, jeder Agent kann Fehler machen. Am Ende des Tages ist der Nutzer nur noch ganz peripher involviert gewesen. Ist der Nutzer noch verantwortlich für das, was passiert? Das war's für Eine Frage, der wir uns irgendwann stellen müssen, wie ist Accountability, Verantwortlichkeit zu sehen im Zusammenhang mit generativer KI, die immer eigenständiger bestimmte Teilaufgaben übernimmt? Ich denke, eine der Grundvoraussetzungen dafür, dass wir das Problem überhaupt lösen können, ist eine wahnsinnig hohe Transparenz. Also gerade in Agentensystemen, wo verschiedene Modelle mit verschiedenen Instruktionen zusammenspielen, muss ich sehr, sehr deutlich machen, zumindest bei Bedarf auf Anfrage, was ist da eigentlich im Hintergrund passiert. Das darf nicht als Blackbox operieren, sondern ich muss definitiv die Möglichkeit haben, das System zu fragen, ok, worauf basiert denn eigentlich dieser Output, was für Entscheidungen hast du getroffen, sodass ich nachprüfen kann, ob ich bestimmte Einzelschritte falsch gemacht habe. um zu einem problematischen Ergebnis zu führen oder ob der ganze Ansatz vielleicht in seiner Interaktion für das Problem zuständig war. Und dann kann ich natürlich auch reingehen und einzelne Verbesserungen einspielen. Dazu muss aber, wie gesagt, irgendjemand die Verantwortung übernehmen, das System bei Problemen zu verbessern. Genauso muss ich sicher auch robuste ethische Rahmenbedingungen vorgeben für verschiedene Agenten. haben wir es ein bisschen leichter, weil es wäre sehr schwierig zu sagen, ich habe ein ganz offenes Chat-System, versuche dem aber irgendwelche ethischen Richtlinien an die Hand zu geben. Das sehen wir ja immer wieder bei jedem neuen Model im Prinzip, das herausgegeben wird von Anthropic oder von Mistral oder von OpenAI, dass sie immer hackable sind in einer gewissen Weise. Also, dass sie immer dazu gebracht werden können unethischen oder nicht gewollten Output zu erzeugen oder auch sensible Informationen preiszugeben. Es gibt immer eine Möglichkeit, um diese Rahmenbedingungen drumherum zu arbeiten. Für einen Agenten, der so eine kleine definierte Aufgabe hat mit einer nicht offenen Interaktion mit dem Nutzer ist das natürlich viel schwieriger. einfacher, diese Rahmenbedingungen vorzugeben und zu definieren, was der wirklich genau machen darf. Auch das wird durch diese Zerlegung des Problems in Einzelagenten wird auch dieses Problem individuell einfacher. Gut, was kann man jetzt zusammenfassend sagen zu diesem ganzen Agenten-Hype? Der Hype ist Sicher nicht. angemessen. Wie Hypes eigentlich nie. Also die Aussage, Agentic AI ändert alles, das ist ja so mein Lieblingssatz. X ändert alles. Lese ich jeden Tag 20 mal, X ist immer unterschiedlich. Agentic AI wird sicher nicht alles Agentic AI ist auch oft nur alter Wein in neuen neuen Schläuchen, neuer Name für etwas, was schon existiert. Ich kann mein Retrivial Augmented Generation System auch Agent nennen, wenn mir das besser gefällt. Aber gerade der Gedanke der Modularität und der Vereinfachung der einzelnen Schritte, der Vereinfachung dieser einzelnen Interaktion mit Large Language Models ist für mich ein sehr, sehr wichtiger. Und einer, der auch, wenn man nach diesem Prinzip arbeitet, die Anwendung notwendigerweise besser macht, qualitativ hochwertiger und wartbarer. Durch das Zusammenspiel mit Multiagenten, also durch die Orchestrierung von verschiedenen Agenten, kann ich deutlich leistungsfähigere Systeme bauen, die deutlich komplexere Probleme qualitativ hochwertig gelöst bekommen. Auch das ist sehr, sehr, sehr, sehr schön. Das ist auch etwas, was was quasi neue Möglichkeiten der Interaktion ermöglicht. Dadurch, dass ich eben mein System in diesen Modulen denke, kann ich jedem Modul auch wieder Interaktionsschnittstellen mit Menschen geben und dadurch einen viel, viel integrativeren und komplexeren Workflow bauen. Und last but not least muss man auch sagen, dadurch, dass wir dieses Label herangeschrieben haben, Agentica AI und finding multi-agent Systems, MRS ist auch so ein Stichwort, das man kennen sollte, haben sich natürlich auch jetzt schnell schöne Frameworks entwickelt, also Programmierframeworks, die dafür sorgen, dass das auch relativ sauber programmierbar wird und dadurch auch für relativ unbedarfte Entwickler, Möglichkeit diese Komplexität zu beherrschen. Ich möchte jetzt eigentlich kein Multi-Agent-System manuell coden, das ist sicher keine gute Idee, aber wenn ich so ein Framework einsetze, wie zum Beispiel Semantic Kernel, ist es relativ einfach, straightforward und funktioniert in relativ klar vorgegebenen Bedingungen, die es mir ermöglichen, das schnell zu machen und eben auch mit relativ geringen Vorkenntnissen zu machen. Schluss noch eine eigene Sache. Wenn ihr euch grundsätzlich für diese Themen interessiert, wie kann man generative KI sinnvoll einsetzen? Wie interagiert das mit Suchtechnologie? Was wird sich verändern? in klassischen Anwendungen und ähnliche Informationen und wirklich einen Blick aus der Praxis wertschätzt, dann abonniert doch diesen Podcast. Wir bei Neomo setzen genau diese Anwendungen um. Wir bilden Leute aus, sodass sie diese Anwendungen umsetzen können und deswegen reden wir eigentlich nie auf dieser Hype-Ebene über diese Technologien, sondern wirklich auf der Ebene, was kann man jetzt damit machen, wie kann das konkret funktionieren. Geschäftsprozesse voranbringen oder existierende Software deutlich besser machen. Also bitte abonnieren, dann verpasst ihr keine Folge und vielleicht auch mal auf neomo.com vorbeischauen, da gibt es weitere Infos zu dem, was wir machen und dort kann man auch unseren Newsletter zum Beispiel abonnieren, eine weitere Möglichkeit, sich ein bisschen aktuell zu informieren über das, was passiert im Bereich künstliche Intelligenz im Bereich. weitesten Sinne. Bis zum nächsten Mal.