ai-agents-for-beginners

Multi-agent ontwerp

(Klik op de afbeelding hierboven om de video van deze les te bekijken)

Multi-agent ontwerp patronen

Zodra je begint te werken aan een project waarbij meerdere agenten betrokken zijn, moet je rekening houden met het multi-agent ontwerp patroon. Het is echter misschien niet direct duidelijk wanneer je overschakelt op multi-agenten en wat de voordelen zijn.

Introductie

In deze les proberen we de volgende vragen te beantwoorden:

Leerdoelen

Na deze les zou je in staat moeten zijn om:

Wat is het grotere geheel?

Multi-agenten zijn een ontwerp patroon dat het mogelijk maakt dat meerdere agenten samenwerken om een gemeenschappelijk doel te bereiken.

Dit patroon wordt veel gebruikt in diverse vakgebieden, waaronder robotica, autonome systemen en gedistribueerd rekenen.

Scenario’s waarin multi-agenten toepasbaar zijn

Dus welke scenario’s zijn goede toepassingen voor het gebruik van multi-agenten? Het antwoord is dat er veel scenario’s zijn waarin het inzetten van meerdere agenten voordelig is, vooral in de volgende gevallen:

Voordelen van het gebruik van multi-agenten ten opzichte van een enkele agent

Een enkel agentsysteem kan goed werken voor eenvoudige taken, maar voor complexere taken biedt het gebruik van meerdere agenten verschillende voordelen:

Laten we een voorbeeld nemen: een reis boeken voor een gebruiker. Een enkel agentsysteem zou alle aspecten van het boekingsproces moeten afhandelen, van het vinden van vluchten tot het boeken van hotels en huurauto’s. Om dit met een enkele agent te bereiken, zou de agent tools moeten hebben om al deze taken te verwerken. Dit kan leiden tot een complex en monolithisch systeem dat moeilijk te onderhouden en op te schalen is. Een multi-agent systeem kan daarentegen verschillende agenten hebben die gespecialiseerd zijn in het vinden van vluchten, het boeken van hotels en huurauto’s. Dit maakt het systeem modularer, gemakkelijker te onderhouden en schaalbaar.

Vergelijk dit met een reisbureau beheerd als een familiebedrijf versus een reisbureau beheerd als een franchise. Het familiebedrijf zou een enkele agent hebben die alle aspecten van het boekingsproces beheert, terwijl de franchise verschillende agenten zou hebben die verschillende aspecten van het boekingsproces beheren.

Bouwstenen van het implementeren van het multi-agent ontwerp patroon

Voordat je het multi-agent ontwerp patroon kunt implementeren, moet je de bouwstenen begrijpen die het patroon vormen.

Laten we dit concreter maken door opnieuw te kijken naar het voorbeeld van een reis boeken voor een gebruiker. In dit geval omvatten de bouwstenen:

Inzicht in multi-agent interacties

Het is belangrijk dat je inzicht hebt in hoe de meerdere agenten met elkaar interacteren. Dit inzicht is essentieel voor het debuggen, optimaliseren en waarborgen van de effectiviteit van het systeem. Om dit te bereiken, moet je tools en technieken hebben om agentactiviteiten en interacties te volgen. Dit kan in de vorm zijn van logging- en monitoringshulpmiddelen, visualisatiehulpmiddelen en prestatiestatistieken.

Bijvoorbeeld, in het geval van het boeken van een reis voor een gebruiker, zou je een dashboard kunnen hebben dat de status toont van elke agent, de voorkeuren en beperkingen van de gebruiker, en de interacties tussen agenten. Dit dashboard zou de reisdata van de gebruiker kunnen tonen, de vluchten aanbevolen door de vluchtagent, de hotels aanbevolen door de hotelagent, en de huurauto’s aanbevolen door de huurauto-agent. Dit zou je een duidelijk beeld geven van hoe de agenten met elkaar interacteren en of de voorkeuren en beperkingen van de gebruiker worden nageleefd.

Laten we elk van deze aspecten wat gedetailleerder bekijken.

Multi-agent patronen

Laten we enkele concrete patronen bekijken die we kunnen gebruiken om multi-agent apps te creëren. Hier zijn enkele interessante patronen om te overwegen:

Groepschat

