Kun tekoälyagenttien käyttö kasvaa, tarve protokollille, jotka varmistavat standardoinnin, turvallisuuden ja avoimen innovaation tukemisen, kasvaa myös. Tässä oppitunnissa käsittelemme kolmea protokollaa, jotka pyrkivät vastaamaan tähän tarpeeseen: Model Context Protocol (MCP), Agent to Agent (A2A) ja Natural Language Web (NLWeb).
Tässä oppitunnissa käsitellään:
• Kuinka MCP mahdollistaa tekoälyagenttien pääsyn ulkoisiin työkaluihin ja tietoihin käyttäjän tehtävien suorittamiseksi.
• Kuinka A2A mahdollistaa viestinnän ja yhteistyön eri tekoälyagenttien välillä.
• Kuinka NLWeb tuo luonnollisen kielen käyttöliittymät mihin tahansa verkkosivustoon, mahdollistaen tekoälyagenttien sisällön löytämisen ja vuorovaikutuksen sen kanssa.
• Tunnistaa MCP:n, A2A:n ja NLWebin keskeinen tarkoitus ja hyödyt tekoälyagenttien kontekstissa.
• Selittää, kuinka kukin protokolla helpottaa viestintää ja vuorovaikutusta LLM:ien, työkalujen ja muiden agenttien välillä.
• Tunnistaa kunkin protokollan erilliset roolit monimutkaisten agenttijärjestelmien rakentamisessa.
Model Context Protocol (MCP) on avoin standardi, joka tarjoaa yhtenäisen tavan sovelluksille tarjota kontekstia ja työkaluja LLM:ille. Tämä mahdollistaa “universaalin sovittimen” eri tietolähteille ja työkaluille, joihin tekoälyagentit voivat yhdistyä johdonmukaisella tavalla.
Katsotaan MCP:n komponentteja, sen etuja verrattuna suoraan API:n käyttöön ja esimerkkiä siitä, kuinka tekoälyagentit voivat käyttää MCP-palvelinta.
MCP toimii asiakas-palvelin-arkkitehtuurilla, ja sen keskeiset komponentit ovat:
• Isännät ovat LLM-sovelluksia (esimerkiksi koodieditori kuten VSCode), jotka aloittavat yhteyden MCP-palvelimeen.
• Asiakkaat ovat komponentteja isäntäsovelluksessa, jotka ylläpitävät yksi-yhteen-yhteyksiä palvelimiin.
• Palvelimet ovat kevyitä ohjelmia, jotka tarjoavat tiettyjä ominaisuuksia.
Protokollaan sisältyy kolme keskeistä perusominaisuutta, jotka ovat MCP-palvelimen kyvykkyyksiä:
• Työkalut: Nämä ovat yksittäisiä toimintoja tai tehtäviä, joita tekoälyagentti voi kutsua suorittaakseen toiminnon. Esimerkiksi sääpalvelu voi tarjota “get weather” -työkalun, tai verkkokaupan palvelin voi tarjota “purchase product” -työkalun. MCP-palvelimet ilmoittavat kunkin työkalun nimen, kuvauksen ja syöte/tulos-skeeman kyvykkyysluettelossaan.
• Resurssit: Nämä ovat vain luku -tietoja tai dokumentteja, joita MCP-palvelin voi tarjota, ja asiakkaat voivat hakea niitä tarpeen mukaan. Esimerkkejä ovat tiedostosisällöt, tietokantatiedot tai lokitiedostot. Resurssit voivat olla tekstiä (kuten koodia tai JSONia) tai binäärimuotoisia (kuten kuvia tai PDF:iä).
• Kehoitteet: Nämä ovat ennalta määriteltyjä malleja, jotka tarjoavat ehdotettuja kehoitteita, mahdollistaen monimutkaisempia työnkulkuja.
MCP tarjoaa merkittäviä etuja tekoälyagenteille:
• Dynaaminen työkalujen löytäminen: Agentit voivat dynaamisesti vastaanottaa listan saatavilla olevista työkaluista palvelimelta sekä kuvaukset niiden toiminnasta. Tämä eroaa perinteisistä API:ista, jotka usein vaativat staattista koodausta integraatioille, mikä tarkoittaa, että API-muutokset edellyttävät koodipäivityksiä. MCP tarjoaa “integroi kerran” -lähestymistavan, mikä lisää mukautuvuutta.
• Yhteensopivuus eri LLM:ien välillä: MCP toimii eri LLM:ien kanssa, tarjoten joustavuutta vaihtaa keskeisiä malleja paremman suorituskyvyn arvioimiseksi.
• Standardoitu turvallisuus: MCP sisältää standardoidun autentikointimenetelmän, mikä parantaa skaalautuvuutta lisättäessä pääsyä MCP-palvelimiin. Tämä on yksinkertaisempaa kuin hallita eri avaimia ja autentikointityyppejä eri perinteisille API:ille.
Kuvitellaan, että käyttäjä haluaa varata lennon tekoälyavustajan avulla, joka käyttää MCP:tä.
Yhteys: Tekoälyavustaja (MCP-asiakas) yhdistyy lentoyhtiön tarjoamaan MCP-palvelimeen.
Työkalujen löytäminen: Asiakas kysyy lentoyhtiön MCP-palvelimelta: “Mitä työkaluja sinulla on saatavilla?” Palvelin vastaa työkaluilla, kuten “search flights” ja “book flights”.
Työkalun kutsuminen: Käyttäjä pyytää tekoälyavustajaa: “Etsi lento Portlandista Honoluluun.” Tekoälyavustaja, käyttäen LLM:äänsä, tunnistaa, että sen täytyy kutsua “search flights” -työkalu ja välittää asiaankuuluvat parametrit (lähtöpaikka, kohde) MCP-palvelimelle.
Suoritus ja vastaus: MCP-palvelin, joka toimii kääreenä, tekee varsinaisen kutsun lentoyhtiön sisäiseen varaus-API:iin. Se vastaanottaa lentotiedot (esim. JSON-dataa) ja lähettää ne takaisin tekoälyavustajalle.
Lisävuorovaikutus: Tekoälyavustaja esittää lentovaihtoehdot. Kun käyttäjä valitsee lennon, avustaja voi kutsua “book flight” -työkalun samalla MCP-palvelimella, viimeistellen varauksen.
Kun MCP keskittyy LLM:ien yhdistämiseen työkaluihin, Agent-to-Agent (A2A) -protokolla vie sen askeleen pidemmälle mahdollistamalla viestinnän ja yhteistyön eri tekoälyagenttien välillä. A2A yhdistää tekoälyagentit eri organisaatioiden, ympäristöjen ja teknologioiden välillä yhteisen tehtävän suorittamiseksi.
Tarkastelemme A2A:n komponentteja ja etuja sekä esimerkkiä siitä, kuinka sitä voitaisiin soveltaa matkailusovelluksessamme.
A2A keskittyy mahdollistamaan agenttien välisen viestinnän ja niiden yhteistyön käyttäjän alitehtävän suorittamiseksi. Jokainen protokollan komponentti edistää tätä:
Samoin kuin MCP-palvelin jakaa listan työkaluista, agenttikortti sisältää:
Agentin suorittaja vastaa käyttäjän keskustelun kontekstin välittämisestä etäagentille, jotta etäagentti ymmärtää tehtävän, joka täytyy suorittaa. A2A-palvelimessa agentti käyttää omaa Large Language Model (LLM) -malliaan saapuvien pyyntöjen tulkitsemiseen ja tehtävien suorittamiseen omilla sisäisillä työkaluillaan.
Kun etäagentti on suorittanut pyydetyn tehtävän, sen työn tulos luodaan artefaktina. Artefakti sisältää agentin työn tuloksen, kuvauksen siitä, mitä suoritettiin, ja tekstikontekstin, joka lähetetään protokollan kautta. Kun artefakti on lähetetty, yhteys etäagenttiin suljetaan, kunnes sitä tarvitaan uudelleen.
Tämä komponentti käytetään päivitysten käsittelyyn ja viestien välittämiseen. Se on erityisen tärkeä tuotantokäytössä agenttijärjestelmille, jotta agenttien välinen yhteys ei sulkeudu ennen tehtävän valmistumista, erityisesti silloin, kun tehtävän suorittaminen voi kestää pidemmän ajan.
• Parannettu yhteistyö: Mahdollistaa eri toimittajien ja alustojen agenttien vuorovaikutuksen, kontekstin jakamisen ja yhteistyön, helpottaen saumattoman automaation perinteisesti erillisten järjestelmien välillä.
• Mallin valinnan joustavuus: Jokainen A2A-agentti voi päättää, mitä LLM:ää se käyttää pyyntöjen käsittelyyn, mahdollistaen optimoidut tai hienosäädetyt mallit agenttia kohden, toisin kuin yksittäinen LLM-yhteys joissakin MCP-skenaarioissa.
• Sisäänrakennettu autentikointi: Autentikointi on integroitu suoraan A2A-protokollaan, tarjoten vahvan turvallisuuskehyksen agenttien väliselle vuorovaikutukselle.
Laajennetaan matkavarauksen skenaariota, mutta tällä kertaa käytetään A2A:ta.
Käyttäjän pyyntö monialustaiselle agentille: Käyttäjä vuorovaikuttaa “Matka-agentti” A2A-asiakkaan/agentin kanssa, esimerkiksi sanomalla: “Varaa koko matka Honoluluun ensi viikoksi, mukaan lukien lennot, hotelli ja vuokra-auto.”
Matka-agentin orkestrointi: Matka-agentti vastaanottaa tämän monimutkaisen pyynnön. Se käyttää LLM:äänsä tehtävän järkeistämiseen ja päättää, että sen täytyy vuorovaikuttaa muiden erikoistuneiden agenttien kanssa.
Agenttien välinen viestintä: Matka-agentti käyttää A2A-protokollaa yhdistyäkseen alaspäin oleviin agentteihin, kuten “Lentoyhtiö-agentti”, “Hotelli-agentti” ja “Autovuokraamo-agentti”, jotka on luotu eri yritysten toimesta.
Delegoitu tehtävän suorittaminen: Matka-agentti lähettää erityisiä tehtäviä näille erikoistuneille agenteille (esim. “Etsi lentoja Honoluluun”, “Varaa hotelli”, “Vuokraa auto”). Kukin näistä erikoistuneista agenteista, jotka käyttävät omia LLM:äänsä ja omia työkalujaan (jotka voivat olla MCP-palvelimia), suorittaa oman osansa varauksesta.
Yhdistetty vastaus: Kun kaikki alaspäin olevat agentit suorittavat tehtävänsä, matka-agentti kokoaa tulokset (lentotiedot, hotellivahvistus, autovuokrausvaraus) ja lähettää kattavan, keskustelutyylisen vastauksen takaisin käyttäjälle.
Verkkosivustot ovat pitkään olleet ensisijainen tapa, jolla käyttäjät pääsevät käsiksi tietoihin ja dataan internetissä.
Katsotaan NLWebin eri komponentteja, sen etuja ja esimerkkiä siitä, kuinka NLWeb toimii matkailusovelluksessamme.
NLWeb-sovellus (ydinpalvelukoodi): Järjestelmä, joka käsittelee luonnollisen kielen kysymyksiä. Se yhdistää alustan eri osat luodakseen vastauksia. Voit ajatella sitä verkkosivuston luonnollisen kielen ominaisuuksien moottorina.
NLWeb-protokolla: Tämä on yksinkertainen sääntöjoukko luonnollisen kielen vuorovaikutukselle verkkosivuston kanssa. Se lähettää vastaukset JSON-muodossa (usein käyttäen Schema.orgia). Sen tarkoitus on luoda yksinkertainen perusta “AI-verkolle”, samalla tavalla kuin HTML mahdollisti dokumenttien jakamisen verkossa.
MCP-palvelin (Model Context Protocol -päätepiste): Jokainen NLWeb-asennus toimii myös MCP-palvelimena. Tämä tarkoittaa, että se voi jakaa työkaluja (kuten “ask”-menetelmän) ja dataa muiden tekoälyjärjestelmien kanssa. Käytännössä tämä tekee verkkosivuston sisällöstä ja kyvyistä käytettävissä olevia tekoälyagenteille, mahdollistaen sivuston osaksi laajempaa “agenttiekosysteemiä”.
Upotusmallit: Näitä malleja käytetään muuntamaan verkkosivuston sisältö numeerisiksi esityksiksi, joita kutsutaan vektoreiksi (upotukset). Nämä vektorit tallentavat merkityksen tavalla, jota tietokoneet voivat verrata ja hakea. Ne tallennetaan erityiseen tietokantaan, ja käyttäjät voivat valita, mitä upotusmallia he haluavat käyttää.
Vektoripohjainen tietokanta (hakumekanismi): Tämä tietokanta tallentaa verkkosivuston sisällön upotukset. Kun joku esittää kysymyksen, NLWeb tarkistaa vektoripohjaisen tietokannan löytääkseen nopeasti relevanttia tietoa. Se antaa nopean listan mahdollisista vastauksista, järjestettynä samankaltaisuuden mukaan. NLWeb toimii eri vektorivarastojärjestelmien kanssa, kuten Qdrant, Snowflake, Milvus, Azure AI Search ja Elasticsearch.
Kuvitellaan matkailusivustoamme uudelleen, mutta tällä kertaa se on NLWebin voimin.
Datan syöttö: Matkailusivuston olemassa olevat tuotekatalogit (esim. lentolistaukset, hotellikuvaukset, matkailupaketit) muotoillaan Schema.orgin avulla tai ladataan RSS-syötteiden kautta. NLWebin työkalut syöttävät tämän rakenteellisen datan, luovat upotuksia ja tallentavat ne paikalliseen tai etävektoritietokantaan.
Luonnollisen kielen kysely (ihminen): Käyttäjä vierailee verkkosivustolla ja kirjoittaa chat-käyttöliittymään: “Etsi perheystävällinen hotelli Honolulussa, jossa on uima-allas ensi viikoksi.”
NLWebin käsittely: NLWeb-sovellus vastaanottaa tämän kyselyn. Se lähettää kyselyn LLM:lle ymmärtämistä varten ja etsii samanaikaisesti vektoripohjaisesta tietokannastaan relevantteja hotellilistauksia.
Tarkat tulokset: LLM auttaa tulkitsemaan tietokannan hakutuloksia, tunnistamaan parhaat osumat “perheystävällinen”, “uima-allas” ja “Honolulu” -kriteerien perusteella, ja muotoilee luonnollisen kielen vastauksen. Tärkeää on, että vastaus viittaa verkkosivuston todellisiin hotelleihin, välttäen keksittyä tietoa.
Tekoälyagentin vuorovaikutus: Koska NLWeb toimii MCP-palvelimena, ulkoinen tekoälymatka-agentti voisi myös yhdistyä verkkosivuston NLWeb-instanssiin. Tekoälyagentti voisi käyttää ask
MCP-menetelmää kysyäkseen verkkosivustolta suoraan: ask("Onko Honolulun alueella vegaaniystävällisiä ravintoloita, joita hotelli suosittelee?")
. NLWeb-instanssi käsittelisi tämän, hyödyntäen tietokantaansa ravintolatiedosta (jos ladattu), ja palauttaisi rakenteellisen JSON-vastauksen.
Liity Azure AI Foundry Discordiin tapaamaan muita oppijoita, osallistumaan toimistoaikoihin ja saamaan vastauksia tekoälyagentteihin liittyviin kysymyksiisi.
Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäisellä kielellä tulee pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskääntämistä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.