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

Κατεύθυνση εργατών παρασκηνίου

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

Δύο πράγματα, και μόνο το πρώτο επιβάλλεται από τον μηχανισμό:

  1. Τα εργαλεία της ίδιας της συνεδρίας πέφτουν σε μόνο για ανάγνωση, συν πέντε ρήματα εργάτη. Ο μόνος τρόπος με τον οποίο μπορεί να επηρεάσει το αποθετήριο είναι μέσω ενός εργάτη, και ο μόνος τρόπος να μάθει τι συνέβη είναι διαβάζοντας τα αρχεία που άγγιξε ένας εργάτης.
  2. Της ζητείται να επαληθεύει διαβάζοντας, όχι πιστεύοντας. Η αναφορά ενός εργάτη είναι ισχυρισμός για το τι έκανε, όχι απόδειξη ότι δούλεψε.

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

/vibe migrate the auth module to the new session API

Ένας εργάτης δεν έχει δει ποτέ τη συνομιλία σας και ούτε θα τη δει. Η ανάθεση είναι ολόκληρο το πλαίσιό του.

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

Μια καλή ανάθεση κατονομάζει αρχεία, εντολές και τον ορισμό του τι σημαίνει ολοκληρωμένο:

Στο lib/features/auth/, αντικαταστήστε κάθε κλήση προς SessionStore.read(key) με SessionStore.get(key). Η νέα μέθοδος επιστρέφει Future<String?> ενώ η παλιά επέστρεφε String?, οπότε οι καλούντες χρειάζονται await. Εκτελέστε fvm flutter analyze lib/features/auth όταν τελειώσετε και αναφέρετε τυχόν σφάλματα που δεν μπορέσατε να διορθώσετε.

Ρήμα Τι κάνει
vibe_spawn Ξεκινά έναν εργάτη με μια ανάθεση. Επιστρέφει αμέσως.
vibe_list Βαθμίδα, κατάσταση, χρόνος που πέρασε και τελευταίο αποτέλεσμα για όλους
vibe_send Μια συμπληρωματική στροφή για έναν εργάτη που έχει τελειώσει
vibe_wait Αποκλείει μέχρι να κατασταλάξει ένας εργάτης
vibe_kill Σταματά έναν

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

Βαθμίδα Για
fast Μηχανική εργασία με σαφή προδιαγραφή — επεξεργασίες, μετονομασίες, προσχέδια, εκτέλεση εντολών
good Σχεδιασμός, κρίση ή έλεγχος αυτού που παρήγαγε ένας εργάτης fast

Μια συνηθισμένη μορφή είναι να απλώσετε εργάτες fast σε ανεξάρτητα αρχεία και μετά να ξεκινήσετε έναν εργάτη good για να ελέγξει τι έκαναν συλλογικά.

Αυτό είναι το σημείο που κρίνει αν το μοτίβο αξίζει τον κόπο.

vibe_list
→ w1 [fast] auth-migrate — done (48s): Edited lib/features/auth/session.dart …
w2 [fast] tests — running (12s)

Στη συνέχεια διαβάστε τα αρχεία που κατονόμασε. Ο κατευθυντής διαθέτει τα read, search, lsp και ast_grep· αυτός είναι όλος ο λόγος που τα διατηρεί. Ένας κατευθυντής που παίρνει την αναφορά ως έχει είναι ένας συνοψιστής της αισιοδοξίας άλλων πρακτόρων.

Το lsp(action: "diagnostics", file: "*") μετά από έναν κύκλο εργατών είναι συνήθως ο ταχύτερος μεμονωμένος έλεγχος.

Σκοτώστε τον και αναθέστε ξανά. Μια φρέσκια, διορθωμένη ανάθεση είναι φθηνότερη από μια διαφωνία, και το vibe_send λειτουργεί μόνο σε έναν εργάτη που έχει ήδη τελειώσει τη στροφή του.

vibe_kill(worker_id: "w2")
vibe_spawn(brief: "…corrected…", label: "tests", tier: "fast")
  • Οκτώ ταυτόχρονοι εργάτες. Ένα ανώτατο όριο δαπάνης, όχι τεχνικός περιορισμός: ο καθένας είναι μια πλήρης συνεδρία μοντέλου, και ένας κατευθυντής που απλώνει είκοσι έχει πάψει να παρακολουθεί τι κάνουν όλοι τους.
  • Κανένας εργάτης δεν επιβιώνει πέρα από τη λειτουργία. Όταν τελειώσει η εκτέλεση, όλοι τους σταματούν και η απομαγνητοφώνηση λέει πόσοι ήταν. Ένας πράκτορας παρασκηνίου που ακόμη επεξεργάζεται αρχεία αφού η συνομιλία προχώρησε είναι η μία αποτυχία που δεν μπορεί να ανεχθεί αυτό.
  • Κάτω από την επιφάνεια, οι εργάτες είναι συνηθισμένοι υποπράκτορες. Ίδιο όριο βάθους, ίδια πολιτική περιορισμών, ίδιο θυγατρικό αρχείο καταγραφής εκτέλεσης. Το vibe αλλάζει ποιος τους οδηγεί, όχι τι τους επιτρέπεται να κάνουν — οπότε οι προτροπές έγκρισης εξακολουθούν να εμφανίζονται για τις κλήσεις εγγραφής και εκτέλεσης ενός εργάτη.

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