Μετάβαση στο περιεχόμενο
cd /blog

Δώστε σε πράκτορα AI το πλαίσιο μεγάλου αποθετηρίου χωρίς τοπικό ευρετήριο

[AI Agents] [MCP] [Indexing] [Monorepos]

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

Ένα μεγάλο αποθετήριο δεν χωράει σε ένα παράθυρο συμφραζομένων, και αν έχετε ποτέ στρέψει έναν μηχανισμό ευρετηρίασης στον φορητό σας υπολογιστή σε ένα πραγματικό monorepo, ξέρετε ότι δεν χωράει άνετα ούτε εκεί — η RAM εκτοξεύεται, η πρώτη ευρετηρίαση παίρνει μια ώρα, και ο πράκτοράς σας εξακολουθεί να ξεκινάει την επόμενη συνεδρία μαντεύοντας ποια αρχεία έχουν σημασία.

Η συνήθης απάντηση είναι να τρέχετε έναν μηχανισμό ευρετηρίασης δίπλα στον επεξεργαστή κώδικα, και για ένα αποθετήριο που χωράει άνετα σε ένα μηχάνημα, είναι καλή απάντηση. Αν το monorepo σας ήδη ευρετηριάζεται γρήγορα στο Cursor και αυτό είναι το μόνο μέρος όπου χρειάζεστε τον χάρτη, αυτό το κείμενο δεν έχει τίποτα να προσθέσει — προσπεράστε το.

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

Πότε ένας τοπικός μηχανισμός ευρετηρίασης είναι το λάθος εργαλείο

Ένα τοπικό ευρετήριο υποθέτει ότι ο κώδικας ζει στο μηχάνημα που το ρωτάει, και στην κλίμακα ενός πραγματικού monorepo αυτή η υπόθεση τεντώνεται ακόμα και μέσα σε έναν μόνο επεξεργαστή κώδικα. Το αποθετήριο είναι απλώς μεγαλύτερο από όσο θέλετε να κρατάτε «ζεστό» σε έναν φορητό υπολογιστή: δουλεύετε σε ένα πακέτο ενώ η ακτίνα επίδρασης βρίσκεται τρεις καταλόγους παρακάτω, και μια πρώτη κρύα ευρετηρίαση ενός δέντρου δύο εκατομμυρίων γραμμών δεν είναι κάτι που θέλετε να περάσετε δύο φορές — ούτε στο μηχάνημά σας, ούτε σε έναν εκτελεστή CI που δεν έχει κλωνοποιήσει ποτέ πριν αυτό το δέντρο. Ή ένας συνάδελφος θα έπρεπε να μπορεί να ρωτάει τον ίδιο χάρτη με εσάς, χωρίς να περιμένει το δικό του μηχάνημα να τελειώσει τον ίδιο μόχθο ευρετηρίασης.

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

Και το πρόβλημα κλίμακας πάει πιο βαθιά από «πάρα πολλά αρχεία για να επικολλήσεις». Σε ένα μεγάλο δέντρο, το ενδιαφέρον ερώτημα σχεδόν ποτέ δεν είναι «δείξε μου αυτό το αρχείο» — είναι ποιο αρχείο, ποιο σύμβολο, ποιοι καλούντες, ποιες δοκιμές. Ένας πράκτορας που ξεκινά καταγράφοντας το src/ και διαβάζοντας τα πρώτα τρία αποτελέσματα θα χάσει ευχαρίστως τον χειριστή στο apps/api και το παραγόμενο πρόγραμμα-πελάτη στο packages/sdk. Αυτό που χρειάζεστε είναι ανάκτηση χτισμένη από ολόκληρο το δέντρο, μετά ταξινομημένη, μετά παραπεμπόμενη.

Τι σημαίνει πραγματικά «context ενός μεγάλου αποθετηρίου»

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

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

Ένα ακόμα πράγμα που τα αρχεία οδηγιών δεν μπορούν να κάνουν για εσάς: τα CLAUDE.md και AGENTS.md είναι το σωστό μέρος για συμβάσεις και συμπεριφορά, αλλά δεν είναι ένας ζωντανός, ταξινομημένος, αναζητήσιμος χάρτης ενός δέντρου δύο εκατομμυρίων γραμμών. Χρησιμοποιήστε κανόνες για τη συμπεριφορά· χρησιμοποιήστε ευφυΐα αποθετηρίου για τα γεγονότα.

Χτίζουμε τον χάρτη στο cloud, τον ρωτάμε από οποιοδήποτε πρόγραμμα-πελάτη

Το Maguyva είναι ένα απομακρυσμένο επίπεδο MCP για το context της βάσης κώδικα. Συνδέετε το GitHub, επιλέγετε τα αποθετήριά σας, και μπορείτε να φύγετε όσο οι ροές επεξεργασίας στο cloud αναλύουν το δέντρο, χτίζουν σύμβολα και ακμές γράφου, και διατηρούν έναν ταξινομημένο χάρτη — χωρίς ποτέ τοπικό μηχανισμό ευρετηρίασης.

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

Έπειτα συνδέετε όποιο πρόγραμμα-πελάτη ήδη χρησιμοποιείτε προσθέτοντας ένα κλειδί API στη ρύθμιση MCP του. Υπάρχουν οδηγοί ρύθμισης για 24 τεκμηριωμένα προγράμματα-πελάτες MCP, και οποιοδήποτε άλλο συμβατό με MCP πρόγραμμα-πελάτης που υποστηρίζει τυπική ρύθμιση μπορεί επίσης να συνδεθεί. Αν το Cursor είναι το σπίτι σας, η σελίδα Cursor διανύει αυτή τη διαδρομή· ο ίδιος διακομιστής απαντά στα Claude Code, VS Code, Windsurf, Codex CLI και τα υπόλοιπα.

