KI-Modelle und Plattformen
AutoGen: Powering Next Generation Large Language Model Applications

Large Language Models (LLMs) sind derzeit eines der meist diskutierten Themen im Mainstream-KI-Bereich. Entwickler auf der ganzen Welt erkunden das Potenzial von LLMs. Diese Modelle sind KI-Algorithmen, die Deep-Learning-Techniken und enorme Mengen an Trainingsdaten nutzen, um eine breite Palette von Inhalten zu verstehen, zusammenzufassen, vorherzusagen und zu generieren, einschließlich Text, Audio, Bildern, Videos und mehr.
Große Sprachmodelle sind komplexe KI-Algorithmen. Die Entwicklung eines solchen Modells ist eine aufwändige Aufgabe, und die Konstruktion einer Anwendung, die die Fähigkeiten eines LLMs nutzt, ist ebenso herausfordernd. Es erfordert erhebliche Expertise, Anstrengung und Ressourcen, um einen Workflow zu entwerfen, zu implementieren und letztendlich zu optimieren, der in der Lage ist, das volle Potenzial eines großen Sprachmodells zu nutzen, um die besten Ergebnisse zu erzielen. Angesichts der umfangreichen Zeit und Ressourcen, die erforderlich sind, um Workflows für Anwendungen zu etablieren, die die Macht von LLMs nutzen, hält die Automatisierung dieser Prozesse immense Werte. Dies ist besonders wahr, da Workflows in naher Zukunft noch komplexer werden, da Entwickler zunehmend sophisticatede LLM-basierte Anwendungen entwickeln. Darüber hinaus ist der für diese Workflows erforderliche Designraum sowohl komplex als auch umfangreich, was die Herausforderungen bei der Erstellung eines optimalen, robusten Workflows, der die Leistungserwartungen erfüllt, weiter erhöht.
AutoGen ist ein Framework, das von dem Team bei Microsoft (MSFT ) entwickelt wurde und darauf abzielt, die Orchestrierung und Optimierung von LLM-Workflows zu vereinfachen, indem es Automation in die Workflow-Pipeline einführt. Das AutoGen-Framework bietet konversierbare und anpassbare Agenten, die die Macht von fortschrittlichen LLMs wie GPT-3 und GPT-4 nutzen und gleichzeitig ihre aktuellen Einschränkungen durch die Integration von LLMs mit Tools und menschlichen Eingaben angehen, indem sie automatisierte Chats verwenden, um Gespräche zwischen mehreren Agenten zu initiieren.
Bei der Verwendung des AutoGen-Frameworks sind nur zwei Schritte erforderlich, wenn Sie ein komplexes Multi-Agenten-System entwickeln.
Schritt 1: Definieren Sie eine Reihe von Agenten, jeder mit seinen eigenen Rollen und Fähigkeiten.
Schritt 2: Definieren Sie das Interaktionsverhalten zwischen den Agenten, d. h. ein Agent sollte wissen, wie er auf eine Nachricht von einem anderen Agenten antworten soll.
Beide der oben genannten Schritte sind modular und intuitiv, was diese Agenten komponierbar und wiederverwendbar macht. Die folgende Abbildung zeigt ein Beispiel-Workflow, der die Beantwortung von Code-basierten Fragen bei der Optimierung der Lieferkette anspricht. Wie Sie sehen können, schreibt der Autor zunächst den Code und die Interpretation, der Safeguard stellt die Privatsphäre und Sicherheit des Codes sicher, und der Code wird dann vom Commander ausgeführt, nachdem er die erforderliche Freigabe erhalten hat. Wenn das System während der Laufzeit auf ein Problem stößt, wird der Prozess wiederholt, bis er vollständig gelöst ist. Die Bereitstellung des unten beschriebenen Frameworks führt zu einer Reduzierung der manuellen Interaktionen von 3x bis 10x, wenn es in Anwendungen wie der Optimierung der Lieferkette eingesetzt wird. Darüber hinaus reduziert die Verwendung von AutoGen auch den erforderlichen Codierungsaufwand um bis zu vier Mal.

