Freigeben über


Entdecken Sie Muster der Multi-Agenten-Orchestrierung

Generative Orchestrierung unterstützt auch Multi-Agenten-Systeme, bei denen ein Agent einen anderen Agenten aufruft. Das Aufteilen von Problemen in mehrere spezialisierte Agenten kann Modularität, Skalierbarkeit und Handhabbarkeit verbessern.

Inline-Agenten

Inline-Agenten, auch bekannt als Child Agents, sind kleine, wiederverwendbare Workflows innerhalb desselben Agenten. Oft sind es einfach Themen, die der Hauptagent als Subroutinen verwendet. Zum Beispiel kann der Hauptagent ein Thema "Text übersetzen" als einen Schritt in einem größeren Plan aufrufen. Inline-Agenten teilen den Kontext mit dem Hauptagenten, sodass der Datenaustausch zwischen ihnen einfach ist.

Best Practice: Halte Inline-Agenten auf eine einzige Verantwortung fokussiert und gut getestet.

Verbundene Agents

Connected Agents sind separate Agenten mit eigener Orchestrierung, Werkzeugen und eigenem Wissen. Der Hauptagent delegiert einen Teil einer Anfrage an einen Kinderagenten. Zum Beispiel ruft ein IT-Agent einen Vertriebsmitarbeiter wegen Preisen an. Verbundene Agenten ermöglichen Modularität, Domänentrennung und können Plangrenzen umgehen. Sie könnten unterschiedliche Privilegien oder Kenntnisse haben, daher wenden Sie Governance- und Audit-Kontrollen an.

Allerdings erfordert der Einsatz verbundener Agenten eine sorgfältige Steuerung:

  • Orchestrierung: Der Hauptorchestrator sollte klare Kriterien haben, wann er an einen verbundenen Agenten übergeben wird. Diese Übergabe erfolgt meist, wenn die Absicht des Nutzers mit der Domäne des verbundenen Agenten übereinstimmt. Um diesen Prozess zu unterstützen, beschreiben Sie den Zweck des verbundenen Agenten klar in der Konfiguration des Elternteils. Behandle den gesamten verbundenen Agenten aus Sicht des Elternteils als "Werkzeug" mit einer Beschreibung.

  • Datenübergabe: Sie müssen die Datenübergabe verwalten. Entscheide, welchen Kontext vom Elternteil an den verbundenen Agenten weitergegeben werden soll. Copilot Studio gibt den Gesprächsverlauf standardmäßig weiter, wenn ein Agent einen anderen anruft, sodass der verbundene Agent weiß, was bereits besprochen wurde. Aber du musst vielleicht auch bestimmte Parameter erfüllen. Wenn der Hauptagent zum Beispiel bereits den Namen des Nutzers kennt, könnte er diesen an den verbundenen Agenten weiterleiten, um nicht erneut nachzufragen.

  • Sicherheit: Der verbundene Agent könnte Zugriff auf Dinge haben, die der Elternagent nicht hat. Stellen Sie sicher, dass das Anrufen des verbundenen Agenten nicht versehentlich Einschränkungen umgeht. Zum Beispiel, wenn der Elternagent keine Datensätze löschen darf, der verbundene Agent es aber kann, sollte der Elternagent den verbundenen Agenten in Szenarien nicht anrufen, in denen eine Löschung ohne ordnungsgemäße Genehmigung erfolgen könnte. Behandeln Sie einen Connected Agent Call wie jede andere wirkungsvolle Aktion. Wenn es etwas Sensibles tut, unterziehe es den notwendigen Überprüfungen oder der Zustimmung des Nutzers.

  • Audit und Überwachung: Protokollieren, wann ein verbundener Agent aufgerufen wurde und was er gemacht hat. Da es ein separater Agent ist, hast du dafür separate Transkripte. Beim Debuggen ist es wichtig, die Eltern- und die verbundenen Sitzungen zu korrelieren. Typischerweise verbinden Identifizéierer in der Telemetrie die beiden.

Wann Agenten getrennt werden sollten

Erstelle nicht für jede Teiltaske einen separaten Agenten. Verwenden Sie separate Agenten, wenn die Teilaufgabe:

  • Ist komplex genug, um ein eigenes Werkzeug- oder Wissenspaket zu haben (anderes Fachgebiet)
  • Erfordert andere Governance-Regeln oder Zugriffskontrollen als der Hauptagent
  • Du planst, diese Funktion in vielen verschiedenen Hauptagenten wiederzuverwenden (es ist also wie ein Serviceagent).

Wenn keine dieser Bedingungen zutrifft, könnte ein einfaches Thema (Inline) anstelle eines vollständig verbundenen Agenten ausreichen. Separate Agenten verursachen Overhead – eine etwas längere Ausführungszeit aufgrund des Kontextwechsels und die Komplexität bei der Wartung mehrerer Bots. Nutzen Sie sie also mit Bedacht. Ein praktischer Ansatz ist, mit einem Agenten zu beginnen und sich erst dann in mehrere Agenten aufzuteilen, wenn man klar einen Bedarf an Modularität oder einer Grenze sieht, die nicht von einem einzelnen Agenten überschritten werden sollte.