ai-agents-for-beginners

Používanie agentických protokolov (MCP, A2A a NLWeb)

Agentické protokoly

(Kliknite na obrázok vyššie pre zobrazenie videa k tejto lekcii)

S rastúcim využívaním AI agentov rastie aj potreba protokolov, ktoré zabezpečujú štandardizáciu, bezpečnosť a podporujú otvorené inovácie. V tejto lekcii sa pozrieme na 3 protokoly, ktoré sa snažia splniť tieto požiadavky - Model Context Protocol (MCP), Agent to Agent (A2A) a Natural Language Web (NLWeb).

Úvod

V tejto lekcii sa naučíte:

• Ako MCP umožňuje AI agentom prístup k externým nástrojom a dátam na splnenie úloh používateľa.

• Ako A2A umožňuje komunikáciu a spoluprácu medzi rôznymi AI agentmi.

• Ako NLWeb prináša rozhrania v prirodzenom jazyku na akúkoľvek webovú stránku, čím umožňuje AI agentom objavovať a interagovať s obsahom.

Ciele učenia

Identifikovať hlavný účel a výhody MCP, A2A a NLWeb v kontexte AI agentov.

Vysvetliť, ako každý protokol uľahčuje komunikáciu a interakciu medzi LLM, nástrojmi a inými agentmi.

Rozpoznať odlišné úlohy, ktoré každý protokol zohráva pri budovaní komplexných agentických systémov.

Model Context Protocol

Model Context Protocol (MCP) je otvorený štandard, ktorý poskytuje štandardizovaný spôsob, ako aplikácie poskytujú kontext a nástroje LLM. To umožňuje “univerzálny adaptér” na rôzne zdroje dát a nástroje, ku ktorým sa AI agenti môžu pripojiť konzistentným spôsobom.

Pozrime sa na komponenty MCP, výhody oproti priamemu používaniu API a príklad, ako by AI agenti mohli používať MCP server.

Základné komponenty MCP

MCP funguje na architektúre klient-server a jeho základné komponenty sú:

Hostitelia sú aplikácie LLM (napríklad editor kódu ako VSCode), ktoré iniciujú pripojenia k MCP serveru.

Klienti sú komponenty v hostiteľskej aplikácii, ktoré udržiavajú jednosmerné pripojenia so servermi.

Servery sú ľahké programy, ktoré poskytujú špecifické schopnosti.

Protokol obsahuje tri základné prvky, ktoré definujú schopnosti MCP servera:

Nástroje: Diskrétne akcie alebo funkcie, ktoré môže AI agent vyvolať na vykonanie úlohy. Napríklad služba počasia môže poskytovať nástroj “získať počasie” alebo e-commerce server môže poskytovať nástroj “kúpiť produkt”. MCP servery inzerujú názvy, popisy a schémy vstupov/výstupov každého nástroja vo svojom zozname schopností.

Zdroje: Dátové položky alebo dokumenty, ktoré môže MCP server poskytovať a klienti ich môžu na požiadanie získať. Príklady zahŕňajú obsah súborov, záznamy databázy alebo logy. Zdroje môžu byť textové (ako kód alebo JSON) alebo binárne (ako obrázky alebo PDF).

Podnety: Preddefinované šablóny, ktoré poskytujú navrhované podnety, umožňujúce komplexnejšie pracovné postupy.

Výhody MCP

MCP prináša významné výhody pre AI agentov:

Dynamické objavovanie nástrojov: Agenti môžu dynamicky prijímať zoznam dostupných nástrojov zo servera spolu s popismi ich funkcií. Na rozdiel od tradičných API, ktoré často vyžadujú statické kódovanie pre integrácie, MCP ponúka prístup “integrovať raz”, čo vedie k väčšej prispôsobivosti.

Interoperabilita medzi LLM: MCP funguje naprieč rôznymi LLM, čo poskytuje flexibilitu pri výbere základných modelov na hodnotenie lepšieho výkonu.

Štandardizovaná bezpečnosť: MCP obsahuje štandardnú metódu autentifikácie, čo zlepšuje škálovateľnosť pri pridávaní prístupu k ďalším MCP serverom. To je jednoduchšie ako správa rôznych kľúčov a typov autentifikácie pre rôzne tradičné API.

