ai-agents-for-beginners

Bruk av Agentiske Protokoller (MCP, A2A og NLWeb)

Agentiske Protokoller

Etter hvert som bruken av AI-agenter øker, vokser også behovet for protokoller som sikrer standardisering, sikkerhet og støtter åpen innovasjon. I denne leksjonen skal vi dekke tre protokoller som tar sikte på å møte dette behovet - Model Context Protocol (MCP), Agent to Agent (A2A) og Natural Language Web (NLWeb).

Introduksjon

I denne leksjonen skal vi dekke:

• Hvordan MCP lar AI-agenter få tilgang til eksterne verktøy og data for å utføre brukeroppgaver.

• Hvordan A2A muliggjør kommunikasjon og samarbeid mellom ulike AI-agenter.

• Hvordan NLWeb bringer grensesnitt for naturlig språk til enhver nettside, slik at AI-agenter kan oppdage og interagere med innholdet.

Læringsmål

Identifisere hovedformålet og fordelene med MCP, A2A og NLWeb i konteksten av AI-agenter.

Forklare hvordan hver protokoll legger til rette for kommunikasjon og interaksjon mellom LLM-er, verktøy og andre agenter.

Gjenkjenne de ulike rollene hver protokoll spiller i byggingen av komplekse agentiske systemer.

Model Context Protocol

Model Context Protocol (MCP) er en åpen standard som gir en standardisert måte for applikasjoner å tilby kontekst og verktøy til LLM-er. Dette muliggjør en “universell adapter” til ulike datakilder og verktøy som AI-agenter kan koble seg til på en konsistent måte.

La oss se på komponentene i MCP, fordelene sammenlignet med direkte API-bruk, og et eksempel på hvordan AI-agenter kan bruke en MCP-server.

MCP Kjernekomponenter

MCP opererer på en klient-server-arkitektur, og kjernekomponentene er:

Hosts er LLM-applikasjoner (for eksempel en kodeeditor som VSCode) som starter tilkoblinger til en MCP-server.

Klienter er komponenter innenfor host-applikasjonen som opprettholder én-til-én-tilkoblinger med servere.

Servere er lette programmer som eksponerer spesifikke funksjoner.

Protokollen inkluderer tre kjerneprimitiver som er MCP-serverens funksjoner:

Verktøy: Dette er diskrete handlinger eller funksjoner en AI-agent kan kalle for å utføre en oppgave. For eksempel kan en vær-tjeneste eksponere et “hent vær”-verktøy, eller en e-handelsserver kan eksponere et “kjøp produkt”-verktøy. MCP-servere annonserer hvert verktøys navn, beskrivelse og input/output-skjema i sin funksjonsliste.

Ressurser: Dette er skrivebeskyttede dataelementer eller dokumenter som en MCP-server kan tilby, og klienter kan hente dem på forespørsel. Eksempler inkluderer filinnhold, databaseposter eller loggfiler. Ressurser kan være tekst (som kode eller JSON) eller binære (som bilder eller PDF-er).

Prompter: Dette er forhåndsdefinerte maler som gir foreslåtte prompter, og muliggjør mer komplekse arbeidsflyter.

Fordeler med MCP

MCP gir betydelige fordeler for AI-agenter:

Dynamisk verktøyoppdagelse: Agenter kan dynamisk motta en liste over tilgjengelige verktøy fra en server sammen med beskrivelser av hva de gjør. Dette står i kontrast til tradisjonelle API-er, som ofte krever statisk koding for integrasjoner, noe som betyr at enhver API-endring krever kodeoppdateringer. MCP tilbyr en “integrer én gang”-tilnærming, som gir større fleksibilitet.

Interoperabilitet på tvers av LLM-er: MCP fungerer på tvers av ulike LLM-er, og gir fleksibilitet til å bytte kjerne-modeller for å evaluere bedre ytelse.

Standardisert sikkerhet: MCP inkluderer en standard autentiseringsmetode, som forbedrer skalerbarheten når man legger til tilgang til flere MCP-servere. Dette er enklere enn å administrere ulike nøkler og autentiseringstyper for forskjellige tradisjonelle API-er.

