ai-agents-for-beginners

Χρήση Agentic Πρωτοκόλλων (MCP, A2A και NLWeb)

Agentic Protocols

(Κάντε κλικ στην παραπάνω εικόνα για να δείτε το βίντεο αυτού του μαθήματος)

Καθώς αυξάνεται η χρήση των AI agents, αυξάνεται και η ανάγκη για πρωτόκολλα που διασφαλίζουν την τυποποίηση, την ασφάλεια και υποστηρίζουν την ανοιχτή καινοτομία. Σε αυτό το μάθημα, θα καλύψουμε 3 πρωτόκολλα που στοχεύουν να καλύψουν αυτή την ανάγκη - το Model Context Protocol (MCP), το Agent to Agent (A2A) και το Natural Language Web (NLWeb).

Εισαγωγή

Σε αυτό το μάθημα, θα καλύψουμε:

• Πώς το MCP επιτρέπει στους AI Agents να έχουν πρόσβαση σε εξωτερικά εργαλεία και δεδομένα για την ολοκλήρωση εργασιών του χρήστη.

• Πώς το A2A επιτρέπει την επικοινωνία και συνεργασία μεταξύ διαφορετικών AI agents.

• Πώς το NLWeb προσφέρει διεπαφές φυσικής γλώσσας σε οποιαδήποτε ιστοσελίδα, επιτρέποντας στους AI Agents να ανακαλύπτουν και να αλληλεπιδρούν με το περιεχόμενο.

Στόχοι Μάθησης

• Αναγνώριση του βασικού σκοπού και των ωφελειών του MCP, A2A, και NLWeb στο πλαίσιο των AI agents.

• Εξήγηση του πώς κάθε πρωτόκολλο διευκολύνει την επικοινωνία και αλληλεπίδραση μεταξύ LLMs, εργαλείων και άλλων agents.

• Αναγνώριση των διακριτών ρόλων που έχει το κάθε πρωτόκολλο στην οικοδόμηση σύνθετων συστημάτων agentic.

Model Context Protocol

Το Model Context Protocol (MCP) είναι ένα ανοιχτό πρότυπο που παρέχει έναν τυποποιημένο τρόπο για εφαρμογές να παρέχουν context και εργαλεία στα LLMs. Αυτό επιτρέπει έναν “καθολικό προσαρμογέα” σε διαφορετικές πηγές δεδομένων και εργαλεία, στα οποία οι AI Agents μπορούν να συνδεθούν με έναν συνεπή τρόπο.

Ας δούμε τα συστατικά του MCP, τα οφέλη του σε σχέση με τη χρήση απευθείας API και ένα παράδειγμα για το πώς οι AI agents μπορεί να χρησιμοποιούν έναν MCP server.

Βασικά Συστατικά MCP

Το MCP λειτουργεί με αρχιτεκτονική πελάτη-διακομιστή και τα βασικά του στοιχεία είναι:

• Hosts είναι εφαρμογές LLM (για παράδειγμα ένας κώδικας επεξεργαστής όπως το VSCode) που ξεκινούν τις συνδέσεις με έναν MCP Server.

• Clients είναι συστατικά μέσα στην εφαρμογή host που διατηρούν συνδέσεις ένα-προς-ένα με τους servers.

• Servers είναι ελαφριά προγράμματα που εκθέτουν συγκεκριμένες δυνατότητες.

Στο πρωτόκολλο περιλαμβάνονται τρεις βασικές αρχές που είναι οι δυνατότητες ενός MCP Server:

• Εργαλεία: Αυτές είναι διακριτές ενέργειες ή λειτουργίες που ένας AI agent μπορεί να καλέσει για να εκτελέσει μια ενέργεια. Για παράδειγμα, μια υπηρεσία καιρού μπορεί να εκθέτει ένα εργαλείο “λήψη καιρού” ή ένας διακομιστής ηλεκτρονικού εμπορίου μπορεί να εκθέτει ένα εργαλείο “αγορά προϊόντος”. Οι MCP servers διαφημίζουν το όνομα κάθε εργαλείου, τη περιγραφή και το σχήμα εισόδου/εξόδου στον κατάλογο δυνατοτήτων τους.

