(Klicka på bilden ovan för att se video av denna lektion)
Så snart du börjar arbeta med ett projekt som involverar flera agenter behöver du överväga multi-agent designmönster. Det kan dock inte vara omedelbart tydligt när man ska övergå till multi-agenter och vilka fördelarna är.
I denna lektion försöker vi besvara följande frågor:
Efter denna lektion bör du kunna:
Vad är den större bilden?
Multi-agenter är ett designmönster som tillåter flera agenter att arbeta tillsammans för att uppnå ett gemensamt mål.
Detta mönster används i stor utsträckning inom olika områden, inklusive robotik, autonoma system och distribuerad databehandling.
Så vilka scenarier är ett bra användningsfall för att använda multi-agenter? Svaret är att det finns många scenarier där användning av flera agenter är fördelaktigt, särskilt i följande fall:
Ett system med en enskild agent kan fungera bra för enkla uppgifter, men för mer komplexa uppgifter kan användning av flera agenter erbjuda flera fördelar:
Låt oss ta ett exempel: boka en resa för en användare. Ett system med en enda agent skulle behöva hantera alla aspekter av resebokningsprocessen, från att hitta flyg till att boka hotell och hyrbilar. För att uppnå detta med en enda agent skulle agenten behöva ha verktyg för att hantera alla dessa uppgifter. Detta kan leda till ett komplext och monolitiskt system som är svårt att underhålla och skala. Ett multi-agent system, å andra sidan, kan ha olika agenter specialiserade på att hitta flyg, boka hotell och hyrbilar. Detta skulle göra systemet mer modulärt, lättare att underhålla och skalbart.
Jämför detta med en resebyrå som drivs som en småskalig butik jämfört med en resebyrå som drivs som en franchise. Småbutiken skulle ha en enda agent som hanterar alla aspekter av resebokningsprocessen, medan franchisen skulle ha olika agenter som hanterar olika delar av processen.
Innan du kan implementera multi-agent designmönstret behöver du förstå byggstenarna som utgör mönstret.
Låt oss göra detta mer konkret genom att återigen titta på exemplet att boka en resa för en användare. I detta fall skulle byggstenarna inkludera:
Det är viktigt att du har insyn i hur flera agenter interagerar med varandra. Denna insyn är avgörande för felsökning, optimering och att säkerställa systemets övergripande effektivitet. För att uppnå detta behöver du verktyg och tekniker för att spåra agenters aktiviteter och interaktioner. Detta kan vara i form av loggnings- och övervakningsverktyg, visualiseringsverktyg och prestationsmått.
Till exempel, vid bokning av en resa för en användare, kan du ha en instrumentbräda som visar status för varje agent, användarens preferenser och begränsningar samt interaktionerna mellan agenter. Denna instrumentbräda kan visa användarens resedatum, de flyg som rekommenderas av flygagenten, de hotell som rekommenderas av hotellagenten och hyrbilar som rekommenderas av hyrbilsagenten. Detta skulle ge dig en tydlig bild av hur agenterna interagerar med varandra och om användarens preferenser och begränsningar uppfylls.
Låt oss titta närmare på varje aspekt.
Logg- och övervakningsverktyg: Du vill logga varje åtgärd som en agent utför. En loggpost kan lagra information om agenten som utförde åtgärden, vilken åtgärd som utfördes, när den utfördes och resultatet av åtgärden. Denna information kan sedan användas för felsökning, optimering och mer.
Visualiseringsverktyg: Visualiseringsverktyg kan hjälpa dig att se interaktionerna mellan agenter på ett mer intuitivt sätt. Till exempel kan du ha en graf som visar informationsflödet mellan agenter. Detta kan hjälpa dig att identifiera flaskhalsar, ineffektivitet och andra problem i systemet.
Prestationsmått: Prestationsmått kan hjälpa dig att följa effektiviteten i multi-agent systemet. Till exempel kan du följa tiden det tar att slutföra en uppgift, antalet uppgifter som slutförs per tidsenhet och noggrannheten i de rekommendationer som agenterna ger. Denna information kan hjälpa dig att identifiera förbättringsområden och optimera systemet.
Låt oss dyka in i några konkreta mönster vi kan använda för att skapa multi-agent-appar. Här är några intressanta mönster värda att överväga:
Detta mönster är användbart när du vill skapa en gruppchattapplikation där flera agenter kan kommunicera med varandra. Typiska användningsfall för detta mönster inkluderar teamarbete, kundsupport och sociala nätverk.
I detta mönster representerar varje agent en användare i gruppchatten, och meddelanden utbyts mellan agenter med hjälp av ett meddelandeprotokoll. Agenterna kan skicka meddelanden till gruppchatten, ta emot meddelanden från gruppchatten och svara på meddelanden från andra agenter.
Detta mönster kan implementeras med en centraliserad arkitektur där alla meddelanden går via en central server, eller en decentraliserad arkitektur där meddelanden utbyts direkt.

Detta mönster är användbart när du vill skapa en applikation där flera agenter kan överlämna uppgifter till varandra.
Typiska användningsfall för detta mönster inkluderar kundsupport, uppgiftshantering och arbetsflödesautomatisering.
I detta mönster representerar varje agent en uppgift eller ett steg i ett arbetsflöde, och agenter kan överlämna uppgifter till andra agenter baserat på fördefinierade regler.

Detta mönster är användbart när du vill skapa en applikation där flera agenter kan samarbeta för att ge rekommendationer till användare.
Anledningen till att man vill att flera agenter ska samarbeta är att varje agent kan ha olika expertis och kan bidra till rekommendationsprocessen på olika sätt.
Låt oss ta ett exempel där en användare vill ha en rekommendation på den bästa aktien att köpa på börsen.

Tänk på ett scenario där en kund försöker få en återbetalning för en produkt. Det kan finnas ganska många agenter involverade i denna process, men låt oss dela upp det mellan agenter specifika för denna process och generella agenter som kan användas i andra processer.
Agenter specifika för återbetalningsprocessen:
Följande är några agenter som kan vara involverade i återbetalningsprocessen:
Generella agenter:
Dessa agenter kan användas av andra delar av din verksamhet.
Det finns ganska många agenter listade tidigare, både för den specifika återbetalningsprocessen och för de generella agenterna som kan användas i andra delar av din verksamhet. Förhoppningsvis ger detta dig en idé om hur du kan bestämma vilka agenter du ska använda i ditt multi-agent system.
Designa ett multi-agent system för en kundsupportprocess. Identifiera vilka agenter som ingår i processen, deras roller och ansvar, samt hur de interagerar med varandra. Tänk på både agenter specifika för kundsupportprocessen och generella agenter som kan användas i andra delar av din verksamhet.
Tänk efter innan du läser följande lösning, du kan behöva fler agenter än du tror.
TIP: Tänk på de olika stegen i kundsupportprocessen och överväg också agenter som behövs för något system.
Vilket scenario passar bäst för ett multi-agent-system?
När är en enskild agent vanligtvis det bättre valet?
I denna lektion har vi tittat på multi-agent-designmönstret, inklusive scenarier där multi-agenter är tillämpliga, fördelarna med att använda multi-agenter jämfört med en enskild agent, byggstenarna för att implementera multi-agent-designmönstret samt hur man kan få insyn i hur de flera agenterna interagerar med varandra.
Anslut till Microsoft Foundry Discord för att möta andra elever, delta i kontorstider och få svar på dina frågor om AI-agenter.
Ansvarsfriskrivning: Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, var vänlig notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.