Dit patroon is nuttig wanneer je een groepschatapplicatie wilt maken waarbij meerdere agenten met elkaar kunnen communiceren. Typische gebruikssituaties voor dit patroon zijn team samenwerking, klantenondersteuning en sociale netwerken.

In dit patroon vertegenwoordigt elke agent een gebruiker in de groepschat, en worden berichten uitgewisseld tussen agenten via een berichtenprotocol. De agenten kunnen berichten naar de groepschat sturen, berichten ontvangen van de groepschat, en reageren op berichten van andere agenten.

Dit patroon kan worden geïmplementeerd met een gecentraliseerde architectuur waarbij alle berichten via een centrale server worden geleid, of een gedecentraliseerde architectuur waarbij berichten direct worden uitgewisseld.

Groepschat

Overdracht

Dit patroon is nuttig wanneer je een applicatie wilt maken waarbij meerdere agenten taken aan elkaar kunnen overdragen.

Typische gebruikssituaties voor dit patroon zijn klantenondersteuning, taakbeheer en workflowautomatisering.

In dit patroon vertegenwoordigt elke agent een taak of een stap in een workflow, en kunnen agenten taken aan andere agenten overdragen op basis van vooraf bepaalde regels.

Overdracht

Samenwerkende filtering

Dit patroon is nuttig wanneer je een applicatie wilt maken waarbij meerdere agenten samenwerken om aanbevelingen aan gebruikers te doen.

De reden waarom je meerdere agenten wilt laten samenwerken is omdat elke agent verschillende expertise kan hebben en op verschillende manieren kan bijdragen aan het aanbevelingsproces.

Laten we een voorbeeld nemen waarbij een gebruiker een aanbeveling wil over de beste aandelen om te kopen op de aandelenmarkt.

Aanbeveling

Scenario: Teruggaveproces

Beschouw een scenario waarin een klant probeert een terugbetaling voor een product te krijgen. Er kunnen behoorlijk wat agenten betrokken zijn bij dit proces, maar laten we het verdelen tussen agenten die specifiek zijn voor dit proces en algemene agenten die in andere processen kunnen worden gebruikt.

Agenten specifiek voor het teruggaveproces:

Hier zijn enkele agenten die betrokken kunnen zijn bij het teruggaveproces:

Algemene agenten:

Deze agenten kunnen door andere onderdelen van je bedrijf worden gebruikt.

Er zijn behoorlijk wat agenten genoemd, zowel voor het specifieke teruggaveproces als voor de algemene agenten die in andere delen van je bedrijf kunnen worden gebruikt. Hopelijk geeft dit je een idee hoe je kunt beslissen welke agenten je in je multi-agent systeem kunt gebruiken.

Opdracht

Ontwerp een multi-agent systeem voor een klantenondersteuningsproces. Identificeer de agenten die betrokken zijn bij het proces, hun rollen en verantwoordelijkheden, en hoe zij met elkaar interacteren. Overweeg zowel agenten die specifiek zijn voor het klantenondersteuningsproces als algemene agenten die in andere delen van je bedrijf kunnen worden gebruikt.

Denk er even over na voordat je de volgende oplossing leest, je hebt misschien meer agenten nodig dan je denkt.

TIP: Denk na over de verschillende fasen van het klantenserviceproces en overweeg ook de agenten die nodig zijn voor elk systeem.

Oplossing

Oplossing

Kenniscontroles

Vraag 1

Welke situatie is het meest geschikt voor een multi-agentensysteem?

Vraag 2

Wanneer is één enkele agent meestal de betere keuze?

Oplossing quiz

Samenvatting

In deze les hebben we gekeken naar het multi-agent ontwerpprincipe, inclusief de scenario’s waarbij multi-agenten toepasbaar zijn, de voordelen van het gebruik van multi-agenten boven een enkele agent, de bouwstenen voor het implementeren van het multi-agent ontwerpprincipe, en hoe inzicht te krijgen in hoe de verschillende agenten met elkaar samenwerken.

Meer vragen over het Multi-Agent Ontwerpprincipe?

Sluit je aan bij de Microsoft Foundry Discord om andere leerlingen te ontmoeten, deel te nemen aan office hours en je vragen over AI Agenten beantwoord te krijgen.

Aanvullende bronnen

Vorige les

Planning Design

Volgende les

Metacognitie in AI Agenten


Disclaimer: Dit document is vertaald met behulp van de AI vertaaldienst Co-op Translator. Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.