MCP Eksempel

MCP Diagram

Tenk deg at en bruker ønsker å bestille en flyreise ved hjelp av en AI-assistent drevet av MCP.

  1. Tilkobling: AI-assistenten (MCP-klienten) kobler seg til en MCP-server levert av et flyselskap.

  2. Verktøyoppdagelse: Klienten spør flyselskapets MCP-server, “Hvilke verktøy har dere tilgjengelig?” Serveren svarer med verktøy som “søk flyreiser” og “bestill flyreiser”.

  3. Verktøybruk: Du ber AI-assistenten, “Vennligst søk etter en flyreise fra Portland til Honolulu.” AI-assistenten, ved hjelp av sin LLM, identifiserer at den må bruke “søk flyreiser”-verktøyet og sender de relevante parameterne (opprinnelse, destinasjon) til MCP-serveren.

  4. Utførelse og respons: MCP-serveren, som fungerer som en wrapper, gjør det faktiske kallet til flyselskapets interne booking-API. Den mottar deretter flyinformasjonen (f.eks. JSON-data) og sender den tilbake til AI-assistenten.

  5. Videre interaksjon: AI-assistenten presenterer flyalternativene. Når du velger en flyreise, kan assistenten bruke “bestill flyreise”-verktøyet på samme MCP-server for å fullføre bestillingen.

Agent-til-Agent Protokoll (A2A)

Mens MCP fokuserer på å koble LLM-er til verktøy, tar Agent-til-Agent (A2A) protokollen det et steg videre ved å muliggjøre kommunikasjon og samarbeid mellom ulike AI-agenter. A2A kobler AI-agenter på tvers av ulike organisasjoner, miljøer og teknologiske plattformer for å fullføre en delt oppgave.

Vi skal undersøke komponentene og fordelene med A2A, sammen med et eksempel på hvordan det kan brukes i vår reiseapplikasjon.

A2A Kjernekomponenter

A2A fokuserer på å muliggjøre kommunikasjon mellom agenter og få dem til å samarbeide for å fullføre en deloppgave for brukeren. Hver komponent i protokollen bidrar til dette:

Agentkort

På samme måte som en MCP-server deler en liste over verktøy, har et Agentkort:

Agentutfører

Agentutføreren er ansvarlig for å sende konteksten til brukerchatten til den eksterne agenten, slik at den eksterne agenten kan forstå oppgaven som må fullføres. På en A2A-server bruker en agent sin egen Large Language Model (LLM) for å analysere innkommende forespørsler og utføre oppgaver ved hjelp av sine egne interne verktøy.

Artefakt

Når en ekstern agent har fullført den forespurte oppgaven, opprettes arbeidsproduktet som en artefakt. En artefakt inneholder resultatet av agentens arbeid, en beskrivelse av hva som ble fullført, og tekstkonteksten som sendes gjennom protokollen. Etter at artefakten er sendt, lukkes tilkoblingen med den eksterne agenten til den trengs igjen.

Hendelseskø

Denne komponenten brukes til å håndtere oppdateringer og sende meldinger. Den er spesielt viktig i produksjon for agentiske systemer for å forhindre at tilkoblingen mellom agenter lukkes før en oppgave er fullført, spesielt når oppgaveløsning kan ta lengre tid.

Fordeler med A2A

Forbedret samarbeid: Det muliggjør interaksjon mellom agenter fra ulike leverandører og plattformer, deler kontekst og samarbeider, og legger til rette for sømløs automatisering på tvers av tradisjonelt frakoblede systemer.

Fleksibilitet i modellvalg: Hver A2A-agent kan bestemme hvilken LLM den bruker for å håndtere forespørslene sine, noe som gir mulighet for optimaliserte eller finjusterte modeller per agent, i motsetning til en enkelt LLM-tilkobling i noen MCP-scenarier.

Innebygd autentisering: Autentisering er integrert direkte i A2A-protokollen, og gir et robust sikkerhetsrammeverk for agentinteraksjoner.