• Πόροι: Αυτά είναι δεδομένα μόνο για ανάγνωση ή έγγραφα που ένας MCP server μπορεί να παρέχει και οι πελάτες μπορούν να τα ανακτήσουν κατά ζήτηση. Παραδείγματα περιλαμβάνουν περιεχόμενο αρχείων, καταγραφές βάσεων δεδομένων ή αρχεία καταγραφής. Οι πόροι μπορεί να είναι κείμενο (όπως κώδικας ή JSON) ή δυαδικά (όπως εικόνες ή PDF).

• Προτροπές: Αυτά είναι προδιαμορφωμένα πρότυπα που παρέχουν προτεινόμενες προτροπές, επιτρέποντας πιο πολύπλοκα ροές εργασίας.

Οφέλη του MCP

Το MCP προσφέρει σημαντικά πλεονεκτήματα για τους AI Agents:

• Δυναμική Ανακάλυψη Εργαλείων: Οι agents μπορούν να λαμβάνουν δυναμικά μια λίστα διαθέσιμων εργαλείων από έναν διακομιστή μαζί με περιγραφές του τι κάνουν. Αυτό αντιπαραβάλλεται με τα παραδοσιακά APIs, που συχνά απαιτούν στατικό κώδικα για ενσωματώσεις, πράγμα που σημαίνει ότι οποιαδήποτε αλλαγή API απαιτεί ενημερώσεις κώδικα. Το MCP προσφέρει μια προσέγγιση “ενσωμάτωση μία φορά”, οδηγώντας σε μεγαλύτερη προσαρμοστικότητα.

• Διαλειτουργικότητα μεταξύ LLMs: Το MCP λειτουργεί μέσω διαφορετικών LLMs, παρέχοντας ευελιξία στην αλλαγή των βασικών μοντέλων για καλύτερη απόδοση.

• Τυποποιημένη Ασφάλεια: Το MCP περιλαμβάνει μια πρότυπη μέθοδο αυθεντικοποίησης, βελτιώνοντας την κλιμάκωση όταν προστίθεται πρόσβαση σε επιπλέον MCP servers. Αυτό είναι απλούστερο από τη διαχείριση διαφορετικών κλειδιών και τύπων αυθεντικοποίησης για διάφορα παραδοσιακά APIs.

Παράδειγμα MCP

MCP Diagram

Φανταστείτε έναν χρήστη που θέλει να κλείσει μια πτήση χρησιμοποιώντας έναν AI βοηθό που λειτουργεί με MCP.

  1. Σύνδεση: Ο AI βοηθός (ο πελάτης MCP) συνδέεται με έναν MCP server που παρέχεται από μια αεροπορική εταιρία.

  2. Ανακάλυψη Εργαλείων: Ο πελάτης ρωτά τον MCP server της αεροπορικής εταιρείας, “Τι εργαλεία έχετε διαθέσιμα;” Ο διακομιστής απαντά με εργαλεία όπως “αναζήτηση πτήσεων” και “κράτηση πτήσεων”.

  3. Κλήση Εργαλείου: Ζητάτε τότε από τον AI βοηθό, “Παρακαλώ αναζήτησε μια πτήση από το Πόρτλαντ προς το Χονολουλού.” Ο AI βοηθός, χρησιμοποιώντας το LLM του, εντοπίζει ότι πρέπει να καλέσει το εργαλείο “αναζήτηση πτήσεων” και περνά τα σχετικά παραμέτρους (αφετηρία, προορισμός) στον MCP server.

  4. Εκτέλεση και Απόκριση: Ο MCP server, ενεργώντας ως περιτύλιγμα, κάνει την πραγματική κλήση στο εσωτερικό API κράτησης της αεροπορικής εταιρείας. Στη συνέχεια λαμβάνει τις πληροφορίες πτήσης (π.χ., δεδομένα JSON) και τις στέλνει πίσω στον AI βοηθό.

  5. Περαιτέρω Αλληλεπίδραση: Ο AI βοηθός παρουσιάζει τις επιλογές πτήσεων. Μόλις επιλέξετε μια πτήση, ο βοηθός μπορεί να καλέσει το εργαλείο “κράτηση πτήσης” στον ίδιο MCP server, ολοκληρώνοντας την κράτηση.