Príklad MCP

MCP Diagram

Predstavte si, že používateľ chce rezervovať let pomocou AI asistenta poháňaného MCP.

  1. Pripojenie: AI asistent (MCP klient) sa pripojí k MCP serveru poskytovanému leteckou spoločnosťou.

  2. Objavovanie nástrojov: Klient sa opýta MCP servera leteckej spoločnosti: “Aké nástroje máte k dispozícii?” Server odpovie nástrojmi ako “vyhľadať lety” a “rezervovať lety”.

  3. Vyvolanie nástroja: Používateľ požiada AI asistenta: “Prosím, vyhľadaj let z Portlandu do Honolulu.” AI asistent, využívajúc svoj LLM, identifikuje, že potrebuje vyvolať nástroj “vyhľadať lety” a odovzdá relevantné parametre (pôvod, cieľ) MCP serveru.

  4. Vykonanie a odpoveď: MCP server, fungujúci ako obal, vykoná skutočné volanie na interné API leteckej spoločnosti. Potom prijme informácie o lete (napr. JSON dáta) a pošle ich späť AI asistentovi.

  5. Ďalšia interakcia: AI asistent predstaví možnosti letu. Po výbere letu môže asistent vyvolať nástroj “rezervovať let” na rovnakom MCP serveri, čím dokončí rezerváciu.

Agent-to-Agent Protocol (A2A)

Zatiaľ čo MCP sa zameriava na pripojenie LLM k nástrojom, Agent-to-Agent (A2A) protokol ide o krok ďalej tým, že umožňuje komunikáciu a spoluprácu medzi rôznymi AI agentmi. A2A spája AI agentov naprieč rôznymi organizáciami, prostrediami a technologickými stackmi na splnenie spoločnej úlohy.

Preskúmame komponenty a výhody A2A spolu s príkladom jeho aplikácie v našej cestovnej aplikácii.

Základné komponenty A2A

A2A sa zameriava na umožnenie komunikácie medzi agentmi a ich spoluprácu na splnení podúlohy používateľa. Každý komponent protokolu k tomu prispieva:

Agent Card

Podobne ako MCP server zdieľa zoznam nástrojov, Agent Card obsahuje:

Agent Executor

Agent Executor je zodpovedný za odovzdanie kontextu používateľského rozhovoru vzdialenému agentovi, ktorý tento kontext potrebuje na pochopenie úlohy, ktorú má splniť. Na A2A serveri agent používa svoj vlastný Large Language Model (LLM) na analýzu prichádzajúcich požiadaviek a vykonávanie úloh pomocou svojich interných nástrojov.

Artifact

Keď vzdialený agent dokončí požadovanú úlohu, jeho výsledok sa vytvorí ako artifact. Artifact obsahuje výsledok práce agenta, popis toho, čo bolo dokončené, a textový kontext, ktorý sa posiela cez protokol. Po odoslaní artifactu sa spojenie s vzdialeným agentom uzavrie, kým nebude opäť potrebné.

Event Queue

Táto komponenta sa používa na spracovanie aktualizácií a odovzdávanie správ. Je obzvlášť dôležitá v produkcii pre agentické systémy, aby sa zabránilo uzavretiu spojenia medzi agentmi pred dokončením úlohy, najmä keď časy dokončenia úloh môžu byť dlhšie.

Výhody A2A

Zlepšená spolupráca: Umožňuje agentom od rôznych dodávateľov a platforiem interagovať, zdieľať kontext a spolupracovať, čím uľahčuje automatizáciu naprieč tradične odpojenými systémami.

Flexibilita výberu modelu: Každý A2A agent môže rozhodnúť, ktorý LLM použije na spracovanie svojich požiadaviek, čo umožňuje optimalizované alebo jemne doladené modely pre každého agenta, na rozdiel od jedného LLM pripojenia v niektorých scenároch MCP.

Integrovaná autentifikácia: Autentifikácia je priamo integrovaná do A2A protokolu, čo poskytuje robustný bezpečnostný rámec pre interakcie agentov.

Príklad A2A

A2A Diagram

