ai-agents-for-beginners

Používání agentních protokolů (MCP, A2A a NLWeb)

Agentní protokoly

S rostoucím využíváním AI agentů roste i potřeba protokolů, které zajišťují standardizaci, bezpečnost a podporují otevřené inovace. V této lekci se zaměříme na 3 protokoly, které se snaží tyto potřeby naplnit - Model Context Protocol (MCP), Agent to Agent (A2A) a Natural Language Web (NLWeb).

Úvod

V této lekci se naučíte:

• Jak MCP umožňuje AI agentům přístup k externím nástrojům a datům pro splnění úkolů uživatele.

• Jak A2A podporuje komunikaci a spolupráci mezi různými AI agenty.

• Jak NLWeb přináší rozhraní v přirozeném jazyce na jakýkoli web, což umožňuje AI agentům objevovat a interagovat s obsahem.

Cíle učení

Identifikovat hlavní účel a přínosy MCP, A2A a NLWeb v kontextu AI agentů.

Vysvětlit, jak každý protokol usnadňuje komunikaci a interakci mezi LLM, nástroji a dalšími agenty.

Rozpoznat odlišné role, které každý protokol hraje při budování komplexních agentních systémů.

Model Context Protocol

Model Context Protocol (MCP) je otevřený standard, který poskytuje standardizovaný způsob, jak aplikace poskytují kontext a nástroje LLM. To umožňuje “univerzální adaptér” pro různé datové zdroje a nástroje, ke kterým se AI agenti mohou připojit konzistentním způsobem.

Podívejme se na komponenty MCP, výhody oproti přímému použití API a příklad, jak by AI agenti mohli využívat MCP server.

Základní komponenty MCP

MCP funguje na architektuře klient-server a jeho základní komponenty jsou:

Hostitelé jsou aplikace LLM (například editor kódu jako VSCode), které zahajují připojení k MCP serveru.

Klienti jsou komponenty v hostitelské aplikaci, které udržují jednosměrné připojení k serverům.

Servery jsou lehké programy, které poskytují specifické schopnosti.

Protokol zahrnuje tři základní primitivy, které představují schopnosti MCP serveru:

Nástroje: Jedná se o samostatné akce nebo funkce, které může AI agent vyvolat k provedení úkolu. Například služba počasí může poskytovat nástroj “získat počasí” nebo e-commerce server může poskytovat nástroj “zakoupit produkt”. MCP servery inzerují název, popis a schéma vstupů/výstupů každého nástroje ve svém seznamu schopností.

Zdroje: Jedná se o položky dat nebo dokumenty, které může MCP server poskytovat a klienti je mohou na vyžádání získat. Příklady zahrnují obsah souborů, záznamy databáze nebo logy. Zdroje mohou být textové (například kód nebo JSON) nebo binární (například obrázky nebo PDF).

Podněty: Jedná se o předdefinované šablony, které poskytují navrhované podněty, umožňující složitější pracovní postupy.

Výhody MCP

MCP nabízí významné výhody pro AI agenty:

Dynamické objevování nástrojů: Agenti mohou dynamicky získat seznam dostupných nástrojů ze serveru spolu s popisy jejich funkcí. To je v kontrastu s tradičními API, které často vyžadují statické kódování pro integrace, což znamená, že jakákoli změna API vyžaduje aktualizaci kódu. MCP nabízí přístup “integrovat jednou”, což vede k větší přizpůsobivosti.

Interoperabilita mezi LLM: MCP funguje napříč různými LLM, což poskytuje flexibilitu při přepínání základních modelů pro lepší výkon.

Standardizovaná bezpečnost: MCP zahrnuje standardní metodu autentizace, což zlepšuje škálovatelnost při přidávání přístupu k dalším MCP serverům. To je jednodušší než správa různých klíčů a typů autentizace pro různé tradiční API.

Příklad MCP

MCP Diagram

Představte si, že uživatel chce rezervovat let pomocí AI asistenta poháněného MCP.

  1. Připojení: AI asistent (MCP klient) se připojí k MCP serveru poskytovanému leteckou společností.

  2. Objevování nástrojů: Klient se zeptá MCP serveru letecké společnosti: “Jaké nástroje máte k dispozici?” Server odpoví s nástroji jako “vyhledat lety” a “rezervovat lety”.

  3. Vyvolání nástroje: Poté požádáte AI asistenta: “Prosím, vyhledej let z Portlandu do Honolulu.” AI asistent, využívající svůj LLM, identifikuje, že potřebuje vyvolat nástroj “vyhledat lety” a předá relevantní parametry (původ, destinace) MCP serveru.

  4. Provedení a odpověď: MCP server, fungující jako obal, provede skutečné volání interního API letecké společnosti. Poté obdrží informace o letu (například JSON data) a pošle je zpět AI asistentovi.

  5. Další interakce: AI asistent představí možnosti letu. Jakmile vyberete let, asistent může vyvolat nástroj “rezervovat let” na stejném MCP serveru a dokončit rezervaci.

Agent-to-Agent Protocol (A2A)

Zatímco MCP se zaměřuje na propojení LLM s nástroji, Agent-to-Agent (A2A) protokol jde o krok dál tím, že umožňuje komunikaci a spolupráci mezi různými AI agenty. A2A propojuje AI agenty napříč různými organizacemi, prostředími a technologickými stacky, aby splnily společný úkol.

Prozkoumáme komponenty a výhody A2A spolu s příkladem, jak by mohl být aplikován v naší cestovní aplikaci.

Základní komponenty A2A

A2A se zaměřuje na umožnění komunikace mezi agenty a jejich spolupráci na splnění dílčího úkolu uživatele. Každá komponenta protokolu k tomu přispívá:

Agentní karta

