ai-agents-for-beginners

Μνήμη για Πράκτορες Τεχνητής Νοημοσύνης

Agent Memory

Όταν συζητάμε για τα μοναδικά οφέλη της δημιουργίας Πρακτόρων Τεχνητής Νοημοσύνης, κυρίως αναφέρονται δύο πράγματα: η δυνατότητα να καλούν εργαλεία για να ολοκληρώσουν εργασίες και η δυνατότητα να βελτιώνονται με τον χρόνο. Η μνήμη είναι η βάση για τη δημιουργία ενός αυτό-βελτιούμενου πράκτορα που μπορεί να δημιουργεί καλύτερες εμπειρίες για τους χρήστες μας.

Σ’ αυτό το μάθημα, θα δούμε τι είναι η μνήμη για τους Πράκτορες ΤΝ και πώς μπορούμε να τη διαχειριστούμε και να τη χρησιμοποιήσουμε προς όφελος των εφαρμογών μας.

Εισαγωγή

Αυτό το μάθημα καλύπτει:

Κατανόηση της Μνήμης Πράκτορα ΤΝ: Τι είναι η μνήμη και γιατί είναι ουσιώδης για τους πράκτορες.

Εφαρμογή και Αποθήκευση Μνήμης: Πρακτικές μέθοδοι για την προσθήκη δυνατοτήτων μνήμης στους πράκτορες ΤΝ, με έμφαση στη βραχυπρόθεσμη και μακροπρόθεσμη μνήμη.

Κάνοντας τους Πράκτορες ΤΝ Αυτοβελτιούμενους: Πώς η μνήμη επιτρέπει στους πράκτορες να μαθαίνουν από προηγούμενες αλληλεπιδράσεις και να βελτιώνονται με τον χρόνο.

Διαθέσιμες Υλοποιήσεις

Αυτό το μάθημα περιλαμβάνει δύο πλήρεις οδηγούς σε σημειωματάρια:

13-agent-memory.ipynb: Υλοποιεί μνήμη χρησιμοποιώντας Mem0 και Azure AI Search με το Microsoft Agent Framework

13-agent-memory-cognee.ipynb: Υλοποιεί δομημένη μνήμη χρησιμοποιώντας Cognee, που δημιουργεί αυτόματα γράφο γνώσης υποστηριζόμενο από embeddings, οπτικοποιώντας τον γράφο και προσφέρει ευφυή ανάκτηση

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

Μετά την ολοκλήρωση αυτού του μαθήματος, θα γνωρίζετε πώς να:

Διαχωρίσετε μεταξύ διαφόρων τύπων μνήμης πράκτορα ΤΝ, όπως η εργασιακή, η βραχυπρόθεσμη, και η μακροπρόθεσμη μνήμη καθώς και εξειδικευμένοι τύποι όπως η μνήμη persona και η επεισοδιακή μνήμη.

Υλοποιείτε και διαχειρίζεστε τη βραχυπρόθεσμη και μακροπρόθεσμη μνήμη για πράκτορες ΤΝ χρησιμοποιώντας το Microsoft Agent Framework, αξιοποιώντας εργαλεία όπως το Mem0, Cognee, τη μνήμη Whiteboard και ενσωματώνοντας με την Azure AI Search.

Καταλάβετε τις αρχές πίσω από τους αυτοβελτιούμενους πράκτορες ΤΝ και πώς τα ανθεκτικά συστήματα διαχείρισης μνήμης συμβάλλουν στη συνεχή μάθηση και προσαρμογή.

Κατανόηση της Μνήμης Πράκτορα ΤΝ

Στον πυρήνα της, η μνήμη για πράκτορες ΤΝ αναφέρεται στους μηχανισμούς που τους επιτρέπουν να διατηρούν και να ανακαλούν πληροφορίες. Αυτές οι πληροφορίες μπορεί να είναι συγκεκριμένες λεπτομέρειες για μια συνομιλία, προτιμήσεις χρήστη, παρελθούσες ενέργειες ή ακόμα και μάθηση μοτίβων.

Χωρίς μνήμη, οι εφαρμογές ΤΝ είναι συχνά χωρίς κατάσταση (stateless), που σημαίνει ότι κάθε αλληλεπίδραση ξεκινά από την αρχή. Αυτό οδηγεί σε επαναλαμβανόμενη και απογοητευτική εμπειρία χρήστη όπου ο πράκτορας “ξεχνά” το προηγούμενο πλαίσιο ή τις προτιμήσεις.

Γιατί είναι σημαντική η Μνήμη;

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

Ανακλαστικοί: Μαθαίνοντας από παρελθουσες ενέργειες και αποτελέσματα.