Rozšírme náš scenár rezervácie cesty, ale tentokrát pomocou A2A.

  1. Požiadavka používateľa na multi-agenta: Používateľ interaguje s “Cestovným agentom” A2A klientom/agentom, napríklad tým, že povie: “Prosím, rezervujte celý výlet do Honolulu na budúci týždeň, vrátane letov, hotela a prenájmu auta.”

  2. Orchestrácia cestovným agentom: Cestovný agent prijme túto komplexnú požiadavku. Použije svoj LLM na premýšľanie o úlohe a určí, že potrebuje interagovať s inými špecializovanými agentmi.

  3. Komunikácia medzi agentmi: Cestovný agent potom použije A2A protokol na pripojenie k downstream agentom, ako je “Letecký agent”, “Hotelový agent” a “Agent prenájmu auta”, ktoré sú vytvorené rôznymi spoločnosťami.

  4. Delegované vykonanie úlohy: Cestovný agent pošle špecifické úlohy týmto špecializovaným agentom (napr. “Nájdi lety do Honolulu”, “Rezervuj hotel”, “Prenajmi auto”). Každý z týchto špecializovaných agentov, ktorý používa svoje vlastné LLM a svoje vlastné nástroje (ktoré môžu byť MCP servery), vykoná svoju špecifickú časť rezervácie.

  5. Konsolidovaná odpoveď: Keď všetci downstream agenti dokončia svoje úlohy, cestovný agent skompiluje výsledky (detaily letu, potvrdenie hotela, rezervácia auta) a pošle komplexnú, chatovú odpoveď späť používateľovi.

Natural Language Web (NLWeb)

Webové stránky už dlho slúžia ako primárny spôsob, ako používatelia získavajú informácie a dáta na internete.

Pozrime sa na rôzne komponenty NLWeb, výhody NLWeb a príklad, ako NLWeb funguje v našej cestovnej aplikácii.

Komponenty NLWeb

NLWeb na príklade

NLWeb

Zvážme našu webovú stránku na rezerváciu ciest, ale tentokrát poháňanú NLWeb.

  1. Získavanie dát: Existujúce katalógy produktov webovej stránky (napr. zoznamy letov, popisy hotelov, balíčky zájazdov) sú formátované pomocou Schema.org alebo načítané cez RSS feedy. Nástroje NLWeb spracujú tieto štruktúrované dáta, vytvoria embeddingy a uložia ich do lokálnej alebo vzdialenej vektorovej databázy.

  2. Dotaz v prirodzenom jazyku (ľudský): Používateľ navštívi webovú stránku a namiesto navigácie v menu napíše do chatového rozhrania: “Nájdi mi rodinný hotel v Honolulu s bazénom na budúci týždeň”.

  3. Spracovanie NLWeb: NLWeb aplikácia prijme tento dotaz. Pošle dotaz LLM na porozumenie a zároveň vyhľadá vo svojej vektorovej databáze relevantné zoznamy hotelov.

  4. Presné výsledky: LLM pomáha interpretovať výsledky vyhľadávania z databázy, identifikovať najlepšie zhody na základe kritérií “rodinný”, “bazén” a “Honolulu” a potom formátuje odpoveď v prirodzenom jazyku. Dôležité je, že odpoveď odkazuje na skutočné hotely z katalógu webovej stránky, čím sa vyhýba vymysleným informáciám.

  5. Interakcia AI agenta: Keďže NLWeb slúži ako MCP server, externý AI cestovný agent by sa mohol tiež pripojiť k NLWeb inštancii tejto webovej stránky. AI agent by mohol použiť metódu ask MCP na priamy dotaz na webovú stránku: ask("Existujú nejaké vegánske reštaurácie v oblasti Honolulu odporúčané hotelom?"). NLWeb inštancia by to spracovala, využila svoju databázu informácií o reštauráciách (ak je načítaná) a vrátila štruktúrovanú JSON odpoveď.

Máte ďalšie otázky o MCP/A2A/NLWeb?

Pripojte sa k Azure AI Foundry Discord, kde sa môžete stretnúť s ďalšími študentmi, zúčastniť sa konzultačných hodín a získať odpovede na vaše otázky o AI agentoch.

Zdroje


Upozornenie:
Tento dokument bol preložený pomocou služby AI prekladu Co-op Translator. Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.