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

Συνομιλία με πράκτορα

Αυτός ο οδηγός δείχνει πώς να εργάζεστε με έναν πράκτορα μέσα σε έναν χώρο.

  1. Μεταβείτε στην επιλογή Χώροι στην πλαϊνή γραμμή
  2. Κάντε κλικ στο κουμπί + δίπλα στην επικεφαλίδα «Χώροι»
  3. Πληκτρολογήστε ένα όνομα — είναι υποχρεωτικό. Ένα κενό όνομα απορρίπτεται· το παράθυρο διαλόγου παραμένει ανοιχτό
  4. Προαιρετικά, προσθέστε πράκτορες από τον χώρο εργασίας
  5. Αν ο χώρος εργασίας έχει οποιοδήποτε αποθετήριο, εμφανίζεται ένας επιλογέας αποθετηρίων. Ξεκινά με όλα τα αποθετήρια επιλεγμένα· περιορίστε τα (ακόμη και αποεπιλέγοντας ένα μεμονωμένο αποθετήριο) στα αποθετήρια για τα οποία αυτός ο χώρος θα προμηθεύει worktree
  6. Επιβεβαιώστε

Το Control Center ανοίγει τον χώρο και ξεκινά στο παρασκήνιο τη δημιουργία ενός worktree αντιγραφής κατά την εγγραφή για κάθε επιλεγμένο αποθετήριο.

Πληκτρολογήστε το μήνυμά σας στο πεδίο σύνταξης και πατήστε Enter. Ο πράκτορας αποστέλλεται και αρχίζει να μεταδίδει σε ροή την απάντησή του.

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

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

Καθοδηγήστε έναν πράκτορα που εκτελείται

Ενότητα με τίτλο «Καθοδηγήστε έναν πράκτορα που εκτελείται»

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

Τρία πράγματα αλλάζουν αυτή τη συμπεριφορά:

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

Όταν ένας πράκτορας συναντήσει μια ενέργεια που φιλτράρουν οι περιορισμοί του — μια καταστροφική εντολή, ένα προνομιακό εργαλείο — ο διακομιστής αποκλείει την εκτέλεση και δημοσιεύει αίτημα έγκρισης σε κάθε συνδεδεμένο πελάτη. Αν έχετε ανοιχτή αυτή τη συνομιλία, το αίτημα εμφανίζεται στη συνομιλία, πάνω από το πεδίο σύνταξης, ως την ίδια κάρτα με αριθμημένες επιλογές που χρησιμοποιείται για το ask_user (απόρριψη, έγκριση και προαιρετικά έγκριση για οκτώ ώρες). Δεν υπάρχει παράλειψη: ένας αποκλεισμένος πράκτορας περιμένει μια απόφαση.

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

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

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

Πατήστε μια μεμονωμένη επιλογή για να τη στείλετε (ο αριθμός στο τέλος γίνεται βέλος με τον δείκτη πάνω της). Για πολλαπλές επιλογές και πληκτρολογημένες απαντήσεις χρησιμοποιήστε το Συνέχεια (⌘↵ / Ctrl↵). Η Παράλειψη λέει στον πράκτορα να διαλέξει μια λογική προεπιλογή και να μην ξαναρωτήσει.

Πρόκειται για ξεχωριστό μηχανισμό από την κάρτα έγκρισης παραπάνω: μια έγκριση σημαίνει «επιτρέπεται να το κάνω;», μια ερώτηση σημαίνει «ποιο από αυτά εννοούσατε;». Η υποβολή ερώτησης είναι διαθέσιμη στο ενσωματωμένο harness σε κάθε λειτουργία, ακόμη και σε όσες είναι μόνο για ανάγνωση (δεν μεταβάλλει τίποτα), και σκόπιμα δεν περιβάλλεται από προτροπή έγκρισης — ένα παράθυρο διαλόγου μπροστά από άλλο παράθυρο διαλόγου θα απέκλειε τα πάντα όταν δεν υπάρχει συνδεδεμένος εγκρίνων. Μια εκτέλεση χωρίς συνομιλία στην οποία να αποδοθεί απλώς δεν παίρνει το εργαλείο.

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

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

Μια σταματημένη εκτέλεση επισημαίνεται ως διακοπείσα. Στείλτε νέο μήνυμα για να αποσταλεί ξανά.

Πληκτρολογήστε / στο πεδίο σύνταξης για να δείτε τη λίστα εντολών. Όσες αλλάζουν τη συμπεριφορά της συνομιλίας:

Εντολή Τι κάνει
/plan Βάζει τον χώρο σε λειτουργία σχεδίου. Ένα σκέτο /plan απλώς οπλίζει τη λειτουργία· το /plan <request> την οπλίζει και στέλνει τα υπόλοιπα ως μήνυμά σας
/goal <text> Καταγράφει τον στόχο εργασίας της συνομιλίας
/loop <text> Επαναλαμβάνει μια εργασία μέχρι να ολοκληρωθεί
/compact Διπλώνει το παλαιότερο ιστορικό σε σύνοψη με άγκυρα και συνεχίζει στο συμπυκνωμένο πλαίσιο
/todo … Προβάλλει και επεξεργάζεται τη διατηρούμενη λίστα εκκρεμοτήτων αυτής της συνομιλίας

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

Εντολή Τι εκτελεί
/skill:<name> Μια δεξιότητα εγκατεστημένη στον χώρο εργασίας ή συνδεδεμένη με τον πράκτορα
/skill:<repo>:<name> Μια δεξιότητα που παρέχεται από ένα από τα αποθετήρια που έχουν γίνει checkout σε αυτόν τον χώρο

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

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

Τα /compact και /todo τα υποκλέπτει ο πελάτης και δεν αποθηκεύονται ποτέ ως μηνύματα — μια γραμμή /compact στη ροή της συνομιλίας θα μετακινούσε το όριο της επόμενης συμπύκνωσης μία σειρά προς τα πίσω. Το /plan αλλάζει την αποθηκευμένη λειτουργία του χώρου αντί να ταξιδεύει ως κείμενο. Έτσι, κανένα από τα τρία δεν είναι «μήνυμα που στέλνετε στον πράκτορα»· μην περιμένετε να τα δείτε στο ιστορικό.

Πριν από μια σύνθετη αλλαγή, βάλτε τον χώρο σε λειτουργία σχεδίου με το /plan, το αναπτυσσόμενο μενού λειτουργίας στη γραμμή εργαλείων του πεδίου σύνταξης ή το Shift+Tab. Στη συνέχεια ο πράκτορας ερευνά μόνο για ανάγνωση και παραδίδει ένα σχέδιο με καθορισμένη δομή, το οποίο εγκρίνετε πριν ξεκινήσει οποιαδήποτε εργασία. Δείτε Χρήση λειτουργίας σχεδίου.

Προσεγγίστε έναν πράκτορα χωρίς αποκλειστικό χώρο

Ενότητα με τίτλο «Προσεγγίστε έναν πράκτορα χωρίς αποκλειστικό χώρο»

Δεν χρειάζεστε έναν χώρο ανά πράκτορα. Σε οποιονδήποτε χώρο:

@alice can you look at the failing tests in src/auth_test.dart?

Ο πράκτορας που αναφέρατε προστίθεται στον χώρο και αποστέλλεται με το πλαίσιο αυτού του χώρου. Δείτε την @-αναφορά πρακτόρων για το πώς γίνεται η αντιστοίχιση των ονομάτων.