Sequenzielle Orchestrierung verwenden
In sequenzieller Orchestrierungwerden Agents in einer Pipeline angeordnet, in der jeder Agent die Aufgaben nacheinander verarbeitet. Die Ausgabe von einem Agent wird die Eingabe für die nächste. Dieses Muster eignet sich ideal für Workflows, bei denen jeder Schritt vom vorherigen abhängt, z. B. Dokumentüberprüfung, Datentransformationspipelines oder mehrstufiges Denken.
Sequenzielle Orchestrierung funktioniert am besten für Aufgaben, die Schritt-für-Schritt durchgeführt werden müssen, wobei jeder Schritt auf dem letzten Schritt verbessert wird. Die Reihenfolge, in der Agents ausgeführt werden, ist fest und vorher entschieden, und Agents entscheiden nicht, was als nächstes passiert.
Wann sequenzielle Orchestrierung verwendet werden soll
Erwägen Sie die Verwendung des sequenziellen Orchestrierungsmusters, wenn Ihr Workflow Folgendes hat:
- Prozesse, die aus mehreren Schritten bestehen, die in einer bestimmten Reihenfolge ausgeführt werden müssen, wobei jeder Schritt davon abhängt.
- Datenworkflows, bei denen jede Phase etwas Wichtiges hinzufügt, das die nächste Stufe ordnungsgemäß funktionieren muss.
- Aufgaben, bei denen Phasen nicht gleichzeitig ausgeführt werden können und nacheinander ausgeführt werden müssen.
- Situationen, die schrittweise Verbesserungen erfordern, z. B. Entwurf, Überprüfung und Polieren von Inhalten.
- Systeme, in denen Sie wissen, wie jeder Agent ausgeführt wird, und kann Verzögerungen oder Fehler in jedem Schritt verarbeiten, ohne den gesamten Prozess zu beenden.
Gründe für die Vermeidung sequenzieller Orchestrierung
Vermeiden Sie dieses Muster in folgenden Fällen:
- Stufen können unabhängig und parallel ausgeführt werden, ohne dass sich dies auf die Qualität auswirkt.
- Ein einzelner Agent kann die gesamte Aufgabe effektiv ausführen.
- Frühe Phasen können fehlschlagen oder eine schlechte Ausgabe erzeugen, und es gibt keine Möglichkeit, die nachgelagerte Verarbeitung basierend auf Fehlern zu beenden oder zu korrigieren.
- Agents müssen dynamisch zusammenarbeiten, anstatt die Arbeit sequenziell zu übergeben.
- Der Workflow erfordert Iteration, Backtracking oder dynamisches Routing basierend auf Zwischenergebnissen.
Implementieren sequenzieller Orchestrierung
Implementieren Sie das sequenzielle 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 in der Pipeline definiert.Erstellen des sequenziellen Workflows
Verwenden Sie dieSequentialBuilderKlasse, um einen Workflow zu erstellen, der Agents nacheinander ausführt. 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 desrun_streamWorkflows mit der Aufgabe oder Eingabe auf, an der die Agents arbeiten sollen. Der Workflow verarbeitet die Aufgabe durch alle Agents sequenziell, wobei die Ausgabe jedes Agents für die nächste Eingabe wird.Das Verarbeiten von Workflow-Events
Durchlaufen Sie die Arbeitsablaufereignisse mithilfe einer asynchronen Schleife. Suchen Sie nachWorkflowOutputEventInstanzen, die die Ergebnisse aus der sequenziellen Verarbeitung enthalten.Extrahiere das letzte Gespräch
Sammeln Sie das letzte Gespräch aus den Workflowausgaben. Das Ergebnis enthält den vollständigen Unterhaltungsverlauf, der zeigt, wie jeder Agent in der Sequenz zum endgültigen Ergebnis beigetragen hat.
Die sequenzielle Orchestrierung ist ideal, wenn Ihre Aufgabe klare, sortierte Schritte erfordert, bei denen jeder Agent auf der Ausgabe des vorherigen Aufbaus aufbaut. Dieses Muster trägt dazu bei, die Ausgabequalität durch schrittweise Verfeinerung zu verbessern und vorhersehbare Workflows zu gewährleisten. Bei durchdachter Anwendung mit dem Microsoft Agent Framework SDK ermöglicht es leistungsstarke Multi-Agent-Pipelines für komplexe Aufgaben wie Inhaltserstellung, Datenverarbeitung und vieles mehr.