AutoGen könnte ein Game-Changer sein, da es darauf abzielt, den Entwicklungsprozess komplexer Anwendungen zu transformieren, die die Macht von LLMs nutzen. Die Verwendung von AutoGen kann nicht nur die Anzahl der manuellen Interaktionen reduzieren, die erforderlich sind, um die gewünschten Ergebnisse zu erzielen, sondern auch den erforderlichen Codierungsaufwand reduzieren, um solche komplexen Anwendungen zu erstellen. Die Verwendung von AutoGen für die Erstellung von LLM-basierten Anwendungen kann nicht nur den Prozess erheblich beschleunigen, sondern auch die erforderliche Zeit, Anstrengung und Ressourcen reduzieren, um diese komplexen Anwendungen zu entwickeln.
In diesem Artikel werden wir einen tieferen Blick in das AutoGen-Framework werfen und die wesentlichen Komponenten und Architektur des AutoGen-Frameworks sowie seine potenziellen Anwendungen erkunden. Also beginnen wir.
Eine Einführung in AutoGen: Powering Next Generation Large Language Model Applications
AutoGen ist ein Open-Source-Framework, das von dem Team bei Microsoft entwickelt wurde und Entwicklern die Macht gibt, Anwendungen zu erstellen, die die Macht von LLMs nutzen, indem sie multiple Agenten verwenden, die miteinander sprechen können, um die gewünschten Aufgaben erfolgreich auszuführen. Agenten in AutoGen sind konversierbar, anpassbar und können in verschiedenen Modi arbeiten, die die Kombination von Tools, menschlichen Eingaben und LLMs nutzen. Entwickler können auch das AutoGen-Framework verwenden, um das Interaktionsverhalten von Agenten zu definieren, und Entwickler können sowohl Computercode als auch natürliche Sprache verwenden, um flexible Gesprächsmuster zu programmieren, die in verschiedenen Anwendungen eingesetzt werden. Da es sich um ein Open-Source-Framework handelt, kann AutoGen als ein generisches Framework betrachtet werden, das Entwickler verwenden können, um Anwendungen und Frameworks von verschiedenen Komplexitätsgraden zu erstellen, die die Macht von LLMs nutzen.