Πρωτόκολλο Agent-to-Agent (A2A)

Ενώ το MCP εστιάζει στη σύνδεση των LLMs με εργαλεία, το Agent-to-Agent (A2A) πρωτόκολλο πηγαίνει ένα βήμα παραπέρα επιτρέποντας την επικοινωνία και συνεργασία μεταξύ διαφορετικών AI agents. Το A2A συνδέει AI agents σε διαφορετικούς οργανισμούς, περιβάλλοντα και τεχνολογικές στοίβες για να ολοκληρώσουν μια κοινή εργασία.

Θα εξετάσουμε τα συστατικά και τα οφέλη του A2A, καθώς και ένα παράδειγμα για το πώς θα μπορούσε να εφαρμοστεί στην εφαρμογή ταξιδιών μας.

Βασικά Συστατικά A2A

Το A2A εστιάζει στην εδραίωση της επικοινωνίας μεταξύ agents και στην συνεργασία τους για την ολοκλήρωση ενός υπο-έργου του χρήστη. Κάθε συστατικό του πρωτοκόλλου συμβάλλει σε αυτό:

Κάρτα Agent

Παρόμοια με το πώς ένας MCP server μοιράζεται μια λίστα εργαλείων, μια Κάρτα Agent έχει:

Εκτελεστής Agent

Ο Εκτελεστής Agent είναι υπεύθυνος για το μεταβίβαση του context της συζήτησης χρήστη στον απομακρυσμένο agent, κάτι που χρειάζεται ο απομακρυσμένος agent για να κατανοήσει την εργασία που πρέπει να ολοκληρωθεί. Σε έναν A2A server, ένας agent χρησιμοποιεί το δικό του Large Language Model (LLM) για να αναλύσει εισερχόμενα αιτήματα και να εκτελέσει εργασίες με τα δικά του εσωτερικά εργαλεία.

Άρθρωμα (Artifact)

Μόλις ένας απομακρυσμένος agent ολοκληρώσει την αιτούμενη εργασία, το προϊόν της εργασίας του δημιουργείται ως άρθρωμα. Ένα άρθρωμα περιέχει το αποτέλεσμα της εργασίας του agent, μια περιγραφή του τι ολοκληρώθηκε και το κειμενικό context που αποστέλλεται μέσω του πρωτοκόλλου. Μετά την αποστολή του αρθρώματος, η σύνδεση με τον απομακρυσμένο agent κλείνει μέχρι να χρειαστεί ξανά.

Ουρά Γεγονότων

Αυτό το συστατικό χρησιμοποιείται για το χειρισμό ενημερώσεων και τη μεταβίβαση μηνυμάτων. Είναι ιδιαίτερα σημαντικό στην παραγωγή για συστήματα agentic ώστε να αποτρέπει το κλείσιμο της σύνδεσης μεταξύ των agents πριν ολοκληρωθεί μια εργασία, ειδικά όταν η ολοκλήρωση εργασιών μπορεί να διαρκέσει αρκετό χρόνο.

Οφέλη του A2A

• Ενισχυμένη Συνεργασία: Επιτρέπει στους agents από διαφορετικούς προμηθευτές και πλατφόρμες να αλληλεπιδρούν, να μοιράζονται context και να συνεργάζονται, διευκολύνοντας την ομαλή αυτοματοποίηση μεταξύ παραδοσιακά αποσυνδεδεμένων συστημάτων.