A2A Eksempel

A2A Diagram

La oss utvide vårt reisebestillingsscenario, men denne gangen ved bruk av A2A.

  1. Brukerforespørsel til multi-agent: En bruker interagerer med en “Reiseagent” A2A-klient/agent, kanskje ved å si: “Vennligst bestill en hel tur til Honolulu for neste uke, inkludert flyreiser, hotell og leiebil.”

  2. Orkestrering av Reiseagent: Reiseagenten mottar denne komplekse forespørselen. Den bruker sin LLM til å resonnere om oppgaven og avgjøre at den må interagere med andre spesialiserte agenter.

  3. Inter-agent kommunikasjon: Reiseagenten bruker deretter A2A-protokollen for å koble seg til nedstrøms agenter, som en “Flyselskap-agent,” en “Hotell-agent,” og en “Bilutleie-agent” som er opprettet av ulike selskaper.

  4. Delegert oppgaveutførelse: Reiseagenten sender spesifikke oppgaver til disse spesialiserte agentene (f.eks. “Finn flyreiser til Honolulu,” “Bestill et hotell,” “Lei en bil”). Hver av disse spesialiserte agentene, som kjører sine egne LLM-er og bruker sine egne verktøy (som kan være MCP-servere selv), utfører sin spesifikke del av bestillingen.

  5. Samlet respons: Når alle nedstrøms agenter fullfører sine oppgaver, samler Reiseagenten resultatene (flydetaljer, hotellbekreftelse, bilutleie-bestilling) og sender en omfattende, chat-stil respons tilbake til brukeren.

Natural Language Web (NLWeb)

Nettsider har lenge vært den primære måten for brukere å få tilgang til informasjon og data på internett.

La oss se på de ulike komponentene i NLWeb, fordelene med NLWeb og et eksempel på hvordan NLWeb fungerer ved å se på vår reiseapplikasjon.

Komponenter i NLWeb

NLWeb Eksempel

NLWeb

Tenk på vår reisebestillingsnettside igjen, men denne gangen drevet av NLWeb.

  1. Dataregistrering: Reise-nettsidens eksisterende produktkataloger (f.eks. flylister, hotellbeskrivelser, turpakker) formateres ved bruk av Schema.org eller lastes inn via RSS-feeder. NLWebs verktøy registrerer disse strukturerte dataene, lager embeddings og lagrer dem i en lokal eller ekstern vektordatabase.

  2. Naturlig språkspørsmål (Menneske): En bruker besøker nettsiden og, i stedet for å navigere i menyer, skriver inn i et chat-grensesnitt: “Finn et familievennlig hotell i Honolulu med basseng for neste uke.”

  3. NLWeb-behandling: NLWeb-applikasjonen mottar dette spørsmålet. Den sender spørsmålet til en LLM for forståelse og søker samtidig i sin vektordatabase etter relevante hotelloppføringer.

  4. Presise resultater: LLM hjelper til med å tolke søkeresultatene fra databasen, identifisere de beste treffene basert på kriteriene “familievennlig,” “basseng,” og “Honolulu,” og deretter formatere et svar i naturlig språk. Svaret refererer til faktiske hoteller fra nettsidens katalog, og unngår oppdiktet informasjon.

  5. AI-agent interaksjon: Fordi NLWeb fungerer som en MCP-server, kan en ekstern AI-reiseagent også koble seg til denne nettsidens NLWeb-instans. AI-agenten kan deretter bruke ask MCP-metoden for å spørre nettsiden direkte: ask("Er det noen veganvennlige restauranter i Honolulu-området anbefalt av hotellet?"). NLWeb-instansen vil behandle dette, bruke sin database med restaurantinformasjon (hvis lastet), og returnere et strukturert JSON-svar.

Har du flere spørsmål om MCP/A2A/NLWeb?

Bli med på Azure AI Foundry Discord for å møte andre lærende, delta på kontortimer og få svar på spørsmål om AI-agenter.

Ressurser


Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi tilstreber nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses 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.