Große Sprachmodelle spielen eine entscheidende Rolle bei der Entwicklung von Agenten, die LLM-FrameWorks für die Anpassung an neue Beobachtungen, Tool-Nutzung und Argumentation in zahlreichen realen Anwendungen nutzen. Die Entwicklung dieser Anwendungen, die das volle Potenzial von LLMs nutzen können, ist jedoch ein komplexes Unterfangen, und angesichts der ständig steigenden Nachfrage und Anwendungen von LLMs sowie der Zunahme der Aufgabenkomplexität ist es wichtig, die Macht dieser Agenten durch die Verwendung von mehreren Agenten zu erhöhen, die synchron miteinander arbeiten.Wie kann jedoch ein Multi-Agenten-Ansatz verwendet werden, um LLM-basierte Anwendungen zu entwickeln, die dann auf eine breite Palette von Domänen mit verschiedenen Komplexitätsgraden angewendet werden können?Das AutoGen-Framework versucht, diese Frage zu beantworten, indem es die Verwendung von Multi-Agenten-Gesprächen nutzt.
AutoGen: Komponenten und Framework
Um den Aufwand zu reduzieren, den Entwickler aufwenden müssen, um komplexe Anwendungen zu erstellen, die die Fähigkeiten von LLMs nutzen, besteht das grundlegende Prinzip von AutoGen darin, Multi-Agenten-Workflows zu konsolidieren und zu straffen, indem es Multi-Agenten-Gespräche nutzt, und gleichzeitig die Wiederverwendbarkeit dieser implementierten Agenten zu maximieren. AutoGen verwendet multiple Agenten, die miteinander sprechen können, um die gewünschten Aufgaben erfolgreich auszuführen, und das Framework basiert auf zwei grundlegenden Konzepten: konversierbaren Agenten und konversierbarer Programmierung.
Konversierbare Agenten
Ein konversierbarer Agent in AutoGen ist eine Entität mit einer vordefinierten Rolle, die Nachrichten an andere konversierbare Agenten senden und empfangen kann. Ein konversierbarer Agent behält seinen internen Kontext auf der Grundlage der empfangenen oder gesendeten Nachrichten, und Entwickler können diese Agenten so konfigurieren, dass sie eine einzigartige Menge an Fähigkeiten haben, wie z. B. die Aktivierung durch LLM-Tools oder die Annahme von menschlichen Eingaben.
Agenten-Fähigkeiten, die durch Menschen, Tools und LLMs unterstützt werden
Die Fähigkeiten eines Agenten stehen in direktem Zusammenhang mit der Art und Weise, wie er Nachrichten verarbeitet und darauf reagiert, was der Hauptgrund dafür ist, warum die Agenten im AutoGen-Framework Entwicklern die Flexibilität bieten, verschiedenen Fähigkeiten zu ihren Agenten zu verleihen. AutoGen unterstützt zahlreiche gemeinsame, komponierbare Fähigkeiten für Agenten, darunter
- LLMs: Agenten, die durch LLMs unterstützt werden, nutzen die Fähigkeiten von fortschrittlichen LLM-FrameWorks wie implizite Zustandsinterferenz, Rollenspiel, Feedback und sogar Codierung. Entwickler können neue Prompting-Techniken verwenden, um diese Fähigkeiten zu kombinieren, um die Autonomie oder Fähigkeit eines Agenten zu erhöhen.
- Menschen: Viele Anwendungen erfordern oder wünschen ein bestimmtes Maß an menschlicher Beteiligung, und das AutoGen-Framework ermöglicht es LLM-basierten Anwendungen, menschliche Beteiligung in Agenten-Gesprächen zu ermöglichen, indem es menschliche Agenten verwendet, die menschliche Eingaben während bestimmter Runden des Gesprächs auf der Grundlage der Konfiguration des Agenten anfordern können.
- Tools: Tools-gestützte Agenten haben in der Regel die Fähigkeit, Code-Ausführung oder Funktionsausführung zu nutzen, um Tools auszuführen.
Agenten-Zusammenarbeit und Anpassung
Basierend auf den spezifischen Anforderungen einer Anwendung können Entwickler einzelne Agenten so konfigurieren, dass sie eine Kombination von wesentlichen Back-End-Typen aufweisen, um das komplexe Verhalten in Multi-Agenten-Gesprächen anzuzeigen. Das AutoGen-Framework ermöglicht es Entwicklern, leicht Agenten mit spezialisierten Rollen und Fähigkeiten zu erstellen, indem sie die integrierten Agenten erweitern oder wiederverwenden. Die folgende Abbildung zeigt die grundlegende Struktur der integrierten Agenten im AutoGen-Framework. Die ConversableAgent-Klasse kann standardmäßig Menschen, Tools und LLMs verwenden, da sie die höchste Agenten-Abstraktion ist. Die UserProxyAgent- und die AssistantAgent-Klasse sind vorkonfigurierte Klassen von ConversableAgent, und jede von ihnen stellt einen gemeinsamen Nutzungsmodus dar, d. h. jeder dieser beiden Agenten agiert als KI-Assistent (wenn durch LLMs unterstützt), und fordert menschliche Eingaben an oder führt Funktionsaufrufe oder Code aus (wenn durch Tools und/oder Menschen unterstützt), indem er als menschlicher Proxy agiert.

Die folgende Abbildung zeigt, wie Entwickler das AutoGen-Framework verwenden können, um ein Zwei-Agenten-System zu entwickeln, das eine benutzerdefinierte Antwortfunktion aufweist, zusammen mit einer Abbildung des resultierenden automatisierten Agenten-Chats, der das Zwei-Agenten-System während der Ausführung des Programms verwendet.

Durch die Ermöglichung der Verwendung von benutzerdefinierten Agenten, die miteinander sprechen können, dienen diese konversierbaren Agenten als grundlegender Baustein im AutoGen-Framework. Allerdings müssen Entwickler diese Multi-Agenten-Gespräche spezifizieren und formen, um Anwendungen zu entwickeln, in denen diese Agenten wesentliche Fortschritte bei den angegebenen Aufgaben machen können.
Gesprächs-Programmierung
Um das oben genannte Problem zu lösen, verwendet das AutoGen-Framework die Gesprächs-Programmierung, ein Rechenparadigma, das auf zwei wesentlichen Konzepten basiert: Berechnung, die Aktionen, die von Agenten in einem Multi-Agenten-Gespräch ausgeführt werden, um ihre Antwort zu berechnen, und Steuerfluss, die Bedingungen oder Sequenz, unter denen diese Berechnungen stattfinden. Die Fähigkeit, diese zu programmieren, ermöglicht es Entwicklern, zahlreiche flexible Multi-Agenten-Gesprächsmuster zu implementieren. Darüber hinaus sind die Berechnungen im AutoGen-Framework gesprächs-zentriert. Die Aktionen, die von einem Agenten ausgeführt werden, sind relevant für die Gespräche, an denen der Agent beteiligt ist, und die Aktionen, die von den Agenten ausgeführt werden, führen dann zum Senden von Nachrichten für nachfolgende Gespräche, bis ein Beendigungsbedingung erfüllt ist. Darüber hinaus wird der Steuerfluss im AutoGen-Framework durch Gespräche angetrieben, da es die Entscheidung der beteiligten Agenten ist, welche Agenten Nachrichten senden und empfangen werden, und der Steuerfluss wird durch die Gespräche bestimmt.

Die obige Abbildung zeigt eine einfache Abbildung davon, wie einzelne Agenten ihre rollenspezifischen Operationen ausführen und gesprächs-zentrierte Berechnungen, um die gewünschten Antworten wie Code-Ausführung und LLM-Interferenzaufrufe zu generieren. Die Aufgabe schreitet mit Hilfe von Gesprächen voran, die im Dialogfeld angezeigt werden.
Um die Gesprächs-Programmierung zu erleichtern, verfügt das AutoGen-Framework über die folgenden Entwurfsmuster.
- Auto-Antwort-Mechanismen und einheitliche Schnittstelle für automatisierte Agenten-Chats
Das AutoGen-Framework verfügt über eine einheitliche Schnittstelle für die entsprechende Berechnung, die gesprächs-zentriert ist, einschließlich einer „Empfangs- oder Sendefunktion“ für das Empfangen oder Senden von Nachrichten sowie einer „generate_reply“-Funktion, die eine Antwort auf der Grundlage der empfangenen Nachricht generiert und die erforderliche Aktion ausführt. Das AutoGen-Framework führt auch den Agenten-Auto-Antwort-Mechanismus standardmäßig ein, um die gesprächs-getriebene Steuerung zu realisieren.
- Steuerung durch Kombination von natürlicher Sprache und Programmierung
Das AutoGen-Framework ermöglicht die Verwendung von natürlicher Sprache und Programmierung in verschiedenen Steuerfluss-Management-Mustern, darunter: Natürliche Sprache-Steuerung mit LLMs, Programmiersprachen-Steuerung und Steuerübergang zwischen Programmierung und natürlicher Sprache.
Weiterhin unterstützt das AutoGen-Framework neben statischen Gesprächen, die normalerweise von einem vordefinierten Fluss begleitet werden, auch dynamische Gesprächsflüsse mit mehreren Agenten, und das Framework bietet Entwicklern zwei Optionen, um dies zu erreichen
- Durch die Verwendung von Funktionsaufrufen.
- Durch die Verwendung einer benutzerdefinierten generate_reply-Funktion.
Anwendungen des AutoGen
Um das Potenzial des AutoGen-Frameworks bei der Entwicklung komplexer Multi-Agenten-Anwendungen zu veranschaulichen, sind hier sechs potenzielle Anwendungen von AutoGen aufgeführt, die auf der Grundlage ihrer Relevanz in der realen Welt, ihrer Fähigkeit, Probleme zu lösen, und ihres innovativen Potenzials ausgewählt wurden.
Diese sechs Anwendungen des AutoGen-Frameworks sind
- Mathematische Problemlösung.
- Abruf-ergänzte Chats.
- ALF-Chats.
- Multi-Agenten-Codierung.
- Dynamische Gruppen-Chat.
- Konversationsschach.

Anwendung 1: Mathematische Problemlösung
Mathematik ist eine der grundlegenden Disziplinen, die LLM-Modelle nutzen, um komplexe mathematische Probleme zu lösen, was eine ganze neue Welt von potenziellen Anwendungen eröffnet, einschließlich KI-Forschungsunterstützung und personalisierter KI-Tutoren.

Die obige Abbildung zeigt die Anwendung des AutoGen-Frameworks, um wettbewerbsfähige Leistungen bei der Lösung mathematischer Probleme zu erzielen.
Anwendung 2: Frage-Antwort und Abruf-ergänzte Code-Generierung
In den letzten Monaten ist die Abruf-ergänzte Code-Generierung als effektiver und praktischer Ansatz zur Überwindung der Einschränkungen von LLMs bei der Einbeziehung externer Dokumente aufgetaucht. Die folgende Abbildung zeigt die Anwendung des AutoGen-Frameworks für eine effektive Abruf-Ergänzung und Leistungssteigerung bei Q&A-Aufgaben.

Anwendung 3: Entscheidungsfindung in Text-Welten
Das AutoGen-Framework kann verwendet werden, um Anwendungen zu erstellen, die mit Online- oder interaktiver Entscheidungsfindung arbeiten. Die folgende Abbildung zeigt, wie Entwickler das AutoGen-Framework verwenden können, um ein dreigliedriges Gesprächssystem mit einem Grounding-Agenten zu entwerfen, um die Leistung erheblich zu steigern.

Anwendung 4: Multi-Agenten-Codierung
Entwickler, die mit dem AutoGen-Framework arbeiten, können das OptiGuide-Framework verwenden, um ein Multi-Agenten-Codierungssystem zu erstellen, das in der Lage ist, Code zu schreiben, um optimierte Lösungen zu implementieren und Benutzerfragen zu beantworten. Die folgende Abbildung zeigt, dass die Verwendung des AutoGen-Frameworks zur Erstellung eines Multi-Agenten-Designs die Gesamtleistung erheblich steigert, insbesondere bei der Ausführung von Codierungsaufgaben, die einen Safeguard erfordern.

Anwendung 5: Dynamische Gruppen-Chat
Das AutoGen-Framework bietet Unterstützung für ein Kommunikationsmuster, das sich um dynamische Gruppen-Chats dreht, bei dem die teilnehmenden Multi-Agenten den Kontext teilen und anstelle eines vordefinierten Ablaufs miteinander in einer dynamischen Weise sprechen. Diese dynamischen Gruppen-Chats verlassen sich auf laufende Gespräche, um den Fluss der Interaktion zwischen den Agenten zu steuern.

Die obige Abbildung zeigt, wie das AutoGen-Framework dynamische Gruppen-Chats zwischen Agenten unterstützt, indem es den GroupChatManager, einen speziellen Agenten, verwendet.
Anwendung 6: Konversationsschach
Die Entwickler des AutoGen-Frameworks verwendeten es, um eine Konversationsschach-Anwendung zu entwickeln, die ein natürliches Interferenzspiel ist, das eingebaute Agenten für Spieler aufweist, die entweder ein LLM oder ein Mensch sein können, und es gibt auch einen dritten Agenten, der relevante Informationen bereitstellt und die Züge auf dem Brett auf der Grundlage einer Reihe von vordefinierten Standardregeln validiert. Die folgende Abbildung zeigt das Konversationsschach, ein natürliches Interferenzspiel, das mit dem AutoGen-Framework erstellt wurde, das es den Spielern ermöglicht, Witze, Charaktere oder sogar Meme-Referenzen zu verwenden, um ihre Züge kreativ auszudrücken, was das Schachspiel nicht nur für die Spieler, sondern auch für das Publikum und die Beobachter interessanter macht.

Fazit
In diesem Artikel haben wir über AutoGen gesprochen, ein Open-Source-Framework, das die Konzepte der Gesprächs-Programmierung und konversierbarer Agenten nutzt, um die Orchestrierung und Optimierung von LLM-Workflows zu vereinfachen, indem es Automation in die Workflow-Pipeline einführt. Das AutoGen-Framework bietet konversierbare und anpassbare Agenten, die die Macht von fortschrittlichen LLMs wie GPT-3 und GPT-4 nutzen und gleichzeitig ihre aktuellen Einschränkungen durch die Integration von LLMs mit Tools und menschlichen Eingaben angehen, indem sie automatisierte Chats verwenden, um Gespräche zwischen mehreren Agenten zu initiieren.
Obwohl das AutoGen-Framework noch in den frühen experimentellen Stadien ist, ebnet es den Weg für zukünftige Erkundungen und Forschungsmöglichkeiten in diesem Bereich, und AutoGen könnte das Tool sein, das hilft, die Geschwindigkeit, Funktionalität und die Entwicklung von Anwendungen zu verbessern, die die Fähigkeiten von LLMs nutzen.