Δεν αλλάζετε επεξεργαστή κώδικα. Δίνετε στον πράκτορά σας μια επιφάνεια εργαλείων — 11 εργαλεία MCP για αναζήτηση, σύμβολα, ανάλυση εξαρτήσεων, ανάκτηση αρχείων και context αποθετηρίου — με κάλυψη πάνω από 279 γλώσσες και τεχνολογίες βασισμένες σε κείμενο, κάτι που μετράει περισσότερο απ’ όσο νομίζετε σε ένα monorepo που έχει πάψει να είναι μονόγλωσσο εδώ και χρόνια.

Οι απαντήσεις επιστρέφουν τεκμηριωμένες, ως διαδρομές αρχείων με αριθμούς γραμμής. Η σημασιολογική, δομική, γράφου και κειμενική αναζήτηση συγχωνεύονται σε ταξινομημένα αποτελέσματα, ώστε μια ερώτηση όπως «τι εξαρτάται από το parseConfig» να μη σας δίνει ούτε έναν σωρό αποτελεσμάτων grep ούτε ένα μόνο σημασιολογικό απόσπασμα, αλλά τη χούφτα των τοποθεσιών που πραγματικά έχουν σημασία.

Ένας συγκεκριμένος οδηγός

Μην ξεκινάτε ευρετηριάζοντας όλη την εταιρεία. Να η διαδρομή που δουλεύει:

  1. Διαλέξτε ένα αποθετήριο που ήδη γνωρίζετε καλά — ένα πακέτο που μπορείτε να αξιολογήσετε με το χέρι αξίζει περισσότερο από το μεγαλύτερο δέντρο που έχετε.
  2. Ξεκινήστε δωρεάν: 3 αποθετήρια, 50χιλ ευρετηριασμένες γραμμές, όλα τα 11 εργαλεία, χωρίς μηνιαία ποσόστωση ερωτημάτων. Αν το αντιπροσωπευτικό σας αποθετήριο είναι μεγαλύτερο, η σελίδα τιμών απαριθμεί τα επίπεδα χώρου εργασίας ($0, $19, $49, $149) κατά ευρετηριασμένη έκταση — όχι κατά αριθμό θέσεων.
  3. Συνδέστε το GitHub και περιμένετε να ολοκληρωθεί η πρώτη ευρετηρίαση. Δεν μεταγλωττίζετε τίποτα τοπικά.
  4. Συνδέστε το πρόγραμμα-πελάτη MCP — λίγες γραμμές ρύθμισης. Το Maguyva είναι απομακρυσμένος διακομιστής MCP, οπότε δεν υπάρχουν πρόσθετα, δεν υπάρχουν επεκτάσεις, και δεν υπάρχει δεύτερος επεξεργαστής κώδικα να υιοθετήσετε.
  5. Κάντε μία ερώτηση που μπορείτε να επαληθεύσετε. «Τι εξαρτάται από το parseConfig;» ή «Πού διαχειρίζεται η λήξη της συνεδρίας σύνδεσης;» Έπειτα ανοίξτε τα παραπεμπόμενα αποτελέσματα file.ext:line και ελέγξτε τα ως προς το δέντρο μπροστά σας.
  6. Μόνο αφού οι παραπομπές επιβιώσουν αυτή την επαφή, αφήστε τον πράκτορα να επεξεργαστεί.

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

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

Τι να προσέχετε αφού συνδεθείτε

Προσέξτε τρία πράγματα. Φρεσκάδα: τα επί πληρωμή πλάνα ξαναχτίζονται ωριαία, τα δωρεάν καθημερινά, και η τοπική εργασία που δεν έχει σταλεί στο απομακρυσμένο αποθετήριο δεν θα βρίσκεται στον χάρτη — αυτό είναι το αντάλλαγμα που αποδέχεστε. Εμβέλεια: ευρετηριάστε ένα αντιπροσωπευτικό σύνολο αποθετηρίων, όχι κάθε αρχειοθετημένο παράγωγο αποθετήριο· το δωρεάν επίπεδο έχει σκόπιμα το μέγεθος που έχει, ώστε να μάθετε αν οι απαντήσεις αξίζουν να διατηρηθούν. Και επαλήθευση: ένας χάρτης μεγάλου αποθετηρίου που δεν μπορεί να παραπέμψει σε διαδρομές αρχείων και αριθμούς γραμμής είναι απλώς μια πιο αργή μηχανή εικασίας, οπότε βάλτε τον πράκτορά σας να δείξει την τοποθεσία πριν παραδώσει το patch.

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

// no laptop got hot building this map.

Σχετική ανάγνωση

Περισσότερα από το ημερολόγιο κατασκευής του Maguyva

Γιατί ο πράκτορας προγραμματισμού AI σας επινοεί διαδρομές αρχείων_

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

[AI Agents] [Hallucination] [Retrieval] [MCP]

Εξόρυξη Δεξιοτήτων: Από 3.500 Υποψήφιες σε 466 Ικανότητες_

Ελέγξαμε 3.500 υποψήφιες δεξιότητες και υιοθετήσαμε 466. Ένας συστηματικός βρόχος εξόρυξης και ενσωμάτωσης για τη δημιουργία μιας συνεκτικής βιβλιοθήκης δεξιοτήτων πρακτόρων AI σε κλίμακα.

[Αρχιτεκτονική] [Δεξιότητες]