Pe măsură ce utilizarea agenților AI crește, la fel crește și nevoia de protocoale care să asigure standardizarea, securitatea și să sprijine inovația deschisă. În această lecție, vom analiza 3 protocoale care încearcă să răspundă acestei nevoi - Model Context Protocol (MCP), Agent to Agent (A2A) și Natural Language Web (NLWeb).
În această lecție, vom acoperi:
• Cum MCP permite agenților AI să acceseze instrumente și date externe pentru a îndeplini sarcinile utilizatorilor.
• Cum A2A facilitează comunicarea și colaborarea între diferiți agenți AI.
• Cum NLWeb aduce interfețe în limbaj natural pe orice site web, permițând agenților AI să descopere și să interacționeze cu conținutul.
• Identificarea scopului principal și a beneficiilor MCP, A2A și NLWeb în contextul agenților AI.
• Explicarea modului în care fiecare protocol facilitează comunicarea și interacțiunea între LLM-uri, instrumente și alți agenți.
• Recunoașterea rolurilor distincte pe care fiecare protocol le joacă în construirea sistemelor agentice complexe.
Model Context Protocol (MCP) este un standard deschis care oferă o modalitate standardizată pentru aplicații de a furniza context și instrumente către LLM-uri. Acest lucru permite un “adaptor universal” pentru diferite surse de date și instrumente la care agenții AI se pot conecta într-un mod consistent.
Să analizăm componentele MCP, beneficiile comparativ cu utilizarea directă a API-urilor și un exemplu despre cum agenții AI ar putea utiliza un server MCP.
MCP funcționează pe o arhitectură client-server, iar componentele de bază sunt:
• Gazdele sunt aplicații LLM (de exemplu, un editor de cod precum VSCode) care inițiază conexiunile către un server MCP.
• Clienții sunt componente din cadrul aplicației gazdă care mențin conexiuni unu-la-unu cu serverele.
• Serverele sunt programe ușoare care expun capabilități specifice.
Protocolul include trei primitive de bază care reprezintă capabilitățile unui server MCP:
• Instrumente: Acestea sunt acțiuni sau funcții discrete pe care un agent AI le poate apela pentru a efectua o acțiune. De exemplu, un serviciu meteo ar putea expune un instrument “get weather”, sau un server de e-commerce ar putea expune un instrument “purchase product”. Serverele MCP listează numele fiecărui instrument, descrierea și schema de intrare/ieșire în lista lor de capabilități.
• Resurse: Acestea sunt elemente de date sau documente doar pentru citire pe care un server MCP le poate furniza, iar clienții le pot prelua la cerere. Exemple includ conținuturi de fișiere, înregistrări din baze de date sau fișiere jurnal. Resursele pot fi text (cum ar fi cod sau JSON) sau binare (cum ar fi imagini sau PDF-uri).
• Șabloane: Acestea sunt șabloane predefinite care oferă sugestii de solicitări, permițând fluxuri de lucru mai complexe.
MCP oferă avantaje semnificative pentru agenții AI:
• Descoperirea Dinamică a Instrumentelor: Agenții pot primi dinamic o listă de instrumente disponibile de la un server, împreună cu descrieri ale funcționalităților acestora. Acest lucru contrastează cu API-urile tradiționale, care necesită adesea codificare statică pentru integrare, ceea ce înseamnă că orice modificare a API-ului necesită actualizări de cod. MCP oferă o abordare “integrează o dată”, ceea ce duce la o adaptabilitate mai mare.
• Interoperabilitate între LLM-uri: MCP funcționează cu diferite LLM-uri, oferind flexibilitate pentru a schimba modelele de bază pentru o performanță mai bună.
• Securitate Standardizată: MCP include o metodă standard de autentificare, îmbunătățind scalabilitatea atunci când se adaugă acces la servere MCP suplimentare. Acest lucru este mai simplu decât gestionarea diferitelor chei și tipuri de autentificare pentru diverse API-uri tradiționale.
Imaginați-vă că un utilizator dorește să rezerve un zbor folosind un asistent AI alimentat de MCP.
Conexiune: Asistentul AI (clientul MCP) se conectează la un server MCP furnizat de o companie aeriană.
Descoperirea Instrumentelor: Clientul întreabă serverul MCP al companiei aeriene: “Ce instrumente aveți disponibile?” Serverul răspunde cu instrumente precum “search flights” și “book flights”.
Invocarea Instrumentului: Utilizatorul îi cere asistentului AI: “Te rog, caută un zbor de la Portland la Honolulu.” Asistentul AI, folosindu-și LLM-ul, identifică faptul că trebuie să apeleze instrumentul “search flights” și transmite parametrii relevanți (origine, destinație) către serverul MCP.
Executare și Răspuns: Serverul MCP, acționând ca un intermediar, face apelul efectiv către API-ul intern al companiei aeriene. Primește informațiile despre zbor (de exemplu, date JSON) și le trimite înapoi asistentului AI.
Interacțiune Ulterioară: Asistentul AI prezintă opțiunile de zbor. Odată ce utilizatorul selectează un zbor, asistentul poate invoca instrumentul “book flight” pe același server MCP, finalizând rezervarea.
În timp ce MCP se concentrează pe conectarea LLM-urilor la instrumente, protocolul Agent-la-Agent (A2A) merge mai departe, permițând comunicarea și colaborarea între diferiți agenți AI. A2A conectează agenți AI din diferite organizații, medii și stive tehnologice pentru a îndeplini o sarcină comună.
Vom analiza componentele și beneficiile A2A, împreună cu un exemplu despre cum ar putea fi aplicat în aplicația noastră de călătorii.
A2A se concentrează pe facilitarea comunicării între agenți și pe colaborarea acestora pentru a îndeplini o sub-sarcină a utilizatorului. Fiecare componentă a protocolului contribuie la acest scop:
Similar cu modul în care un server MCP partajează o listă de instrumente, un Card al Agentului conține:
Executorul Agentului este responsabil pentru transmiterea contextului conversației utilizatorului către agentul la distanță, astfel încât acesta să înțeleagă sarcina care trebuie îndeplinită. Într-un server A2A, un agent folosește propriul său LLM pentru a analiza cererile primite și pentru a executa sarcini utilizând propriile sale instrumente interne.
Odată ce un agent la distanță a finalizat sarcina solicitată, produsul muncii sale este creat sub forma unui artefact. Un artefact conține rezultatul muncii agentului, o descriere a ceea ce a fost realizat și contextul textului care este transmis prin protocol. După ce artefactul este trimis, conexiunea cu agentul la distanță este închisă până când este necesară din nou.
Această componentă este utilizată pentru gestionarea actualizărilor și transmiterea mesajelor. Este deosebit de importantă în producție pentru sistemele agentice, pentru a preveni închiderea conexiunii între agenți înainte ca o sarcină să fie finalizată, mai ales atunci când timpii de finalizare a sarcinilor pot fi mai lungi.
• Colaborare Îmbunătățită: Permite agenților din diferiți furnizori și platforme să interacționeze, să partajeze context și să colaboreze, facilitând automatizarea fără întreruperi între sisteme tradițional deconectate.
• Flexibilitate în Alegerea Modelului: Fiecare agent A2A poate decide ce LLM utilizează pentru a răspunde cererilor, permițând optimizarea sau ajustarea fină a modelelor pentru fiecare agent, spre deosebire de o conexiune unică LLM în unele scenarii MCP.
• Autentificare Integrată: Autentificarea este integrată direct în protocolul A2A, oferind un cadru de securitate robust pentru interacțiunile între agenți.
Să extindem scenariul nostru de rezervare a călătoriilor, dar de această dată folosind A2A.
Cererea Utilizatorului către Multi-Agent: Un utilizator interacționează cu un “Agent de Călătorii” client/agent A2A, poate spunând: “Te rog, rezervă o călătorie completă la Honolulu pentru săptămâna viitoare, incluzând zboruri, un hotel și o mașină de închiriat”.
Orchestrarea de către Agentul de Călătorii: Agentul de Călătorii primește această cerere complexă. Folosește propriul său LLM pentru a raționa despre sarcină și a determina că trebuie să interacționeze cu alți agenți specializați.
Comunicare între Agenți: Agentul de Călătorii utilizează protocolul A2A pentru a se conecta la agenți specializați, cum ar fi un “Agent Aerian”, un “Agent Hotelier” și un “Agent de Închirieri Auto”, creați de companii diferite.
Executarea Sarcinilor Delegat: Agentul de Călătorii trimite sarcini specifice acestor agenți specializați (de exemplu, “Găsește zboruri către Honolulu”, “Rezervă un hotel”, “Închiriază o mașină”). Fiecare dintre acești agenți specializați, rulând propriile lor LLM-uri și utilizând propriile lor instrumente (care ar putea fi servere MCP în sine), își îndeplinește partea specifică a rezervării.
Răspuns Consolidat: Odată ce toți agenții specializați își finalizează sarcinile, Agentul de Călătorii compilează rezultatele (detalii despre zbor, confirmarea hotelului, rezervarea mașinii) și trimite un răspuns complet, în stil conversațional, înapoi utilizatorului.
Site-urile web au fost mult timp modalitatea principală prin care utilizatorii accesează informații și date pe internet.
Să analizăm diferitele componente ale NLWeb, beneficiile NLWeb și un exemplu despre cum funcționează NLWeb, analizând aplicația noastră de călătorii.
Aplicația NLWeb (Codul Serviciului de Bază): Sistemul care procesează întrebările în limbaj natural. Conectează diferitele părți ale platformei pentru a crea răspunsuri. Poate fi considerat motorul care alimentează funcțiile de limbaj natural ale unui site web.
Protocolul NLWeb: Acesta este un set de reguli de bază pentru interacțiunea în limbaj natural cu un site web. Trimite răspunsuri în format JSON (adesea folosind Schema.org). Scopul său este de a crea o fundație simplă pentru “AI Web”, în același mod în care HTML a făcut posibilă partajarea documentelor online.
Server MCP (Punctul de Acces al Model Context Protocol): Fiecare configurare NLWeb funcționează și ca un server MCP. Acest lucru înseamnă că poate partaja instrumente (cum ar fi o metodă “ask”) și date cu alte sisteme AI. În practică, acest lucru face ca conținutul și abilitățile site-ului să fie utilizabile de agenții AI, permițând site-ului să devină parte a “ecosistemului agentic” mai larg.
Modele de Încorporare: Aceste modele sunt utilizate pentru a converti conținutul site-ului web în reprezentări numerice numite vectori (încorporări). Acești vectori captează semnificația într-un mod pe care computerele îl pot compara și căuta. Sunt stocați într-o bază de date specială, iar utilizatorii pot alege ce model de încorporare doresc să utilizeze.
Baza de Date Vectorială (Mecanism de Regăsire): Această bază de date stochează încorporările conținutului site-ului web. Când cineva pune o întrebare, NLWeb verifică baza de date vectorială pentru a găsi rapid cele mai relevante informații. Oferă o listă rapidă de posibile răspunsuri, clasificate după similaritate. NLWeb funcționează cu diferite sisteme de stocare vectorială, cum ar fi Qdrant, Snowflake, Milvus, Azure AI Search și Elasticsearch.
Să luăm în considerare din nou site-ul nostru de rezervări de călătorii, dar de această dată, alimentat de NLWeb.
Ingestia Datelor: Cataloagele existente ale produselor site-ului de călătorii (de exemplu, listele de zboruri, descrierile hotelurilor, pachetele turistice) sunt formatate folosind Schema.org sau încărcate prin feed-uri RSS. Instrumentele NLWeb preiau aceste date structurate, creează încorporări și le stochează într-o bază de date vectorială locală sau la distanță.
Interogare în Limbaj Natural (Uman): Un utilizator vizitează site-ul și, în loc să navigheze prin meniuri, introduce într-o interfață de chat: “Găsește-mi un hotel prietenos cu familiile în Honolulu, cu piscină, pentru săptămâna viitoare”.
Procesarea NLWeb: Aplicația NLWeb primește această interogare. Trimite interogarea către un LLM pentru înțelegere și, simultan, caută în baza sa de date vectorială pentru listele de hoteluri relevante.
Rezultate Precise: LLM-ul ajută la interpretarea rezultatelor căutării din baza de date, identifică cele mai bune potriviri pe baza criteriilor “prietenos cu familiile”, “piscină” și “Honolulu”, și apoi formatează un răspuns în limbaj natural. Esențial, răspunsul se referă la hoteluri reale din catalogul site-ului, evitând informațiile inventate.
Interacțiunea cu Agenții AI: Deoarece NLWeb servește ca un server MCP, un agent AI extern de călătorii ar putea, de asemenea, să se conecteze la instanța NLWeb a acestui site. Agentul AI ar putea apoi să utilizeze metoda ask
MCP pentru a interoga direct site-ul: ask("Există restaurante prietenoase cu veganii în zona Honolulu recomandate de hotel?")
. Instanța NLWeb ar procesa acest lucru, utilizând baza sa de date cu informații despre restaurante (dacă este încărcată), și ar returna un răspuns structurat în format JSON.
Alătură-te Discordului Azure AI Foundry pentru a te întâlni cu alți cursanți, a participa la ore de consultanță și a primi răspunsuri la întrebările tale despre agenții AI.
Declinare de responsabilitate:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.