Διαδραστικοί: Διατηρώντας το πλαίσιο σε μια συνεχιζόμενη συνομιλία.

Προληπτικοί και Αντιδραστικοί: Προβλέποντας ανάγκες ή αντιδρώντας καταλλήλως βάσει ιστορικών δεδομένων.

Αυτόνομοι: Λειτουργώντας πιο ανεξάρτητα αξιοποιώντας αποθηκευμένη γνώση.

Ο στόχος της υλοποίησης μνήμης είναι να κάνει τους πράκτορες πιο αξιόπιστους και ικανούς.

Τύποι Μνήμης

Εργασιακή Μνήμη

Σκεφτείτε το ως ένα κομμάτι χαρτί σκέψης που χρησιμοποιεί ο πράκτορας κατά τη διάρκεια μιας ενιαίας, συνεχιζόμενης εργασίας ή διαδικασίας σκέψης. Κρατά άμεσες πληροφορίες που χρειάζονται για τον επόμενο υπολογισμό.

Για πράκτορες ΤΝ, η εργασιακή μνήμη συχνά καταγράφει τις πιο σχετικές πληροφορίες μιας συνομιλίας, ακόμα κι αν το πλήρες ιστορικό συνομιλίας είναι μακρύ ή περικομμένο. Εστιάζει στην εξαγωγή βασικών στοιχείων όπως απαιτήσεις, προτάσεις, αποφάσεις και ενέργειες.

Παράδειγμα Εργασιακής Μνήμης

Σ’ έναν πράκτορα κρατήσεων ταξιδιών, η εργασιακή μνήμη μπορεί να καταγράψει το τρέχον αίτημα του χρήστη, όπως “Θέλω να κλείσω ταξίδι στο Παρίσι”. Αυτή η συγκεκριμένη απαίτηση κρατιέται στο άμεσο πλαίσιο του πράκτορα για να καθοδηγήσει την τρέχουσα αλληλεπίδραση.

Βραχυπρόθεσμη Μνήμη

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

Στα δείγματα Python SDK του Microsoft Agent Framework, αυτό αντιστοιχεί στο AgentSession, που δημιουργείται με agent.create_session(). Η συνεδρία είναι η ενσωματωμένη βραχυπρόθεσμη μνήμη του πλαισίου: κρατά διαθέσιμο το πλαίσιο συνομιλίας όσο ξαναχρησιμοποιείται η ίδια συνεδρία, αλλά το πλαίσιο αυτό δεν διατηρείται όταν η συνεδρία τελειώνει ή η εφαρμογή επανεκκινείται. Χρησιμοποιήστε τη μακροπρόθεσμη μνήμη για γεγονότα και προτιμήσεις που πρέπει να επιβιώσουν ανάμεσα σε συνεδρίες, συνήθως μέσω βάσης δεδομένων, ευρετηρίου διανυσμάτων ή άλλου επίμονου αποθετηρίου.

Παράδειγμα Βραχυπρόθεσμης Μνήμης

Αν ένας χρήστης ρωτήσει, “Πόσο κοστίζει μια πτήση για το Παρίσι;” και μετά συνεχίσει με “Τι γίνεται με τη διαμονή εκεί;”, η βραχυπρόθεσμη μνήμη εξασφαλίζει ότι ο πράκτορας ξέρει πως το “εκεί” αναφέρεται στο “Παρίσι” μέσα στην ίδια συνομιλία.

Μακροπρόθεσμη Μνήμη

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

Παράδειγμα Μακροπρόθεσμης Μνήμης

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

Μνήμη Persona

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

Παράδειγμα Μνήμης Persona Αν ο ταξιδιωτικός πράκτορας έχει σχεδιαστεί ως “ειδικός στον προγραμματισμό σκι”, η μνήμη persona μπορεί να ενισχύει αυτόν τον ρόλο, επηρεάζοντας τις απαντήσεις του ώστε να ευθυγραμμίζονται με τον τόνο και τη γνώση ενός ειδικού.

Μνήμη Ροής/Επεισοδιακή Μνήμη

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

Παράδειγμα Επεισοδιακής Μνήμης

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

Μνήμη Οντοτήτων

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

Παράδειγμα Μνήμης Οντοτήτων

Από μια συνομιλία για ένα παρελθόν ταξίδι, ο πράκτορας μπορεί να εξαγάγει “Παρίσι,” “Πύργος του Άιφελ,” και “δείπνο στο εστιατόριο Le Chat Noir” ως οντότητες. Σε μελλοντική αλληλεπίδραση, μπορεί να θυμάται το “Le Chat Noir” και να προσφέρει να κάνει μια νέα κράτηση εκεί.