• Ευελιξία Επιλογής Μοντέλου: Κάθε A2A agent μπορεί να αποφασίσει ποιο LLM χρησιμοποιεί για να εξυπηρετήσει τα αιτήματά του, επιτρέποντας βελτιστοποιημένα ή ειδικά μοντέλα ανά agent, σε αντίθεση με μια μοναδική σύνδεση LLM σε ορισμένα σενάρια MCP.

• Ενσωματωμένη Αυθεντικοποίηση: Η αυθεντικοποίηση είναι ενσωματωμένη απευθείας στο πρωτόκολλο A2A, παρέχοντας ένα ισχυρό πλαίσιο ασφαλείας για τις αλληλεπιδράσεις των agents.

Παράδειγμα A2A

A2A Diagram

Ας επεκτείνουμε το σενάριο κράτησης ταξιδιού, αλλά αυτή τη φορά χρησιμοποιώντας A2A.

  1. Αίτημα Χρήστη σε Πολυ-Agent: Ένας χρήστης αλληλεπιδρά με έναν “Travel Agent” A2A πελάτη/agent, πιθανώς λέγοντας, “Παρακαλώ κλείσε ένα ολόκληρο ταξίδι στο Χονολουλού για την επόμενη εβδομάδα, συμπεριλαμβανομένων πτήσεων, ξενοδοχείου και ενοικίασης αυτοκινήτου”.

  2. Ορχήστρωση από Travel Agent: Ο Travel Agent λαμβάνει αυτό το σύνθετο αίτημα. Χρησιμοποιεί το LLM του για να σκεφτεί την εργασία και να αποφασίσει ότι πρέπει να αλληλεπιδράσει με άλλους εξειδικευμένους agents.

  3. Επικοινωνία μεταξύ Agents: Ο Travel Agent χρησιμοποιεί το πρωτόκολλο A2A για να συνδεθεί με agents χαμηλότερης βαθμίδας, όπως έναν “Airline Agent”, έναν “Hotel Agent” και έναν “Car Rental Agent” που έχουν δημιουργηθεί από διαφορετικές εταιρείες.

  4. Ανάθεση Εκτέλεσης Εργασιών: Ο Travel Agent στέλνει συγκεκριμένες εργασίες σε αυτούς τους εξειδικευμένους agents (π.χ., “Βρες πτήσεις προς Χονολουλού,” “Κλείσε ξενοδοχείο,” “Ενοικίασε αυτοκίνητο”). Κάθε ένας από αυτούς τους εξειδικευμένους agents, που τρέχει το δικό του LLM και χρησιμοποιεί τα δικά του εργαλεία (που μπορεί να είναι και ίδιοι MCP servers), εκτελεί το συγκεκριμένο μέρος της κράτησης.

  5. Συνολική Απόκριση: Μόλις όλοι οι agents χαμηλότερης βαθμίδας ολοκληρώσουν τις εργασίες τους, ο Travel Agent συγκεντρώνει τα αποτελέσματα (λεπτομέρειες πτήσεων, επιβεβαίωση ξενοδοχείου, κράτηση ενοικίασης αυτοκινήτου) και στέλνει μια ολοκληρωμένη, στυλ συνομιλίας, απάντηση πίσω στον χρήστη.

Natural Language Web (NLWeb)

Οι ιστοσελίδες ήταν για μεγάλο χρονικό διάστημα ο κύριος τρόπος για τους χρήστες να έχουν πρόσβαση σε πληροφορίες και δεδομένα στο διαδίκτυο.

Ας δούμε τα διαφορετικά στοιχεία του NLWeb, τα οφέλη του και ένα παράδειγμα πως λειτουργεί το NLWeb μας εξετάζοντας την εφαρμογή ταξιδιών μας.

