Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Generative Orchestrierung unterstützt auch Multi-Agent-Systeme, bei denen ein Agent andere Agents aufruft. Wenn Sie Probleme in mehrere spezialisierte Agents unterteilen, machen Sie Ihre Anwendung modularer, skalierbarer und verwaltbarer.
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: Konzentrieren Sie Inline-Agenten auf eine einzige Aufgabe und testen Sie sie gründlich.
Verbundene Agents
Connected Agents sind separate Agenten mit eigener Orchestrierung, Werkzeugen und eigenem Wissen. Der Hauptagent delegiert einen Teil einer Anfrage an einen Kinderagenten. Beispielsweise ruft ein IT-Agent einen Vertriebsmitarbeiter auf, um Informationen über die Preise zu erhalten. Verbundene Agents ermöglichen modularität und Domänentrennung und können Plangrenzwerte 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 soll. Der Orchestrator übergibt in der Regel, wenn die Intention des Benutzers dem Zuständigkeitsbereich des verbundenen Agenten entspricht. Um diesen Prozess zu unterstützen, beschreiben Sie den Zweck des verbundenen Agenten klar in der Konfiguration des Elternteils. Behandeln Sie den gesamten verbundenen Agent als agentisches "Tool" mit einer Beschreibung aus der Perspektive des übergeordneten Elements.
Datenübergabe: Sie müssen die Datenübergabe verwalten. Entscheide, welchen Kontext vom Elternteil an den verbundenen Agenten weitergegeben werden soll. Copilot Studio übergibt standardmäßig den Gesprächsverlauf, wenn ein Agent einen anderen Agenten aufruft, sodass der verbundene Agent den vorherigen Kontext der Unterhaltung versteht. Aber Sie müssen möglicherweise auch bestimmte Parameter übergeben. 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 Anruf eines verbundenen Agenten 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. In der Regel verknüpfen Identifizierer 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
- Lässt sich in vielen verschiedenen Hauptagenten wiederverwenden (also wie ein Service-Agent).
Wenn keine dieser Bedingungen zutrifft, kann ein einfacher Inline-Agent den Auftrag gut behandeln und gleichzeitig einfacher als ein vollständig verbundener Agent sein. Separate Agenten verursachen im System zusätzlichen Aufwand. Aufgrund des Kontextwechsels und der Komplexität bei der Verwaltung mehrerer Agents gibt es eine etwas längere Ausführungszeit. Nutzen Sie sie also mit Bedacht. Für einen praktischen Ansatz beginnen Sie mit einem Agenten. Teilen Sie sich dann nur in mehrere Agenten auf, wenn Sie deutlich sehen, dass eine Modularität erforderlich ist oder eine Grenze ein einzelner Agent nicht kreuzen sollte.
Bewährte Methoden für die Multi-Agent-Orchestrierung
Die folgenden bewährten Methoden gelten beim Erstellen von Anweisungen für übergeordnete und Subagenten in einer Mehr-Agent-Einrichtung.
1. Grundsatz der Einzelantwort
Stellen Sie sicher, dass nur ein Agent pro Turn mit dem Benutzer spricht. In einem Multi-Agenten-Setup sollte nur der übergeordnete Agent die abschließende Antwort liefern. Subagenten sind Forscher und keine Antwortenden.
- Do: Zu den übergeordneten Anweisungen hinzufügen: "Du bist der einzige Agent, der mit dem Benutzer kommuniziert. Kombinieren Sie Ergebnisse von allen untergeordneten Agenten in einer einzigen Antwort."
- Nicht: Lassen Sie es mehrdeutig. Ohne explizite Anleitung antworten Subagenten direkt auf den Benutzer, was duplizierte oder teilweise Nachrichten verursacht.
2. Anweisungen für Subagenten müssen ihre Rolle deklarieren
Teilen Sie Subagenten immer mit, dass sie Subagenten sind. Subagenten wissen nicht, dass sie Teil einer Orchestrierung sind. Ohne explizite Anleitung verhalten sie sich als eigenständige Agents und senden Nachrichten direkt an den Benutzer.
- Do: Füge zu den Anweisungen jedes Subagenten hinzu: "Du bist ein Subagent. Antworten Sie nicht direkt auf den Benutzer. Ihre Aufgabe besteht darin, nach Informationen zu suchen und Ihre Ergebnisse an den übergeordneten Agenten zurückzugeben. Der übergeordnete Agent verarbeitet die gesamte Kommunikation mit dem Benutzer."
- Nicht: Gehen Sie davon aus, dass Subagenten das Orchestrierungsmuster selbst ermitteln.
3. Verwenden Sie klare, direkte Sprache in Anweisungen
Verwenden Sie immer direktive Sprache. Vermeiden Sie weiche oder höfliche Ausdrücke. Die Plattform fügt Anweisungen auf Systemebene mithilfe starker Sprache ein (MUST, DO NOT, NEVER). Anweisungen, die mit softer Sprache geschrieben wurden ("Bitte versuchen Sie es", "Sie sollten", "es wäre gut zu sein") verlieren Priorität, wenn sie in Konflikt stehen.
- Do: "Antworten Sie dem Benutzer NIEMALS direkt. Geben Sie nur Ihre Ergebnisse zurück."
- Do: "Es muss genau eine endgültige Antwort pro Benutzerfrage geben."
- Nicht: "Versuchen Sie, das Senden von Nachrichten an den Benutzer zu vermeiden, und geben Sie stattdessen Ihre Ergebnisse zurück."
- Nicht: "Idealerweise wollen wir eine einzige kombinierte Antwort."
4. Verwenden Sie eine Wissensquelle pro Subagent (keine Überlappung)
Weisen Sie jedem Subagenten eigene, sich nicht überschneidende Wissensquellen zu. Wenn zwei Subagenten dieselbe Wissensbasis durchsuchen, findet ein Unteragent zuerst die Antwort. Der zweite Subagent gibt entweder doppelte Ergebnisse zurück oder überspringt die Suche vollständig und fügt keinen Wert hinzu.
- Do: CA-1 durchsucht Knowledge Source A (z. B. PERSONALrichtlinien). CA-2 durchsucht Knowledge Source B (z. B. IT-Dokumentation).
- Nicht: Gewähren Sie beiden Unteragenten Zugriff auf dieselben Dokumente, Dataverse-Tabellen oder SharePoint-Websites.
- Hinweis: Wenn Sie nur über eine Wissensquelle verfügen, verwenden Sie einen einzelnen Agent mit Wissen, anstatt in zwei Subagenten aufzuteilen. Multi-Agent addiert nur dann Wert, wenn Quellen wirklich unterschiedlich sind.
5. Verwenden Sie genaue und unterschiedliche Beschreibungen für Subagenten.
Schreiben Sie klare, unterschiedliche Beschreibungen für jeden Subagent, der für das übergeordnete Element sichtbar ist. Der übergeordnete Agent verwendet die Beschreibungen der Subagenten, um über das Routing zu entscheiden. Wenn Beschreibungen vage, identisch oder ungenau sind, kann das Elternteil keine guten Routingentscheidungen treffen.
- Do: CA-1: "Durchsucht HR-Richtliniendokumente nach mitarbeiterbezogenen Fragen." CA-2: "Durchsucht die IT-Wissensdatenbank nach Fragen zum technischen Support."
- Nicht: Geben Sie beiden Agents dieselbe Beschreibung, wenn sie verschiedene Domänen bedienen.
- Nicht: Verwenden Sie allgemeine Beschreibungen wie "Dieser Agent kann bei Fragen helfen".
6. Übergeordnete Anweisungen müssen das Orchestrierungsmuster definieren.
Teilen Sie dem übergeordneten Agenten mit, wie orchestriert werden soll. Sagen Sie nicht nur "Kinderagenten verwenden". Das übergeordnete Element benötigt explizite Anweisungen für das Muster: Aufrufen von Agents, Warten auf Ergebnisse, Kombinieren und Antworten.
- Do: "Wenn der Benutzer eine Frage stellt: 1. Rufen Sie beide untergeordneten Agenten auf, um Informationen zu sammeln. 2. Warten Sie, bis beide Kinderagenten ihre Ergebnisse zurückgeben. 3. Kombinieren Sie die Ergebnisse in einer einzigen, einheitlichen Antwort. 4. Liefern Sie genau eine Antwort an den Benutzer. Kinderagenten dürfen dem Benutzer nicht direkt antworten."
- Nicht: "Wenn der Benutzer eine Frage stellt, rufen Sie untergeordnete Agents auf, und rufen Sie die Antwort von beiden Quellen ab, und geben Sie eine einzige kombinierte Antwort." (Zu vage. Die Anweisung teilt Subagenten nicht mit, im Stillen zu bleiben.)
7. Fügen Sie die Anweisung „keine direkte Antwort“ in die Aufgabenzuweisung ein.
Auch mit klaren Subagentenanweisungen bietet das Hinzufügen von Verstärkung in der delegierten Aufgabe ein Sicherheitsnetz.
- Do: Zu den Anweisungen für den übergeordneten Agenten hinzufügen: "Wenn Sie an einen untergeordneten Agenten delegieren, fügen Sie der Aufgabe immer Folgendes hinzu: 'Geben Sie nur Ihre Ergebnisse zurück. Antworten Sie nicht auf den Benutzer.'"
- Nicht: Verlassen Sie sich ausschließlich auf die eigenen Anweisungen des Subagents. Der Aufgabenkontext gibt dem Subagent mehr Signale, die das Muster verstärken.
8. Testen Sie mit Abfragen mit nicht übereinstimmender Domäne
Testen Sie immer mit Fragen, die nicht mit der Domäne eines Subagents übereinstimmen. Diese Tests zeigen, ob Subagenten korrekt „keine Informationen gefunden“ zurückgeben, statt möglicherweise falsche Informationen zu liefern, hängen zu bleiben oder verwirrende Meldungen zu senden.
- Tun Sie Folgendes: Testen Sie mit Anfragen außerhalb der Domänen aller Unteragenten (zum Beispiel nach dem Wetter fragen, wenn Agenten für Personalwesen und IT zuständig sind).
- Ausführen: Überprüfen Sie, dass das übergeordnete Element „beide Agenten haben nichts gefunden“ ordnungsgemäß verarbeitet.
- Nicht: Testen Sie nur mit einfachsten Fallabfragen, die perfekt mit der Domäne eines Subagents übereinstimmen.
9. Verwenden Sie lieber „fragen“ statt „informieren“, wenn Sie eine Rückmeldung erwarten
Verwenden Sie Frage-/Antwort-Interaktionen, wenn Sie eine Antwort des Benutzers erwarten. Verwenden Sie inform/send-style nur für abschließende Einweg-Nachrichten. Wenn der Agent dem Benutzer über eine Einwegnachricht (Inform) etwas mitteilt, wird die Antwort des Benutzers als komplett neue Abfrage an den übergeordneten Planer zurückgeleitet. In diesem Fall ist es besser, dieselbe Unterhaltung mit dem Subagent fortzusetzen.
- Do: Verfasse Anweisungen wie: „Wenn du eine Klärung brauchst, stelle dem Nutzer eine Frage und warte auf seine Antwort.“
- Nicht: Schreiben Sie Anweisungen wie: "Informieren Sie den Benutzer über die Optionen, und lassen Sie sie auswählen." "Inform" signalisiert eine unidirektionale Nachricht, während "Ask" einen bidirektionale Austausch signalisiert.
Schnellreferenz-Checkliste
| # | Überprüfen |
|---|---|
| 1 | Übergeordnete Anweisungen legen ausdrücklich fest: „Nur ich antworte dem Benutzer.“ |
| 2 | Jede Subagent-Anweisung sagt"Nicht direkt auf den Benutzer antworten" |
| 3 | Anweisungen sind stark direktiv formuliert (MUSS, NIEMALS, NUR) |
| 4 | Jeder Subagent hat eine eigene, sich nicht überschneidende Wissensquelle. |
| 5 | Beschreibungen von Subagenten sind genau, eindeutig und spezifisch. |
| 6 | Übergeordnete Anweisungen definieren das vollständige Orchestrierungsmuster (aufrufen → Warten → kombinieren → Antworten) |
| 7 | Elternelement übergibt „keine direkte Antwort“ im Kontext einer delegierten Aufgabe |
| 8 | Getestet mit Domänenkonfliktabfragen |
| 9 | Die Unterscheidung zwischen Fragen und Informieren ist in Anweisungen für Subagenten korrekt |
Verwandte Informationen
- Hinzufügen von Übersicht über weitere Agenten
- Fügen Sie einen Kinderagenten hinzu
- Verbinden mit einem vorhandenen Copilot Studio-Agent
- Verbinden Sie sich mit einem Microsoft Foundry-Agenten
- Verbinden mit einem Microsoft Fabric Data Agent
- Verbinden mit einem Microsoft 365 Agents SDK-Agenten
- Verbinden Sie einen Agenten, der über das Agent2Agent (A2A)-Protokoll verfügbar ist,