Μνήμη και γνώση
Σε τι χρησιμεύει η μνήμη
Ενότητα με τίτλο «Σε τι χρησιμεύει η μνήμη»Χωρίς μνήμη, κάθε συνομιλία με πράκτορα ξεκινά από το μηδέν: η ίδια σύμβαση πρέπει να εξηγηθεί ξανά, η ίδια απόφαση να συζητηθεί ξανά, το ίδιο αδιέξοδο να εξερευνηθεί ξανά. Η μνήμη είναι η αποθήκη με πεδίο τον χώρο εργασίας που επιβιώνει μεταξύ των εκτελέσεων και υπάρχει ώστε η γνώση που παράγει ένας πράκτορας να μπορεί να βρεθεί αργότερα από κάποιον άλλον.
Έχει τρία επίπεδα και απαντούν σε διαφορετικά ερωτήματα:
- Γεγονότα — τι ισχύει (μια σύμβαση, ένα αποτέλεσμα, μια απόφαση).
- Πολιτικές — τι πρέπει να κάνουν οι πράκτορες γι’ αυτό (ένας κανονιστικός κανόνας).
- Μνήμη εργασίας — τι είχε στη μέση ένας πράκτορας.
Η διάκριση έχει σημασία γιατί φτάνουν στον πράκτορα από διαφορετικές διαδρομές. Τα γεγονότα αναζητούνται. Οι πολιτικές ωθούνται. Η μνήμη εργασίας είναι ιδιωτική.
Γεγονότα
Ενότητα με τίτλο «Γεγονότα»Ένα MemoryFact είναι μια μονάδα γνώσης με πεδίο έναν χώρο εργασίας και έναν
τομέα.
| Χαρακτηριστικό | Τι είναι |
|---|---|
domain |
Ο τομέας γνώσης (“conventions”, “decisions”, “codebase”) |
topic |
Μια σύντομη ετικέτα θέματος |
content |
Το κείμενο της γνώσης |
confidence |
0.0–1.0, αρχικοποιείται από την προέλευση και αυξάνεται με εκ νέου αναφορά |
memoryType |
Το είδος του γεγονότος — καθορίζει την καμπύλη χρονικής απομείωσής του |
veracity |
Πώς έγινε γνωστό — τροφοδοτεί τη βεβαιότητα και καθορίζει το μέγεθος κάθε αύξησης από εκ νέου αναφορά |
sourceObservationIds |
Ποιες παρατηρήσεις οδήγησαν σε αυτό |
supersededBy |
Το νεότερο γεγονός που το αντικατέστησε, αν υπάρχει |
validUntil, recallCount, mentionCount |
Σήματα λήξης και χρήσης που χρησιμοποιούνται στην ανάκληση |
Οι δύο τελευταίες γραμμές είναι αυτές που οι περισσότεροι προσπερνούν και είναι
αυτές που αποφασίζουν ποιο γεγονός θα αναδυθεί. Το memoryType φέρει
παραμέτρους χρονικής απομείωσης Weibull ανά τύπο, οπότε μια χρονικά
περιορισμένη δέσμευση ξεθωριάζει γρήγορα, ενώ ένα σταθερό γεγονός προφίλ όχι.
Το veracity καταγράφει την προέλευση — δηλώθηκε από άνθρωπο (βάρος 1.0),
συνήχθη από πράκτορα (0.7), παρήχθη από εργαλείο (0.5), εισήχθη (0.6) — και
αυτό το βάρος αρχικοποιεί τη βεβαιότητα εκκίνησης του γεγονότος.
Τα γεγονότα δεν επεξεργάζονται ποτέ επί τόπου όταν αντικρούονται. Η εγγραφή ενός γεγονότος εκτελεί ανίχνευση συγκρούσεων σε γεγονότα ίδιου τομέα και ίδιου θέματος και υποκαθιστά το χαμένο, καταγράφοντας μια γραμμή σύγκρουσης. Το ίχνος ελέγχου είναι το νόημα: μπορείτε πάντα να δείτε τι πιστευόταν πριν και τι το αντικατέστησε.
Πολιτικές
Ενότητα με τίτλο «Πολιτικές»Ένα MemoryPolicy είναι ένας κανονιστικός κανόνας που παράγεται από γεγονότα,
με πεδίο έναν χώρο εργασίας και έναν τομέα, με σημαία ενεργότητας και προαιρετικό
requiredRole.
Κάθε ενεργή πολιτική του χώρου εργασίας εισάγεται σε κάθε αποστολή, χωρίς
φιλτράρισμα — κανένα φιλτράρισμα ανά τομέα, ρόλο, εργασία ή χώρο. Αξίζει να το
ξέρετε πριν γράψετε την εικοστή σας πολιτική, γιατί οι πολιτικές ανταγωνίζονται
για το ίδιο παράθυρο πλαισίου με την εργασία. Είναι επίσης ο λόγος που το
requiredRole σε μια πολιτική είναι συμβουλευτικό: περιγράφει σε ποιον
απευθύνεται ο κανόνας, δεν εμποδίζει τον κανόνα να φτάσει σε όλους τους άλλους.
Ένας MemoryDomain ομαδοποιεί γεγονότα και πολιτικές μέσα σε έναν χώρο
εργασίας. Οι τομείς δίνουν στη γνώση οργανωτική δομή και είναι η μονάδα με την
οποία συντάσσονται οι παραχωρήσεις πρόσβασης — αλλά δείτε την προειδοποίηση
παρακάτω πριν αντιμετωπίσετε έναν τομέα ως όριο εμπιστευτικότητας.
Ένας τομέας είναι είτε σε επίπεδο χώρου εργασίας (architecture) είτε με πεδίο
ένα αποθετήριο (repo:<slug>/architecture). Το ίδιο όνομα και στα δύο πεδία
σημαίνει δύο ανεξάρτητες αποθήκες: ένα γεγονός που ισχύει για μια βάση κώδικα δεν
αντικαθιστά αυτό που ισχύει σε επίπεδο χώρου εργασίας. Το search_memory και το
προοίμιο της αποστολής κατατάσσουν πρώτη τη μνήμη που αφορά το αποθετήριο όταν ο
πράκτορας εργάζεται σε αυτό το αποθετήριο· δεν φιλτράρουν τα υπόλοιπα. Περάστε
repo στα propose_fact / propose_policy / search_memory για να γράψετε σε
αυτό το πεδίο ή να το ενισχύσετε.
Ο έλεγχος πρόσβασης αποτυγχάνει ανοιχτά στις αναγνώσεις
Ενότητα με τίτλο «Ο έλεγχος πρόσβασης αποτυγχάνει ανοιχτά στις αναγνώσεις»Ένα MemoryAccessGrant αντιστοιχίζει έναν ρόλο πράκτορα και έναν τομέα σε ένα από
τρία επίπεδα άδειας:
| Δικαίωμα | Σημασία |
|---|---|
none |
Καμία πρόσβαση |
read |
Μπορεί να αναζητά και να ανακτά γεγονότα |
write |
Απαιτείται από το propose_policy. Οι εγγραφές γεγονότων (propose_fact, supersede_fact) δεν ελέγχονται από παραχωρήσεις |
Η ασυμμετρία — χαλαρή στις αναγνώσεις, αυστηρή στις εγγραφές πολιτικών — είναι
σκόπιμη ανταλλαγή. Η μνήμη είναι πιο χρήσιμη όταν κυκλοφορεί, και μια άρνηση
ανάγνωσης παράγει έναν πράκτορα που σιωπηλά γνωρίζει λιγότερα αντί για έναν που
αναφέρει πρόβλημα. Μια άρνηση εγγραφής πολιτικής, αντιθέτως, είναι ηχηρή και
διορθώσιμη, οπότε εκεί βρίσκεται η επιβολή. Ένας νεοδημιουργημένος τομέας
αρχικοποιεί write για κάθε ρόλο· το σφίξιμό του εκ των υστέρων είναι αλλαγή μόνο
μέσω RPC, γιατί δεν υπάρχει περιβάλλον χρήστη για παραχωρήσεις.
Μνήμη εργασίας
Ενότητα με τίτλο «Μνήμη εργασίας»Κάθε πράκτορας έχει ένα AgentWorkingMemory: ένα πρόχειρο ελεύθερου κειμένου με
κλειδί τον χώρο εργασίας και τον πράκτορα. Επιβιώνει μεταξύ των εκτελέσεων, είναι
ιδιωτικό για αυτόν τον πράκτορα και εισάγεται στην προτροπή του σε κάθε αποστολή.
Εκεί ζει το «είχα μείνει στη μέση της αναδιάρθρωσης του auth» — η κατάσταση που
αξίζει να μεταφερθεί στην επόμενη εκτέλεση αλλά όχι να αναχθεί σε διαρκές γεγονός.
Τι φτάνει πραγματικά στην προτροπή ενός πράκτορα
Ενότητα με τίτλο «Τι φτάνει πραγματικά στην προτροπή ενός πράκτορα»Κατά την αποστολή, το προοίμιο μνήμης συγκροτείται από ακριβώς τρία πράγματα:
- Κάθε ενεργή πολιτική του χώρου εργασίας, ως γραμμές
- [domain] rule. - Η δική του μνήμη εργασίας του πράκτορα, αυτολεξεί.
- Μια σύντομη λίστα γεγονότων με αντιστοίχιση λέξεων-κλειδιών για αυτή την εργασία — το πολύ πέντε, μέσα σε προϋπολογισμό ~1.200 χαρακτήρων και μόνο όταν η περιγραφή της εργασίας έχει μήκος τουλάχιστον 20 χαρακτήρες. Οι πιο σύντομες εργασίες δεν παίρνουν καθόλου γεγονότα.
Η σύντομη λίστα είναι μόνο FTS/λέξεων-κλειδιών και είναι περιορισμένη σκόπιμα. Η
ενσωμάτωση ενός ερωτήματος είναι αργή και η διαδρομή αποστολής είναι το μόνο
σημείο όπου η καθυστέρηση είναι άμεσα ορατή, οπότε η αργή σημασιολογική διαδρομή
μένει σκόπιμα έξω από αυτήν. Το προοίμιο κλείνει λέγοντας στον πράκτορα να
επαληθεύει τα κρίσιμα στοιχεία με το search_memory, όπου ζει το πλήρες μοντέλο
ανάκλησης.
Σε αυτή τη διαδρομή δεν συμβουλεύονται καθόλου παραχωρήσεις πρόσβασης. Ό,τι βρει η σύντομη λίστα είναι αυτό που βλέπει ο πράκτορας.
Ανάκληση: ένα ερώτημα, τέσσερις φωνές
Ενότητα με τίτλο «Ανάκληση: ένα ερώτημα, τέσσερις φωνές»Το εργαλείο search_memory που βλέπει ο πράκτορας έχει τρεις λειτουργίες και
είναι πραγματικά διαφορετικές αναζητήσεις:
keyword— μόνο FTS5.semantic— αποτελέσματα BM25 και διανυσματικά, συγχωνευμένα με αμοιβαία συγχώνευση κατάταξης.hybrid(η προεπιλογή) — πολυφωνική ανάκληση: τέσσερις φωνές κατάταξης συγχωνεύονται και μετά διαφοροποιούνται.
Οι τέσσερις φωνές είναι λεξιλογική (FTS), σημασιολογική (διανυσματικό KNN), χρονική (πρόσφατα ενεργά γεγονότα) και γράφου — ένας περίπατος δύο βημάτων πάνω σε επεισοδιακές ακμές από τους ισχυρότερους λεξιλογικούς και σημασιολογικούς σπόρους. Η φωνή του γράφου είναι ο λόγος που υπάρχουν καθόλου οι επεισοδιακές ακμές: αναδεικνύει το γεγονός που είναι συνδεδεμένο με την απάντησή σας χωρίς να ταιριάζει με καμία λέξη σας. Οι φωνές σταθμίζονται από μια ταξινομημένη πρόθεση του ερωτήματος (η σημασιολογική έχει το μεγαλύτερο βάρος από προεπιλογή, μετά ο γράφος και η λεξιλογική, μετά η χρονική), η βαθμολογία κάθε υποψηφίου κλιμακώνεται με τη χρονική απομείωση Weibull, και το σύνολο αποτελεσμάτων διαφοροποιείται με MMR ώστε πέντε επαναδιατυπώσεις ενός γεγονότος να μην εκτοπίζουν τέσσερα διαφορετικά.
Η αναζήτηση μνήμης στην επιφάνεια εργασίας και στον ιστό είναι ξεχωριστή,
απλούστερη διαδρομή: η λειτουργία RPC memory_fact.search είναι μόνο FTS5,
γιατί ένας λεπτός πελάτης δεν μπορεί να στέλνει ενσωμάτωση ερωτήματος και η
υβριδική διαδρομή παραμένει εσωτερική στον κεντρικό υπολογιστή. Έτσι, η κατάταξη
που βλέπετε στον περιηγητή μνήμης δεν είναι η κατάταξη που παίρνει ένας πράκτορας
από το search_memory. Αυτό είναι αναμενόμενο, όχι σφάλμα, αλλά σημαίνει ότι το
«έψαξα και δεν το βρήκα» στο περιβάλλον χρήστη δεν αποτελεί απόδειξη ότι ο
πράκτορας δεν θα το βρει.
Πού ζει η μνήμη και ποιος τη γράφει
Ενότητα με τίτλο «Πού ζει η μνήμη και ποιος τη γράφει»Ο περιηγητής μνήμης βρίσκεται στις Ρυθμίσεις → Χώρος εργασίας → Μνήμη
(/workspaces/<id>/settings/memory), με καρτέλες Γεγονότα, Πολιτικές και Γράφο
γνώσης.
Υπάρχει εκεί μια ασυμμετρία που εκπλήσσει: μπορείτε να επεξεργαστείτε και να
διαγράψετε μνήμη, αλλά δεν μπορείτε να τη δημιουργήσετε. Ούτε η καρτέλα
Γεγονότα ούτε η καρτέλα Πολιτικές έχει δυνατότητα προσθήκης. Η συγγραφή γίνεται
από την πλευρά του πράκτορα, μέσω των propose_fact και propose_policy (τα
supersede_fact / supersede_policy για αντικατάσταση). Το remember γράφει ένα
στοιχείο θερμού επιπέδου περιορισμένο στη συνεδρία, το οποίο το
consolidate_memory μπορεί αργότερα να αναγάγει σε γεγονός· τα
record_observation και update_my_notes γράφουν το ιδιωτικό πρόχειρο που
εισάγεται κατά την αποστολή. Ο περιηγητής είναι επιφάνεια ανασκόπησης και
διόρθωσης, όχι συγγραφής — οπότε αν θέλετε ένα γεγονός στη μνήμη, ο τρόπος να το
βάλετε εκεί είναι να το πείτε σε έναν πράκτορα.
Δύο λειτουργίες συντήρησης καλούνται επίσης από τον πράκτορα και όχι από
χρονοδιάγραμμα: το consolidate_memory συγχωνεύει και κλαδεύει συσσωρευμένα
γεγονότα και το harmonize_memory εναρμονίζει πεποιθήσεις που απέκλιναν μεταξύ
πρακτόρων. Το list_memory_conflicts δείχνει τι έχει ήδη καταγράψει η ανίχνευση
συγκρούσεων. Τίποτα δεν τα εκτελεί για εσάς με χρονοδιακόπτη. Οι αποφάσεις
συσκέψεων συγκομίζονται στον τομέα decisions όταν ένα βήμα διατήρησης σύσκεψης
τις καταγράψει· αυτό δεν είναι χρονοδιακόπτης σε ολοκληρωμένες εκτελέσεις
πρακτόρων.
Σχετικές έννοιες
Ενότητα με τίτλο «Σχετικές έννοιες»- Το μοντέλο πρακτόρων: οι ρόλοι είναι αυτό με το οποίο συντάσσονται οι παραχωρήσεις
- Χώροι εργασίας και απομόνωση: η μνήμη έχει πεδίο τον χώρο εργασίας και ζει στο δικό του αρχείο βάσης δεδομένων
- Διαχείριση μνήμης χώρου εργασίας: εργασία με τη μνήμη στην πράξη