Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Generatieve orkestratie ondersteunt ook multi-agent-systemen, waarbij de ene agent andere agents aanroept. Door problemen op te splitsen in meerdere gespecialiseerde agents, maakt u uw applicatie modulairder, schaalbaarder en beter beheersbaar.
Inline agentes
Inline agents, ook wel onderliggende agents genoemd, zijn kleine, herbruikbare werkstromen binnen dezelfde agent. Het zijn vaak gewoon topics die de hoofdagent als subroutines gebruikt. De hoofdagent kan bijvoorbeeld een topic "Tekst vertalen" aanroepen als een stap in een groter plan. Inline agents delen context met de hoofdagent, waardoor het doorgeven van gegevens tussen hen eenvoudig is.
Best practice: Houd inline agents gefocust op één enkele verantwoordelijkheid en test ze goed.
Verbonden agents
Verbonden agents zijn afzonderlijke agents met hun eigen orkestratie, tools en kennis. De hoofdagent delegeert een deel van een verzoek aan een onderliggende agent. Een IT-agent belt bijvoorbeeld een verkoopagent om informatie over prijzen te verkrijgen. Verbonden agents maken modulariteit en domeinscheiding mogelijk en kunnen abonnementslimieten omzeilen. Ze kunnen verschillende privileges of kennis hebben, dus pas governance- en auditcontroles toe.
Het gebruik van verbonden agents vereist echter zorgvuldige governance:
Orkestratie: De bovenliggende orchestrator moet duidelijke criteria hebben voor wanneer de taak moet worden overgedragen aan een verbonden agent. De orchestrator draagt de taak meestal over wanneer de intentie van de gebruiker overeenkomt met het domein van de verbonden agent. Om dit proces te ondersteunen, moet het doel van de verbonden agent duidelijk worden beschreven in de bovenliggende configuratie. Beschouw de volledige verbonden agent als een agentische tool met een beschrijving, vanuit het perspectief van de bovenliggende agent.
Gegevensoverdracht: U moet de gegevensoverdracht beheren. Bepaal welke context van het bovenliggende item moet worden doorgegeven aan de verbonden agent. Copilot Studio geeft standaard de gespreksgeschiedenis door wanneer een agent een andere agent belt, zodat de verbonden agent de eerdere context van het gesprek begrijpt. Maar het kan nodig zijn om ook specifieke parameters door te geven. Als de hoofdagent bijvoorbeeld de naam van de gebruiker al weet, kan deze naar de verbonden agent worden verzonden om te voorkomen dat er opnieuw naar gevraagd wordt.
Beveiliging: De verbonden agent heeft mogelijk toegang tot zaken waar de hoofdagent geen toegang toe heeft. Zorg ervoor dat het bellen van de verbonden agent niet per ongeluk beperkingen omzeilt. Als de hoofdagent bijvoorbeeld geen records mag verwijderen, maar de verbonden agent wel, mag de hoofdagent de verbonden agent niet bellen in scenario's waarin verwijdering zonder de juiste goedkeuring kan plaatsvinden. Behandel een gesprek met een verbonden agent als elke andere krachtige actie. Als het om iets gevoeligs gaat, moet het onderworpen worden aan de nodige controles of toestemming van de gebruiker.
Controle en monitoring: Registreer wanneer een verbonden agent is aangeroepen en wat deze heeft gedaan. Omdat het een aparte agent is, heeft u er aparte transcripten voor. Het is belangrijk voor debugging om de ouder- en verbonden sessies te correleren. Normaal gesproken koppelen identificatoren in de telemetrie de twee aan elkaar.
Wanneer aparte agents gebruiken?
Maak geen aparte agent voor elke subtaak. Gebruik aparte agents als de subtaak:
- Complex genoeg is om een eigen set tools of kennis te vereisen (ander expertisegebied)
- Andere governance-regels of toegangscontroles vereist dan de hoofdagent
- Herbruikbaar is in meerdere hoofdagents (dus als een serviceagent)
Als geen van deze voorwaarden van toepassing is, kan een eenvoudige inline agent de taak prima afhandelen en is deze bovendien eenvoudiger dan een volledig verbonden agent. Afzonderlijke agents introduceren overhead in het systeem. De uitvoeringstijd is iets langer vanwege contextwisseling en het onderhouden van meerdere agents is complexer. Gebruik ze dus met beleid. Begin voor een praktische aanpak met één agent. Splits alleen op in meerdere agents wanneer u duidelijk een behoefte aan modulariteit ziet of een grens die een enkele agent niet mag overschrijden.
Aanbevolen procedures voor indeling met meerdere agents
De volgende best practices zijn van toepassing bij het schrijven van instructies voor bovenliggende en subagents in een multi-agent setup.
1. Principe van één antwoord
Zorg ervoor dat slechts één agent per beurt met de gebruiker praat. In een multi-agent setup is de bovenliggende agent de enige die het uiteindelijke antwoord moet geven. Subagents zijn onderzoekers, geen antwoordgevers.
- Doen: voeg het volgende toe aan instructies voor bovenliggende agents: "U bent de enige agent die met de gebruiker communiceert. Combineer de bevindingen van alle onderliggende agents in één antwoord."
- Niet doen: Laat het in het midden. Zonder expliciete instructies antwoorden subagents rechtstreeks op de gebruiker, wat leidt tot dubbele of gedeeltelijke berichten.
2. Instructies voor subagents moeten hun rol aangeven
Vertel subagents altijd dat ze subagents zijn. Subagenten weten niet van nature dat ze deel uitmaken van een orkestratie. Zonder expliciete instructies gedragen ze zich als zelfstandige agenten en sturen ze berichten rechtstreeks naar de gebruiker.
- Wel doen: Voeg aan de instructies van elke subagent toe: "U bent een subagent. Reageer NIET rechtstreeks op de gebruiker. Het is uw taak om informatie te zoeken en uw bevindingen terug te sturen naar de hoofdagent. De bovenliggende agent verwerkt alle communicatie met de gebruiker."
- Niet doen: Ga er niet van uit dat subagenten het orkestratiepatroon zelf ontdekken.
3. Gebruik duidelijke, directe taal in instructies
Gebruik altijd een directieve formulering. Vermijd zachte of beleefde formuleringen. Het platform injecteert instructies op systeemniveau door sterke taal te gebruiken (MOET, NIET, NOOIT). Instructies die met zachte taal zijn geschreven ("probeer", "u zou moeten", "het zou goed zijn om") verliezen prioriteit wanneer ze conflicteren.
- Wel doen: "Reageer NOOIT rechtstreeks op de gebruiker. Geef ALLEEN uw bevindingen terug."
- Wel doen: "Er moet precies één definitief antwoord per gebruikersvraag zijn."
- Niet doen: "Probeer te voorkomen dat uw berichten naar de gebruiker stuurt en geef in plaats daarvan uw bevindingen terug."
- Niet doen: "Idealiter willen we één gecombineerd antwoord."
4. Gebruik één kennisbron per subagent (geen overlap)
Wijs aan elke subagent afzonderlijke, niet-overlappende kennisbronnen toe. Als twee subagenten dezelfde kennisbank doorzoeken, vindt de ene subagent het antwoord als eerste. De tweede subagent geeft ofwel dubbele resultaten terug, ofwel slaat de zoekopdracht volledig over en voegt niets toe.
- Wel doen: CA-1 doorzoekt kennisbron A (bijvoorbeeld HR-beleid). CA-2 doorzoekt kennisbron B (bijvoorbeeld IT-documentatie).
- Niet doen: Geef beide subagents toegang tot dezelfde documenten, Dataverse-tabellen of SharePoint-sites.
- Opmerking: Als u slechts één kennisbron hebt, gebruik dan één agent met kennis in plaats van deze op te splitsen in twee subagents. Multi-agent biedt alleen toegevoegde waarde wanneer de bronnen daadwerkelijk verschillend zijn.
5. Gebruik nauwkeurige en onderscheidende beschrijvingen voor subagents
Schrijf duidelijke, onderscheidende beschrijvingen voor elke subagent die zichtbaar is voor de bovenliggende. De bovenliggende agent gebruikt de beschrijvingen van de subagents om de routering te bepalen. Als beschrijvingen vaag, identiek of onnauwkeurig zijn, kan de bovenliggende agent geen goede routeringsbeslissingen nemen.
- Wel doen: CA-1: "Doorzoekt HR-beleidsdocumenten voor vragen met betrekking tot werknemers." CA-2: "Doorzoekt de IT-kennisbank voor vragen over technische ondersteuning."
- Niet doen: Geef beide agenten dezelfde beschrijving als ze verschillende domeinen bedienen.
- Niet doen: Gebruik algemene beschrijvingen zoals 'Deze agent kan u helpen met vragen'.
6. Instructies voor bovenliggende agents moeten het indelingspatroon definiëren
Vertel de bovenliggende agent hoe deze moet indelen. Zeg niet alleen "gebruik onderliggende agents". De bovenliggende agent heeft expliciete instructies nodig over het patroon: roep agents aan, wacht op resultaten, combineer deze en reageer vervolgens.
- Wel doen: "Wanneer de gebruiker een vraag stelt: 1. Roep beide onderliggende agents aan om informatie te verzamelen. 2. Wacht op de bevindingen van beide onderliggende agents. 3. Combineer de bevindingen in één enkel, uniform antwoord. 4. Lever precies één antwoord aan de gebruiker. Onderliggende agents mogen de gebruiker niet rechtstreeks beantwoorden."
- Niet doen: "Wanneer de gebruiker een vraag stelt, roep dan onderliggende agenten aan en ontvang het antwoord van beide bronnen en geef één gecombineerd antwoord." (Te vaag. Instructie vertelt subagenten niet dat ze moeten zwijgen.)
7. Neem de richtlijn 'geen direct antwoord' op in de taakdelegatie
Zelfs met duidelijke subagentinstructies biedt het toevoegen van versterking aan de gedelegeerde taak een vangnet.
- Doen: voeg het volgende toe aan instructies voor bovenliggende agents: "Wanneer u delegeert aan een onderliggende agent, moet u altijd het volgende opnemen in de taak: 'Geef alleen uw bevindingen.' Reageer niet op de gebruiker.
- Niet doen: Vertrouw uitsluitend op de instructies van de subagent. De taakcontext geeft de subagent meer signalen die het patroon versterken.
8. Test met domein-mismatch-queries
Test altijd met vragen die niet overeenkomen met het domein van een subagent. Deze test laat zien of subagents netjes 'geen informatie gevonden' retourneren in plaats van informatie te geven die mogelijk onjuist is, vast te lopen of verwarrende berichten te sturen.
- Wel doen: Test met query's buiten alle subagentdomeinen (vraag bijvoorbeeld naar het weer wanneer agenten HR en IT afhandelen).
- Do: controleer of de bovenliggende agent 'beide agents hebben niets gevonden' op een nette manier afhandelt.
- Niet doen: Test alleen met de eenvoudigste query's die perfect overeenkomen met het domein van één subagent.
9. Geef de voorkeur aan vragen boven informeren wanneer u een vervolg verwacht
Gebruik interacties in de stijl van vragen wanneer u een reactie van de gebruiker verwacht. Gebruik interacties in de stijl van informeren alleen voor definitieve eenrichtingsberichten. Als de agent de gebruiker iets meedeelt via een éénrichtingsbericht (informeert), wordt het antwoord van de gebruiker als een volledig nieuwe query teruggestuurd naar de bovenliggende planner. In dit geval is het beter om hetzelfde gesprek met de subagent voort te zetten.
- Wel doen: Schrijf instructies zoals: ‘Als u verduidelijking nodig hebt, stel de gebruiker dan een vraag en wacht op zijn/haar antwoord.'
- Niet doen: Schrijf instructies zoals: ‘Informeer de gebruiker over de opties en laat hem/haar kiezen’ ‘Informeren’ geeft een eenrichtingsbericht aan, terwijl "vragen" een tweerichtingsuitwisseling aangeeft.
Controlelijst voor snelle referentie
| # | Controle |
|---|---|
| 1 | In de instructies voor de bovenliggende agent staat expliciet vermeld: ‘alleen ik reageer op de gebruiker’ |
| 2 | In elke instructie voor de subagent staat: 'reageer niet rechtstreeks op de gebruiker’ |
| 3 | De instructies bevatten krachtige, dwingende bewoordingen (MOET, NOOIT, ALLEEN) |
| 4 | Elke subagent heeft een unieke, niet-overlappende kennisbron |
| 5 | Beschrijvingen van subagenten zijn nauwkeurig, duidelijk en specifiek |
| 6 | Bovenliggende instructies definiëren het volledige orkestratiepatroon (aanroepen → wachten → combineren → reageren) |
| 7 | Bovenliggende agent geeft 'geen direct antwoord' door in de context van gedelegeerde taken |
| 8 | Getest met domeinmismatchquery's |
| 9 | Het onderscheid tussen 'vragen' en 'informeren' is correct in de instructies voor subagenten |
Gerelateerde informatie
- Overzicht andere agents toevoegen
- Een onderliggende agent toevoegen
- Verbinden met een bestaande Copilot Studio-agent
- Verbinden met een Microsoft Foundry-agent
- Verbinden met een Microsoft Fabric Data-agent
- Verbinden met een SDK voor Microsoft 365-agent
- Verbinden met een agent die beschikbaar is via het Agent2Agent (A2A)-protocol