Verwenden der Gruppenchat-Orchestrierung
Die Gruppenchat-Orchestrierung modelliert eine gemeinsame Unterhaltung zwischen mehreren KI-Agents und optional einem menschlichen Teilnehmer. Ein zentraler Chat-Manager steuert den Fluss und entscheidet, welcher Agent als Nächstes antwortet und wann menschliche Eingaben angefordert werden sollen. Dieses Muster eignet sich für die Simulation von Besprechungen, Diskussionen oder der gemeinsamen Arbeit an Problemlösungen.
Das Gruppenchatmuster eignet sich gut für Szenarien, in denen Gruppendiskussionen oder iterative Zusammenarbeit entscheidend für die Entscheidungsfindung sind. Es unterstützt verschiedene Interaktionsstile, von Brainstormings bis hin zu formalen Workflows mit definierten Rollen und Genehmigungsschritten. Die Gruppenchat-Orchestrierung eignet sich außerdem hervorragend für Human-in-the-Loop-Setups, bei denen ein Mensch die Unterhaltung steuern oder in sie eingreifen kann. In der Regel ändern Agenten in diesem Muster laufende Systeme nicht direkt – sie tragen hauptsächlich zum Gespräch bei.
Anlässe für die Verwendung der Gruppenchat-Orchestrierung
Erwägen Sie die Verwendung der Gruppenchat-Orchestrierung, wenn Ihr Szenario Folgendes umfasst:
- Spontane oder geführte Zusammenarbeit zwischen Agenten (und möglicherweise Menschen)
- Iterative Ersteller-Überprüfer-Schleifen, in denen Agents die Erstellung und Überprüfung übernehmen
- Menschliche Überwachung oder Teilnahme in Echtzeit
- Transparente und überwachbare Unterhaltungen, da alle Ausgaben in einem einzelnen Thread gesammelt werden
Zu den häufigen Szenarios gehören:
- Kreatives Brainstorming, bei dem Agenten auf die Ideen der anderen aufbauen
- Entscheidungsfindung, die von Diskussionen und Konsens profitiert
- Komplexe Probleme, die einen interdisziplinären Dialog erfordern
- Qualitätskontrolle und Validierung, die die Perspektiven verschiedener Experten erfordert
- Inhaltsworkflows mit klarer Trennung zwischen Erstellung und Überprüfung
Gründe für die Vermeidung von Gruppenchat-Orchestrierung
Vermeiden Sie dieses Muster in folgenden Fällen:
- Eine einfache Aufgabendelegierung oder simple lineare Pipelines reichen aus.
- Es ist Echtzeitgeschwindigkeit erforderlich, was Diskussionsaufwand unpraktisch macht.
- Es werden hierarchische oder deterministische Workflows ohne Diskussion benötigt
- Der Chat-Manager kann nicht eindeutig bestimmen, wann die Aufgabe abgeschlossen ist.
- Die Verwaltung des Unterhaltungsablaufs wird zu komplex, insbesondere bei vielen Agents. Zur einfacheren Steuerung ist eine Begrenzung auf höchstens drei Agents empfehlenswert.
Ersteller-Überprüfer-Schleifen
Ein gängiger Sonderfall ist die Ersteller-Überprüfer-Schleife (Maker-Checker-Loop). Hier schlägt ein Agent (der Ersteller) Inhalte oder Lösungen vor, die dann von einem anderen Agent (dem Überprüfer) überprüft und kritisiert werden. Der Überprüfer kann dem Ersteller Feedback senden, und dieser Zyklus wiederholt sich, bis das Ergebnis zufriedenstellend ausfällt. Für diesen Prozess ist eine turnbasierte Sequenz erforderlich, die vom Chat-Manager verwaltet wird.
Implementieren der Gruppenchat-Orchestrierung
Implementieren Sie das Gruppenchat-Orchestrierungsmuster mit dem Microsoft Agent Framework SDK:
Erstellen Ihres Chatclients
Richten Sie einen Chatclient (z. B.AzureOpenAIChatClient) mit entsprechenden Anmeldeinformationen ein, um eine Verbindung zu Ihrem KI-Dienstanbieter herzustellen.Definieren Ihrer Agents
Erstellen Sie Agentinstanzen mithilfe der Methode des Chatclientscreate_agent. Jeder Agent sollte über spezifische Anweisungen und einen Namen verfügen, der seine Rolle und seinen Kompetenzbereich definiert.Erstellen des Gruppenchatworkflows
Verwenden Sie dieGroupChatBuilderKlasse, um einen Workflow zu erstellen, der mehrere Agents parallel ausführen kann. Fügen Sie Ihre Agentinstanzen als Teilnehmer mithilfe derparticipants()Methode hinzu, und rufen Sie dann aufbuild(), um den Workflow zu erstellen.Ausführen des Workflows
Rufen Sie die Methode desrunWorkflows mit der Aufgabe oder Eingabe auf, an der die Agents arbeiten sollen. Der Workflow führt alle Agents gleichzeitig aus und gibt Ereignisse zurück, die die Ergebnisse enthalten.Verarbeiten der Ergebnisse
Extrahieren Sie die Ergebnisse aus den Workflow-Ereignissen mithilfe vonget_outputs(). Die Ergebnisse enthalten die kombinierten Unterhaltungen aller Agents, wobei die Antwort jedes Agents in der endgültigen Ausgabe enthalten ist.Behandeln der aggregierten Antworten
Verarbeiten der aggregierten Nachrichten von allen Agents. Jede Nachricht enthält den Namen und den Inhalt des Autors, sodass Sie ermitteln können, welcher Agent jede Antwort bereitgestellt hat.
Anpassen des Gruppenchat-Managers
Sie können einen benutzerdefinierten Gruppenchat-Manager erstellen, indem Sie die Basisklasse GroupChatManager erweitern. Mit diesem Ansatz können Sie Folgendes steuern:
- Filtern oder Zusammenfassen von Unterhaltungsergebnissen
- Wie wird der nächste Agent ausgewählt?
- Wann sollen Benutzereingaben angefordert werden?
- Wann soll die Unterhaltung beendet werden?
Mit benutzerdefinierten Managern können Sie spezielle Logiken implementieren, die auf Ihren Anwendungsfall zugeschnitten ist.
Aufrufreihenfolge des Gruppenchat-Managers
Während jeder Runde Unterhaltung ruft der Chat-Manager Methoden in folgender Reihenfolge auf:
-
should_request_user_input– Überprüft, ob menschliche Eingaben erforderlich sind, bevor der nächste Agent reagiert. -
should_terminate- Bestimmt, ob die Unterhaltung enden soll (z. B. max. Runde erreicht). -
filter_results– Fasst, sofern die Unterhaltung beendet ist, die endgültige Unterhaltung zusammen, oder verarbeitet sie. -
select_next_agent– Wählt, sofern die Unterhaltung fortgesetzt wird, den nächsten Agent aus, der sich äußern soll.
Dadurch wird sichergestellt, dass Benutzereingabe- und Beendigungsbedingungen berücksichtigt werden, bevor die Unterhaltung fortgesetzt wird. Überschreiben Sie diese Methoden in Ihrem benutzerdefinierten Manager, um das Verhalten zu verändern.
Die Gruppenchat-Orchestrierung ermöglicht es mehreren KI-Agents – und optional Menschen – durch geführte Unterhaltungen und iteratives Feedback zusammenzuarbeiten. Sie ist ideal für komplexe Aufgaben, die von vielfältigem Fachwissen und dynamischen Interaktionen profitieren. Auch wenn dieses Muster ein sorgfältiges Management erfordert, bietet es Transparenz und Flexibilität bei der Entscheidungsfindung sowie bei kreativen Workflows. Das Microsoft Agent Framework SDK erleichtert die Implementierung und Anpassung der Gruppenchat-Orchestrierung für Ihre Anforderungen.