(Klikk på bildet over for å se video av denne leksjonen)
Så snart du begynner å jobbe med et prosjekt som involverer flere agenter, må du vurdere multi-agent designmønsteret. Det kan imidlertid ikke være umiddelbart klart når du skal gå over til flere agenter og hva fordelene er.
I denne leksjonen ønsker vi å svare på følgende spørsmål:
Etter denne leksjonen skal du kunne:
Hva er det større bildet?
Multi-agenter er et designmønster som tillater flere agenter å samarbeide for å oppnå et felles mål.
Dette mønsteret brukes bredt innen ulike felt, inkludert robotikk, autonome systemer, og distribuert databehandling.
Så hvilke scenarier er gode bruksområder for å bruke multi-agenter? Svaret er at det finnes mange scenarier hvor bruk av flere agenter er fordelaktig, spesielt i følgende tilfeller:
Et enkelt agent-system kan fungere bra for enkle oppgaver, men for mer komplekse oppgaver kan bruk av flere agenter gi flere fordeler:
La oss ta et eksempel, la oss bestille en tur for en bruker. Et enkelt agent-system måtte håndtere alle aspekter av bestillingsprosessen, fra å finne flyreiser til å bestille hoteller og leiebiler. For å oppnå dette med en enkelt agent måtte agenten ha verktøy for å håndtere alle disse oppgavene. Dette kunne føre til et komplekst og monolittisk system som er vanskelig å vedlikeholde og skalere. Et multi-agent system kunne derimot hatt ulike agenter spesialisert for å finne flyreiser, bestille hoteller og leiebiler. Dette ville gjøre systemet mer modulært, lettere å vedlikeholde og skalerbart.
Sammenlign dette med et reisebyrå drevet som en enkeltbutikk versus et reisebyrå drevet som en franchise. Enkeltbutikken ville hatt en enkelt agent som håndterer alle aspekter av bestillingsprosessen, mens franchisen ville hatt ulike agenter som håndterer forskjellige deler av bestillingsprosessen.
Før du kan implementere multi-agent designmønsteret, må du forstå byggesteinene som utgjør mønsteret.
La oss gjøre dette mer konkret ved å igjen se på eksempelet med å bestille en tur for en bruker. I dette tilfellet vil byggesteinene inkludere:
Det er viktig at du har innsyn i hvordan de flere agentene samhandler med hverandre. Dette innsynet er essensielt for feilsøking, optimalisering og for å sikre den overordnede systemets effektivitet. For å oppnå dette trenger du verktøy og teknikker for å spore agentenes aktiviteter og interaksjoner. Dette kan være i form av logg- og overvåkingsverktøy, visualiseringsverktøy og ytelsesmetrikker.
For eksempel, i tilfellet med å bestille en tur for en bruker, kan du ha et dashbord som viser status for hver agent, brukerens preferanser og begrensninger, og interaksjonene mellom agentene. Dette dashbordet kan vise brukerens reisedatoer, flyene som flyagenten anbefaler, hotellene som hotellagenten anbefaler, og leiebilene som leiebilagenten anbefaler. Dette gir deg en klar oversikt over hvordan agentene samhandler og om brukerens preferanser og begrensninger blir oppfylt.
La oss se nærmere på hver av disse aspektene.
Logg- og overvåkingsverktøy: Du ønsker å ha loggføring for hver handling en agent utfører. En loggoppføring kan lagre informasjon om agenten som utførte handlingen, handlingen som ble utført, tidspunktet den ble utført, og utfallet av handlingen. Denne informasjonen kan brukes til feilsøking, optimalisering og mer.
Visualiseringsverktøy: Visualiseringsverktøy kan hjelpe deg å se interaksjonene mellom agentene på en mer intuitiv måte. For eksempel kan du ha en graf som viser informasjonsflyten mellom agentene. Dette kan hjelpe deg å identifisere flaskehalser, ineffektiviteter og andre problemer i systemet.
Ytelsesmetrikker: Ytelsesmetrikker kan hjelpe deg med å følge systemets effektivitet. For eksempel kan du følge tiden det tar å fullføre en oppgave, antall oppgaver fullført per tidsenhet, og nøyaktigheten av anbefalingene fra agentene. Denne informasjonen kan hjelpe deg å identifisere forbedringsområder og optimalisere systemet.
La oss se på noen konkrete mønstre vi kan bruke for å lage multi-agent apper. Her er noen interessante mønstre verdt å vurdere:
Dette mønsteret er nyttig når du ønsker å lage en gruppechat-applikasjon hvor flere agenter kan kommunisere med hverandre. Typiske bruksområder for dette mønsteret inkluderer team-samarbeid, kundestøtte og sosiale nettverk.
I dette mønsteret representerer hver agent en bruker i gruppechatten, og meldinger sendes mellom agentene ved hjelp av en meldingsprotokoll. Agentene kan sende meldinger til gruppechatten, motta meldinger fra gruppechatten, og svare på meldinger fra andre agenter.
Dette mønsteret kan implementeres ved hjelp av en sentralisert arkitektur hvor alle meldinger går gjennom en sentral server, eller en desentralisert arkitektur hvor meldinger utveksles direkte.