Δομημένο RAG (Ανάκτηση με Ενισχυμένη Γεννήτρια)

Ενώ το RAG είναι μια ευρύτερη τεχνική, το “Δομημένο RAG” επισημαίνεται ως μια ισχυρή τεχνολογία μνήμης. Εξάγει πυκνές, δομημένες πληροφορίες από διάφορες πηγές (συνομιλίες, email, εικόνες) και τις χρησιμοποιεί για να βελτιώσει την ακρίβεια, την ανάκληση και την ταχύτητα στις απαντήσεις. Σε αντίθεση με το κλασικό RAG που βασίζεται αποκλειστικά στη σημασιολογική ομοιότητα, το Δομημένο RAG λειτουργεί με την εγγενή δομή των πληροφοριών.

Παράδειγμα Δομημένου RAG

Αντί να ταιριάζει απλώς λέξεις-κλειδιά, το Δομημένο RAG μπορεί να αναλύσει λεπτομέρειες πτήσης (προορισμός, ημερομηνία, ώρα, αεροπορική εταιρεία) από ένα email και να τις αποθηκεύσει με δομημένο τρόπο. Αυτό επιτρέπει ακριβείς ερωτήσεις όπως “Ποια πτήση έκλεισα για το Παρίσι την Τρίτη;”

Υλοποίηση και Αποθήκευση Μνήμης

Η υλοποίηση μνήμης για πράκτορες ΤΝ περιλαμβάνει μια συστηματική διαδικασία διαχείρισης μνήμης, που περιλαμβάνει τη δημιουργία, αποθήκευση, ανάκτηση, ενσωμάτωση, ενημέρωση, και ακόμη και “λήθη” (ή διαγραφή) πληροφοριών. Η ανάκτηση είναι ένα ιδιαίτερα κρίσιμο στοιχείο.

Εξειδικευμένα Εργαλεία Μνήμης

Mem0

Ένας τρόπος για να αποθηκεύσετε και να διαχειριστείτε τη μνήμη του πράκτορα είναι η χρήση εξειδικευμένων εργαλείων όπως το Mem0. Το Mem0 λειτουργεί ως μια επίμονη στρώση μνήμης, επιτρέποντας στους πράκτορες να ανακαλούν σχετικές αλληλεπιδράσεις, να αποθηκεύουν προτιμήσεις χρηστών και πραγματικό πλαίσιο, και να μαθαίνουν από επιτυχίες και αποτυχίες με τον χρόνο. Η ιδέα εδώ είναι πως οι πράκτορες χωρίς κατάσταση μετατρέπονται σε πράκτορες με κατάσταση.

Λειτουργεί μέσω ενός διφασικού σωλήνα μνήμης: εξαγωγή και ενημέρωση. Αρχικά, τα μηνύματα που προστίθενται στο νήμα ενός πράκτορα αποστέλλονται στην υπηρεσία Mem0, που χρησιμοποιεί ένα Μεγάλο Γλωσσικό Μοντέλο (LLM) για να συνοψίσει το ιστορικό συνομιλίας και να εξάγει νέες μνήμες. Κατόπιν, μια φάση ενημέρωσης με LLM αποφασίζει αν θα προσθέσει, τροποποιήσει ή διαγράψει αυτές τις μνήμες, αποθηκεύοντάς τις σε ένα υβριδικό αποθετήριο δεδομένων που μπορεί να περιλαμβάνει βάσεις δεδομένων διανυσμάτων, γράφων και ζευγών κλειδί-τιμή. Αυτό το σύστημα υποστηρίζει επίσης διάφορους τύπους μνήμης και μπορεί να ενσωματώσει μνήμη γράφου για τη διαχείριση σχέσεων μεταξύ οντοτήτων.

Cognee

Μια άλλη ισχυρή προσέγγιση είναι η χρήση του Cognee, μιας ανοιχτού κώδικα σημασιολογικής μνήμης για πράκτορες ΤΝ που μετατρέπει δομημένα και αδόμητα δεδομένα σε γράφους γνώσης αναζητήσιμους, υποστηριζόμενους από embeddings. Το Cognee προσφέρει μια αρχιτεκτονική διπλού αποθηκευτικού χώρου που συνδυάζει αναζήτηση διανυσματικής ομοιότητας με σχέσεις γράφου, επιτρέποντας στους πράκτορες να κατανοούν όχι μόνο ποια πληροφορία είναι παρόμοια, αλλά και πώς συνδέονται οι έννοιες μεταξύ τους.