Podobně jako MCP server sdílí seznam nástrojů, agentní karta obsahuje:

Agentní vykonavatel

Agentní vykonavatel je zodpovědný za předání kontextu uživatelského chatu vzdálenému agentovi, který tento kontext potřebuje k pochopení úkolu, který má být splněn. Na A2A serveru agent používá svůj vlastní LLM k analýze příchozích požadavků a provádění úkolů pomocí svých vlastních interních nástrojů.

Artefakt

Jakmile vzdálený agent dokončí požadovaný úkol, jeho výstup je vytvořen jako artefakt. Artefakt obsahuje výsledek práce agenta, popis toho, co bylo dokončeno, a textový kontext, který je poslán přes protokol. Po odeslání artefaktu je připojení s vzdáleným agentem uzavřeno, dokud není znovu potřeba.

Fronta událostí

Tato komponenta se používá pro zpracování aktualizací a předávání zpráv. Je obzvláště důležitá v produkčním prostředí agentních systémů, aby se zabránilo uzavření připojení mezi agenty před dokončením úkolu, zejména když doba dokončení úkolu může být delší.

Výhody A2A

Zlepšená spolupráce: Umožňuje agentům od různých dodavatelů a platforem interagovat, sdílet kontext a spolupracovat, což usnadňuje automatizaci napříč tradičně odpojenými systémy.

Flexibilita výběru modelu: Každý A2A agent může rozhodnout, který LLM použije k obsluze svých požadavků, což umožňuje optimalizované nebo jemně doladěné modely pro jednotlivé agenty, na rozdíl od jediného LLM připojení v některých scénářích MCP.

Integrovaná autentizace: Autentizace je přímo integrovaná do A2A protokolu, což poskytuje robustní bezpečnostní rámec pro interakce agentů.

Příklad A2A

A2A Diagram

Rozšiřme náš scénář rezervace cestování, tentokrát pomocí A2A.

  1. Požadavek uživatele na multi-agentní systém: Uživatel interaguje s “Cestovním agentem” A2A klientem/agentem, například tím, že řekne: “Prosím, rezervujte celý výlet do Honolulu na příští týden, včetně letů, hotelu a pronájmu auta.”

  2. Orchestrace cestovním agentem: Cestovní agent obdrží tento komplexní požadavek. Používá svůj LLM k rozpoznání úkolu a určení, že musí interagovat s dalšími specializovanými agenty.

  3. Komunikace mezi agenty: Cestovní agent poté použije A2A protokol k připojení k downstream agentům, jako je “Agent letecké společnosti”, “Agent hotelu” a “Agent pronájmu auta”, které jsou vytvořeny různými společnostmi.

  4. Delegované provedení úkolu: Cestovní agent posílá specifické úkoly těmto specializovaným agentům (např. “Najdi lety do Honolulu”, “Rezervuj hotel”, “Pronajmi auto”). Každý z těchto specializovaných agentů, provozující své vlastní LLM a využívající své vlastní nástroje (které mohou být samy MCP servery), provádí svou specifickou část rezervace.

  5. Konsolidovaná odpověď: Jakmile všichni downstream agenti dokončí své úkoly, cestovní agent sestaví výsledky (detaily letu, potvrzení hotelu, rezervace auta) a pošle komplexní odpověď ve stylu chatu zpět uživateli.

Natural Language Web (NLWeb)

Webové stránky již dlouho představují primární způsob, jak uživatelé přistupují k informacím a datům na internetu.

Podívejme se na různé komponenty NLWeb, výhody NLWeb a příklad, jak NLWeb funguje v naší cestovní aplikaci.

Komponenty NLWeb

Příklad NLWeb

NLWeb

Zvažme náš web pro rezervaci cestování, tentokrát poháněný NLWeb.

  1. Příjem dat: Stávající katalogy produktů cestovního webu (např. seznamy letů, popisy hotelů, balíčky zájezdů) jsou formátovány pomocí Schema.org nebo načteny prostřednictvím RSS feedů. Nástroje NLWeb tyto strukturované údaje načtou, vytvoří vkládání a uloží je do lokální nebo vzdálené vektorové databáze.

  2. Dotaz v přirozeném jazyce (člověk): Uživatel navštíví web a místo navigace v menu zadá do rozhraní chatu: “Najdi mi rodinný hotel v Honolulu s bazénem na příští týden”.

  3. Zpracování NLWeb: NLWeb aplikace obdrží tento dotaz. Pošle dotaz LLM pro porozumění a současně prohledá svou vektorovou databázi pro relevantní seznamy hotelů.

  4. Přesné výsledky: LLM pomáhá interpretovat výsledky vyhledávání z databáze, identifikovat nejlepší shody na základě kritérií “rodinný”, “bazén” a “Honolulu” a poté formátuje odpověď v přirozeném jazyce. Klíčové je, že odpověď odkazuje na skutečné hotely z katalogu webu, čímž se vyhýbá vymyšleným informacím.

  5. Interakce AI agenta: Protože NLWeb slouží jako MCP server, externí AI cestovní agent by se mohl také připojit k NLWeb instanci tohoto webu. AI agent by mohl použít metodu ask MCP k dotazování webu přímo: ask("Jsou v oblasti Honolulu nějaké veganské restaurace doporučené hotelem?"). NLWeb instance by to zpracovala, využila svou databázi informací o restauracích (pokud je načtena) a vrátila strukturovanou JSON odpověď.

Máte další otázky ohledně MCP/A2A/NLWeb?

Připojte se k Azure AI Foundry Discord, kde se můžete setkat s dalšími studenty, zúčastnit se konzultačních hodin a získat odpovědi na své otázky ohledně AI agentů.

Zdroje


Upozornění:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. I když se snažíme o co největší přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za závazný zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu.