(Κάντε κλικ στην εικόνα παραπάνω για να δείτε το βίντεο αυτής της διδακτικής ενότητας)
Η κατανόηση της πολυπλοκότητας της εφαρμογής για την οποία κατασκευάζετε έναν πράκτορα τεχνητής νοημοσύνης είναι σημαντική για τη δημιουργία ενός αξιόπιστου πράκτορα. Πρέπει να κατασκευάσουμε πράκτορες AI που να διαχειρίζονται αποτελεσματικά τις πληροφορίες ώστε να καλύπτουν σύνθετες ανάγκες πέρα από τη μηχανική προτροπών.
Σε αυτή τη διδακτική ενότητα, θα δούμε τι είναι η μηχανική συμφραζομένων και ποιος είναι ο ρόλος της στην κατασκευή πράκτορων AI.
Αυτή η διδακτική ενότητα θα καλύψει:
• Τι είναι η Μηχανική Συμφραζομένων και γιατί διαφέρει από τη μηχανική προτροπών.
• Στρατηγικές για αποτελεσματική Μηχανική Συμφραζομένων, συμπεριλαμβανομένου του πώς να γράφετε, να επιλέγετε, να συμπιέζετε και να απομονώνετε πληροφορίες.
• Συνηθισμένες Αποτυχίες Συμφραζομένων που μπορούν να εκτροχιάσουν τον πράκτορά σας και πώς να τις διορθώσετε.
Μετά την ολοκλήρωση αυτής της διδακτικής ενότητας, θα κατανοείτε πώς να:
• Ορίσετε τη μηχανική συμφραζομένων και να τη διακρίνετε από τη μηχανική προτροπών.
• Εντοπίσετε τα βασικά συστατικά των συμφραζομένων σε εφαρμογές με Μεγάλα Γλωσσικά Μοντέλα (LLM).
• Εφαρμόσετε στρατηγικές για τη γραφή, την επιλογή, τη συμπίεση και την απομόνωση των συμφραζομένων για να βελτιώσετε την απόδοση των πρακτόρων.
• Αναγνωρίσετε συνηθισμένες αποτυχίες συμφραζομένων όπως μόλυνση, απόσπαση, σύγχυση και σύγκρουση, και να εφαρμόσετε τεχνικές μετριασμού.
Για τους πράκτορες AI, τα συμφραζόμενα είναι αυτά που καθοδηγούν τον σχεδιασμό ενός πράκτορα για να λάβει συγκεκριμένες ενέργειες. Η Μηχανική Συμφραζομένων είναι η πρακτική της διασφάλισης ότι ο πράκτορας έχει τις σωστές πληροφορίες για να ολοκληρώσει το επόμενο βήμα του έργου. Το παράθυρο συμφραζομένων έχει περιορισμένο μέγεθος, οπότε ως δημιουργοί πρακτόρων πρέπει να κατασκευάσουμε συστήματα και διαδικασίες για να διαχειριζόμαστε την προσθήκη, την αφαίρεση και τη συμπύκνωση των πληροφοριών στο παράθυρο συμφραζομένων.
Η μηχανική προτροπών επικεντρώνεται σε ένα ενιαίο σύνολο στατικών οδηγιών για να καθοδηγήσει αποτελεσματικά τους πράκτορες AI με ένα σύνολο κανόνων. Η μηχανική συμφραζομένων είναι ο τρόπος διαχείρισης ενός δυναμικού συνόλου πληροφοριών, συμπεριλαμβανομένης της αρχικής προτροπής, για να εξασφαλιστεί ότι ο πράκτορας έχει ό,τι χρειάζεται με την πάροδο του χρόνου. Η βασική ιδέα γύρω από τη μηχανική συμφραζομένων είναι να κάνουμε αυτή τη διαδικασία επαναλαμβανόμενη και αξιόπιστη.
Είναι σημαντικό να θυμάστε ότι τα συμφραζόμενα δεν είναι μόνο ένα πράγμα. Οι πληροφορίες που χρειάζεται ο πράκτορας μπορούν να προέρχονται από μια ποικιλία διαφορετικών πηγών και είναι δική μας ευθύνη να διασφαλίσουμε ότι ο πράκτορας έχει πρόσβαση σε αυτές τις πηγές:
Οι τύποι συμφραζομένων που ένας πράκτορας AI μπορεί να χρειαστεί να διαχειριστεί περιλαμβάνουν:
• Οδηγίες: Αυτές είναι σαν τους “κανόνες” του πράκτορα – προτροπές, μηνύματα συστήματος, παραδείγματα few-shot (που δείχνουν στο AI πώς να κάνει κάτι) και περιγραφές εργαλείων που μπορεί να χρησιμοποιήσει. Εδώ συνδυάζεται η εστίαση της μηχανικής προτροπών με τη μηχανική συμφραζομένων.
• Γνώση: Αυτό καλύπτει γεγονότα, πληροφορίες που ανακτώνται από βάσεις δεδομένων ή μακροχρόνιες «μνήμες» που έχει συσσωρεύσει ο πράκτορας. Αυτό περιλαμβάνει την ενσωμάτωση ενός συστήματος Retrieval Augmented Generation (RAG) αν ένας πράκτορας χρειάζεται πρόσβαση σε διαφορετικά αποθετήρια γνώσης και βάσεις δεδομένων.
• Εργαλεία: Αυτά είναι οι ορισμοί εξωτερικών λειτουργιών, APIs και MCP Servers που μπορεί να καλέσει ο πράκτορας, μαζί με τα αποτελέσματα (feedback) που παίρνει από τη χρήση τους.
• Ιστορικό Συνομιλίας: Ο διαρκής διάλογος με έναν χρήστη. Με την πάροδο του χρόνου, αυτές οι συνομιλίες γίνονται μεγαλύτερες και πιο σύνθετες, πράγμα που σημαίνει ότι καταλαμβάνουν χώρο στο παράθυρο συμφραζομένων.
• Προτιμήσεις Χρήστη: Πληροφορίες που μαθαίνονται για τις προτιμήσεις ή τις αποστροφές ενός χρήστη με την πάροδο του χρόνου. Αυτές μπορούν να αποθηκευτούν και να ανακληθούν όταν λαμβάνονται σημαντικές αποφάσεις για να βοηθήσουν τον χρήστη.
Καλή μηχανική συμφραζομένων ξεκινά με καλό σχεδιασμό. Ακολουθεί μια προσέγγιση που θα σας βοηθήσει να αρχίσετε να σκέφτεστε πώς να εφαρμόσετε την έννοια της μηχανικής συμφραζομένων:
Ο σχεδιασμός είναι σημαντικός αλλά μόλις οι πληροφορίες αρχίσουν να ρέουν στο παράθυρο συμφραζομένων του πράκτορα, χρειαζόμαστε πρακτικές στρατηγικές για να τις διαχειριστούμε:
Ενώ ορισμένες πληροφορίες θα προστεθούν στο παράθυρο συμφραζομένων αυτόματα, η μηχανική συμφραζομένων αφορά την ανάληψη πιο ενεργού ρόλου σε αυτές τις πληροφορίες, κάτι που μπορεί να γίνει με μερικές στρατηγικές:
Σημειωματάριο Πράκτορα Αυτό επιτρέπει σε έναν πράκτορα AI να κρατά σημειώσεις με σχετικές πληροφορίες για τα τρέχοντα έργα και τις αλληλεπιδράσεις με τον χρήστη κατά τη διάρκεια μιας μεμονωμένης συνεδρίας. Αυτό θα πρέπει να υπάρχει εκτός του παραθύρου συμφραζομένων σε ένα αρχείο ή αντικείμενο runtime που ο πράκτορας μπορεί να ανακτήσει αργότερα κατά τη διάρκεια αυτής της συνεδρίας αν χρειαστεί.
Αναμνήσεις Τα σημειωματάρια είναι καλά για τη διαχείριση πληροφοριών εκτός του παραθύρου συμφραζομένων μιας μεμονωμένης συνεδρίας. Οι αναμνήσεις επιτρέπουν στους πράκτορες να αποθηκεύουν και να ανακαλούν σχετικές πληροφορίες διαχρονικά, σε πολλαπλές συνεδρίες. Αυτό μπορεί να περιλαμβάνει περιλήψεις, προτιμήσεις χρήστη και ανατροφοδότηση για μελλοντικές βελτιώσεις.
Συμπίεση Συμφραζομένων Μόλις το παράθυρο συμφραζομένων μεγαλώσει και πλησιάσει το όριό του, μπορούν να χρησιμοποιηθούν τεχνικές όπως η σύνοψή και το τριμάρισμα. Αυτό περιλαμβάνει είτε τη διατήρηση μόνο των πιο σχετικών πληροφοριών είτε την αφαίρεση παλαιότερων μηνυμάτων.
Συστήματα Πολλαπλών Πρακτόρων Η ανάπτυξη συστημάτων πολλαπλών πρακτόρων είναι μια μορφή μηχανικής συμφραζομένων επειδή κάθε πράκτορας έχει το δικό του παράθυρο συμφραζομένων. Το πώς αυτά τα συμφραζόμενα μοιράζονται και περνούν σε διαφορετικούς πράκτορες είναι κάτι που πρέπει να σχεδιαστεί όταν χτίζετε αυτά τα συστήματα.
Περιβάλλοντα Sandbox Αν ένας πράκτορας χρειάζεται να εκτελέσει κώδικα ή να επεξεργαστεί μεγάλες ποσότητες πληροφοριών σε ένα έγγραφο, αυτό μπορεί να απαιτήσει μεγάλο αριθμό tokens για την επεξεργασία των αποτελεσμάτων. Αντί να αποθηκεύονται όλα στο παράθυρο συμφραζομένων, ο πράκτορας μπορεί να χρησιμοποιήσει ένα περιβάλλον sandbox που μπορεί να εκτελέσει αυτόν τον κώδικα και να διαβάσει μόνο τα αποτελέσματα και άλλες σχετικές πληροφορίες.
Αντικείμενα Κατάστασης Εκτέλεσης Αυτό επιτυγχάνεται με τη δημιουργία δοχείων πληροφοριών για τη διαχείριση καταστάσεων όταν ο πράκτορας χρειάζεται πρόσβαση σε ορισμένες πληροφορίες. Για μια σύνθετη εργασία, αυτό θα επέτρεπε σε έναν πράκτορα να αποθηκεύει τα αποτελέσματα κάθε υπο-βήματος βήμα προς βήμα, επιτρέποντας στο πλαίσιο να παραμένει συνδεδεμένο μόνο με το συγκεκριμένο υπο-βήμα.
Ας υποθέσουμε ότι θέλουμε από έναν πράκτορα AI να “Κλείσει ένα ταξίδι για μένα στο Παρίσι.”
• Ένας απλός πράκτορας που χρησιμοποιεί μόνο μηχανική προτροπών μπορεί απλά να απαντήσει: “Εντάξει, πότε θα θέλατε να πάτε στο Παρίσι;”. Επεξεργάστηκε μόνο την άμεση ερώτησή σας τη στιγμή που τη διατυπώσατε.
• Ένας πράκτορας που χρησιμοποιεί τις στρατηγικές μηχανικής συμφραζομένων που καλύφθηκαν θα έκανε πολύ περισσότερα. Πριν καν απαντήσει, το σύστημά του μπορεί να:
◦ Ελέγξει το ημερολόγιό σας για διαθέσιμες ημερομηνίες (ανακτώντας δεδομένα σε πραγματικό χρόνο).
◦ Ανακαλέσει προηγούμενες ταξιδιωτικές προτιμήσεις (από μακροχρόνια μνήμη) όπως την προτιμώμενη αεροπορική εταιρεία, τον προϋπολογισμό σας ή αν προτιμάτε απευθείας πτήσεις.
◦ Εντοπίσει διαθέσιμα εργαλεία για κράτηση πτήσεων και ξενοδοχείων.
Τι είναι: Όταν μια παραισθητική πληροφορία (ψευδής πληροφορία που παράγεται από το LLM) ή ένα σφάλμα εισέρχεται στα συμφραζόμενα και αναφέρεται επανειλημμένα, προκαλώντας τον πράκτορα να επιδιώκει αδύνατους στόχους ή να αναπτύσσει ανοησίες στρατηγικές.
Τι να κάνετε: Εφαρμόστε επικύρωση συμφραζομένων και καραντίνα. Επικυρώστε τις πληροφορίες πριν προστεθούν στη μακροχρόνια μνήμη. Αν εντοπιστεί πιθανή μόλυνση, ξεκινήστε φρέσκα νήματα συμφραζομένων για να αποτρέψετε τη διάδοση της λανθασμένης πληροφορίας.
Παράδειγμα Κράτησης Ταξιδιού: Ο πράκτοράς σας παραισιώνει μια απευθείας πτήση από ένα μικρό τοπικό αεροδρόμιο σε μια απομακρυσμένη διεθνή πόλη που στην πραγματικότητα δεν προσφέρει διεθνείς πτήσεις. Αυτή η μη υπαρκτή λεπτομέρεια πτήσης αποθηκεύεται στα συμφραζόμενα. Αργότερα, όταν ζητήσετε από τον πράκτορα να κλείσει εισιτήρια, συνεχίζει να προσπαθεί να βρει εισιτήρια για αυτή τη αδύνατη διαδρομή, οδηγώντας σε επαναλαμβανόμενα σφάλματα.
Λύση: Εφαρμόστε ένα βήμα που επικυρώνει την ύπαρξη και τις διαδρομές πτήσεων με ένα API σε πραγματικό χρόνο πριν προστεθεί η λεπτομέρεια πτήσης στο λειτουργικό πλαίσιο του πράκτορα. Αν η επικύρωση αποτύχει, η λανθασμένη πληροφορία «καραντάρεται» και δεν χρησιμοποιείται περαιτέρω.
Τι είναι: Όταν το πλαίσιο γίνεται τόσο μεγάλο ώστε το μοντέλο να επικεντρώνεται υπερβολικά στο συσσωρευμένο ιστορικό αντί να χρησιμοποιεί όσα έχει μάθει κατά την εκπαίδευση, οδηγώντας σε επαναληπτικές ή μη βοηθητικές ενέργειες. Τα μοντέλα μπορεί να αρχίσουν να κάνουν λάθη ακόμα και πριν το παράθυρο συμφραζομένων γεμίσει.
Τι να κάνετε: Χρησιμοποιήστε συνοψίσεις συμφραζομένων. Περιοδικά συμπιέστε τις συσσωρευμένες πληροφορίες σε συντομότερες περιλήψεις, διατηρώντας σημαντικές λεπτομέρειες και αφαιρώντας επαναλαμβανόμενο ιστορικό. Αυτό βοηθάει να «επαναφέρετε» την εστίαση.
Παράδειγμα Κράτησης Ταξιδιού: Συζητάτε για πολύ καιρό διάφορους ιδανικούς προορισμούς ταξιδιού, συμπεριλαμβανομένης μιας λεπτομερούς αναδρομής του ταξιδιού σας με σακίδιο πριν από δύο χρόνια. Όταν τελικά ζητήσετε “βρείτε μου μια φθηνή πτήση για τον επόμενο μήνα,” ο πράκτορας μπλέκεται στις παλιές, άσχετες λεπτομέρειες και συνεχίζει να ρωτά για τον εξοπλισμό σακιδίου ή τα παλιά δρομολόγια, παραμελώντας το τρέχον αίτημά σας.
Λύση: Μετά από έναν ορισμένο αριθμό γύρων ή όταν το πλαίσιο μεγαλώσει πολύ, ο πράκτορας θα πρέπει να συνοψίζει τα πιο πρόσφατα και σχετικά μέρη της συνομιλίας – επικεντρώνοντας στις τρέχουσες ημερομηνίες ταξιδιού και προορισμό – και να χρησιμοποιεί αυτή τη συμπυκνωμένη περίληψη στην επόμενη κλήση προς το LLM, απορρίπτοντας την λιγότερο σχετική ιστορική συνομιλία.
Τι είναι: Όταν περιττά συμφραζόμενα, συχνά με τη μορφή πάρα πολλών διαθέσιμων εργαλείων, προκαλούν στο μοντέλο να παράγει κακές απαντήσεις ή να καλεί άσχετα εργαλεία. Τα μικρότερα μοντέλα είναι ιδιαίτερα επιρρεπή σε αυτό.
Τι να κάνετε: Εφαρμόστε διαχείριση φόρτου εργαλείων χρησιμοποιώντας τεχνικές RAG. Αποθηκεύστε περιγραφές εργαλείων σε μια βάση δεδομένων vector και επιλέξτε μόνο τα πιο σχετικά εργαλεία για κάθε συγκεκριμένη εργασία. Έρευνες δείχνουν ότι είναι χρήσιμο να περιορίζετε τις επιλογές εργαλείων σε λιγότερα από 30.
Παράδειγμα Κράτησης Ταξιδιού: Ο πράκτοράς σας έχει πρόσβαση σε δεκάδες εργαλεία: book_flight, book_hotel, rent_car, find_tours, currency_converter, weather_forecast, restaurant_reservations, κ.λπ. Ρωτάτε, “Ποιος είναι ο καλύτερος τρόπος να κινηθώ στο Παρίσι;” Λόγω του πλήθους των εργαλείων, ο πράκτορας μπερδεύεται και προσπαθεί να καλέσει book_flight εντός του Παρισιού, ή rent_car παρόλο που προτιμάτε τα μέσα μαζικής μεταφοράς, επειδή οι περιγραφές εργαλείων μπορεί να επικαλύπτονται ή απλώς δεν μπορεί να διακρίνει το καλύτερο.
Λύση: Χρησιμοποιήστε RAG πάνω από τις περιγραφές εργαλείων. Όταν ρωτάτε για το πώς να κινηθείτε στο Παρίσι, το σύστημα ανακτά δυναμικά μόνο τα πιο σχετικά εργαλεία όπως rent_car ή public_transport_info με βάση το ερώτημά σας, παρουσιάζοντας ένα στοχευμένο “φορτίο” εργαλείων στο LLM.
Τι είναι: Όταν υπάρχουν ανταγωνιστικές πληροφορίες μέσα στο πλαίσιο, οδηγώντας σε ελλειπή λογική ή κακά τελικά αποτελέσματα. Αυτό συχνά συμβαίνει όταν οι πληροφορίες φτάνουν σε στάδια, και οι πρώιμες, λανθασμένες υποθέσεις παραμένουν στο πλαίσιο.
Τι να κάνετε: Χρησιμοποιήστε κλάδεμα συμφραζομένων και αποφόρτωση. Το κλάδεμα σημαίνει την αφαίρεση ξεπερασμένων ή αντικρουόμενων πληροφοριών καθώς φτάνουν νέες λεπτομέρειες. Η αποφόρτωση δίνει στο μοντέλο έναν ξεχωριστό χώρο εργασίας “σημειωματάριο” για να επεξεργαστεί πληροφορίες χωρίς να γεμίζει το κύριο πλαίσιο.
Παράδειγμα Κράτησης Ταξιδιού: Αρχικά λέτε στον πράκτορά σας, “Θέλω να πετάξω με οικονομική θέση.” Αργότερα στη συνομιλία αλλάζετε γνώμη και λέτε, “Στην πραγματικότητα, για αυτό το ταξίδι ας πάμε business class.” Αν και οι δύο οδηγίες παραμείνουν στο πλαίσιο, ο πράκτορας μπορεί να λάβει αντικρουόμενα αποτελέσματα αναζήτησης ή να μπερδευτεί σχετικά με το ποια προτίμηση να προτεραιοποιήσει.
Λύση: Εφαρμόστε κλάδεμα συμφραζομένων. Όταν μια νέα οδηγία έρχεται σε αντίθεση με μια παλιά, η παλαιότερη οδηγία αφαιρείται ή καταργείται ρητά από το πλαίσιο. Εναλλακτικά, ο πράκτορας μπορεί να χρησιμοποιήσει ένα σημειωματάριο για να συμφιλιώσει αντικρουόμενες προτιμήσεις πριν αποφασίσει, διασφαλίζοντας ότι μόνο η τελική, συνεπής οδηγία καθοδηγεί τις ενέργειές του.
Εγγραφείτε στο Discord του Microsoft Foundry για να συναντήσετε άλλους μαθητές, να παρακολουθήσετε ώρες γραφείου και να λάβετε απαντήσεις στις ερωτήσεις σας για Πράκτορες AI.
Αποποίηση ευθυνών: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης με ΤΝ Co-op Translator (https://github.com/Azure/co-op-translator). Παρόλο που καταβάλουμε προσπάθειες για ακρίβεια, παρακαλούμε να λάβετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στην αρχική του γλώσσα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρερμηνείες ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.