Διακρίνεται στην υβριδική ανάκτηση που συνδυάζει διανυσματική ομοιότητα, δομή γράφου και λογική LLM - από αναζήτηση ακατέργαστου τμήματος έως ερωτήσεις ευαισθητοποιημένες στο γράφο. Το σύστημα διατηρεί ζωντανή μνήμη που εξελίσσεται και μεγαλώνει ενώ παραμένει αναζητήσιμη ως ένας ενωμένος γράφος, υποστηρίζοντας τόσο το πλαίσιο συνεδρίας βραχυπρόθεσμα όσο και τη μόνιμη μακροπρόθεσμη μνήμη.

Το σημειωματάριο Cognee (13-agent-memory-cognee.ipynb) παρουσιάζει την κατασκευή αυτής της ενοποιημένης στρώσης μνήμης, με πρακτικά παραδείγματα απόκτησης ποικίλων πηγών δεδομένων, απεικόνισης του γράφου γνώσης και ερωτήσεων με διαφορετικές στρατηγικές αναζήτησης προσαρμοσμένες στις ανάγκες του συγκεκριμένου πράκτορα.

Αποθήκευση Μνήμης με RAG

Πέρα από τα εξειδικευμένα εργαλεία μνήμης όπως το Mem0, μπορείτε να χρησιμοποιήσετε ισχυρές υπηρεσίες αναζήτησης όπως το Azure AI Search ως backend για αποθήκευση και ανάκτηση μνημών, ειδικά για δομημένο RAG.

Αυτό σας επιτρέπει να βασίζετε τις απαντήσεις του πράκτορα σε δικά σας δεδομένα, εξασφαλίζοντας πιο σχετικές και ακριβείς απαντήσεις. Το Azure AI Search μπορεί να χρησιμοποιηθεί για να αποθηκεύσει ταξιδιωτικές μνήμες συγκεκριμένων χρηστών, κατάλογους προϊόντων ή οποιαδήποτε άλλη γνώση σχετική με το πεδίο.

Το Azure AI Search υποστηρίζει δυνατότητες όπως το Δομημένο RAG, που διακρίνεται στην εξαγωγή και ανάκτηση πυκνών, δομημένων πληροφοριών από μεγάλα σύνολα δεδομένων όπως ιστορικά συνομιλιών, emails ή ακόμα και εικόνες. Αυτό παρέχει “υπερανθρώπινη ακρίβεια και ανάκληση” σε σύγκριση με παραδοσιακές προσεγγίσεις διαχωρισμού κειμένου και ενσωμάτωσης.

Κάνοντας τους Πράκτορες ΤΝ να Αυτοβελτιώνονται

Ένα κοινό πρότυπο για αυτοβελτιούμενους πράκτορες περιλαμβάνει την εισαγωγή ενός “πράκτορα γνώσης”. Αυτός ο ξεχωριστός πράκτορας παρατηρεί την κύρια συνομιλία μεταξύ του χρήστη και του βασικού πράκτορα. Ο ρόλος του είναι να:

  1. Ταυτοποιεί πολύτιμες πληροφορίες: Καθορίζει αν κάποιο μέρος της συνομιλίας αξίζει να αποθηκευτεί ως γενική γνώση ή συγκεκριμένη προτίμηση χρήστη.

  2. Εξάγει και συνοψίζει: Συμπυκνώνει την ουσιαστική μάθηση ή προτίμηση από τη συνομιλία.

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

  4. Ενισχύει μελλοντικές ερωτήσεις: Όταν ο χρήστης ξεκινά νέα ερώτηση, ο πράκτορας γνώσης ανακαλεί σχετικές αποθηκευμένες πληροφορίες και τις προσθέτει στο prompt του χρήστη, παρέχοντας κρίσιμο πλαίσιο στον βασικό πράκτορα (παρόμοιο με το RAG).

Βελτιστοποιήσεις για τη Μνήμη

Διαχείριση Καθυστέρησης: Για να αποφευχθεί η επιβράδυνση των αλληλεπιδράσεων του χρήστη, ένα φθηνότερο, γρηγορότερο μοντέλο μπορεί να χρησιμοποιηθεί αρχικά για γρήγορο έλεγχο αν η πληροφορία είναι πολύτιμη για αποθήκευση ή ανάκτηση, καλώντας μόνο όταν χρειάζεται τη πιο σύνθετη διαδικασία εξαγωγής/ανάκτησης.

Συντήρηση Βάσης Γνώσης: Για μια αναπτυσσόμενη βάση γνώσης, λιγότερο συχνά χρησιμοποιούμενες πληροφορίες μπορούν να μεταφέρονται σε “ψυχρή αποθήκευση” για να μειωθούν τα κόστη.

Έχετε Περισσότερες Ερωτήσεις για τη Μνήμη Πράκτορα;

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

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

Context Engineering for AI Agents

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

Exploring Microsoft Agent Framework


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