Dette mønsteret er nyttig når du ønsker å lage en applikasjon hvor flere agenter kan overlevere oppgaver til hverandre.
Typiske bruksområder for dette mønsteret inkluderer kundestøtte, oppgavehåndtering og arbeidsflytautomatisering.
I dette mønsteret representerer hver agent en oppgave eller et trinn i en arbeidsflyt, og agentene kan overlevere oppgaver til andre agenter basert på forhåndsdefinerte regler.

Dette mønsteret er nyttig når du ønsker å lage en applikasjon hvor flere agenter kan samarbeide om å gi anbefalinger til brukere.
Grunnen til at du vil at flere agenter skal samarbeide er at hver agent kan ha ulik ekspertise og kan bidra til anbefalingsprosessen på forskjellige måter.
La oss ta et eksempel hvor en bruker ønsker en anbefaling om den beste aksjen å kjøpe på børsen.

Tenk deg et scenario hvor en kunde prøver å få refusjon for et produkt, det kan være ganske mange agenter involvert i denne prosessen men la oss dele opp mellom agenter spesifikke for denne prosessen og generelle agenter som kan brukes i andre prosesser.
Agenter spesifikke for refusjonsprosessen:
Følgende agenter kan være involvert i refusjonsprosessen:
Generelle agenter:
Disse agentene kan brukes i andre deler av virksomheten din.
Det er ganske mange agenter listet opp tidligere både for den spesifikke refusjonsprosessen og også for de generelle agentene som kan brukes i andre deler av virksomheten din. Forhåpentligvis gir dette deg en idé om hvordan du kan avgjøre hvilke agenter du skal bruke i ditt multi-agent system.
Design et multi-agent system for en kundestøtteprosess. Identifiser agentene involvert i prosessen, deres roller og ansvar, og hvordan de samhandler med hverandre. Vurder både agenter spesifikke for kundestøtteprosessen og generelle agenter som kan brukes i andre deler av virksomheten din.
Tenk litt før du leser løsningen nedenfor, du kan trenge flere agenter enn du tror.
TIP: Tenk på de ulike stadiene i kundestøtteprosessen og vurder også agenter som trengs for systemet.
Hvilket scenario passer best for et multi-agent system?
Når er én enkelt agent vanligvis det beste valget?
I denne leksjonen har vi sett på multi-agent designmønsteret, inkludert scenarier hvor multi-agenter er anvendelige, fordelene ved å bruke multi-agenter fremfor en enkelt agent, byggesteinene for å implementere multi-agent designmønsteret, og hvordan man får oversikt over hvordan de flere agentene samhandler.
Bli med i Microsoft Foundry Discord for å møte andre lærende, delta på kontortid og få svar på dine spørsmål om AI-agenter.
Ansvarsfraskrivelse: Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.