Συστατικά του NLWeb

NLWeb με Παράδειγμα

NLWeb

Σκεφτείτε ξανά την ιστοσελίδα κράτησης ταξιδιών μας, αλλά αυτή τη φορά, τροφοδοτείται από NLWeb.

  1. Εισαγωγή Δεδομένων: Τα υπάρχοντα καταλόγια προϊόντων της ιστοσελίδας ταξιδιών (π.χ., λίστες πτήσεων, περιγραφές ξενοδοχείων, πακέτα εκδρομών) μορφοποιούνται χρησιμοποιώντας Schema.org ή φορτώνονται μέσω RSS feeds. Τα εργαλεία του NLWeb εισάγουν αυτά τα δομημένα δεδομένα, δημιουργούν embeddings και τα αποθηκεύουν σε τοπική ή απομακρυσμένη βάση δεδομένων διανυσμάτων.

  2. Ερώτηση Φυσικής Γλώσσας (Άνθρωπος): Ένας χρήστης επισκέπτεται την ιστοσελίδα και, αντί να πλοηγηθεί σε μενού, πληκτρολογεί σε μια διεπαφή συνομιλίας: “Βρες μου ένα οικογενειακό ξενοδοχείο στο Χονολουλού με πισίνα για την επόμενη εβδομάδα”.

  3. Επεξεργασία από NLWeb: Η εφαρμογή NLWeb λαμβάνει αυτή την ερώτηση. Την αποστέλλει σε ένα LLM για κατανόηση και ταυτόχρονα αναζητά στη βάση δεδομένων διανυσμάτων της για σχετικά καταλύματα ξενοδοχείου.

  4. Ακριβή Αποτελέσματα: Το LLM βοηθά στην ερμηνεία των αποτελεσμάτων αναζήτησης από τη βάση δεδομένων, εντοπίζει τις καλύτερες αντιστοιχίες με βάση τα κριτήρια “φιλικό προς οικογένειες”, “πισίνα” και “Χονολουλού” και στη συνέχεια μορφοποιεί μια απάντηση φυσικής γλώσσας. Σημαντικό, η απάντηση αναφέρεται σε πραγματικά ξενοδοχεία από τον κατάλογο της ιστοσελίδας, αποφεύγοντας επινοημένες πληροφορίες.

  5. Αλληλεπίδραση AI Agent: Επειδή το NLWeb λειτουργεί ως MCP server, ένας εξωτερικός AI ταξιδιωτικός agent θα μπορούσε επίσης να συνδεθεί με αυτήν την εγκατάσταση NLWeb της ιστοσελίδας. Ο AI agent θα μπορούσε στη συνέχεια να χρησιμοποιήσει τη μέθοδο ask του MCP για να ρωτήσει απευθείας την ιστοσελίδα: ask("Υπάρχουν εστιατόρια φιλικά προς vegan στην περιοχή του Χονολουλού που προτείνονται από το ξενοδοχείο;"). Η εγκατάσταση NLWeb θα το επεξεργαστεί αυτό, αξιοποιώντας τη βάση δεδομένων πληροφοριών εστιατορίων (αν έχει φορτωθεί), και θα επιστρέψει μια δομημένη JSON απάντηση.

Έχετε Περισσότερες Ερωτήσεις για το MCP/A2A/NLWeb;

Ενταχθείτε στο Microsoft Foundry Discord για να γνωρίσετε άλλους μαθητές, να παρακολουθήσετε ώρες γραφείου και να λάβετε απαντήσεις στις ερωτήσεις σας για τους AI Agents.

Πόροι

Προηγούμενο Μάθημα

AI Agents σε Παραγωγή

Επόμενο Μάθημα

Μηχανική Συμφραζομένων για AI Agents


Αποποίηση ευθυνών: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης με τεχνητή νοημοσύνη Co-op Translator. Ενώ επιδιώκουμε την ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.