Στις περισσότερες ομάδες που υιοθετούν τον προγραμματισμό βάσει πράκτορα, το σημείο συμφόρησης μετατοπίζεται από την παραγωγή κώδικα στον έλεγχό του. Αν δεν βελτιωθεί αυτός ο κύκλος, το καθαρό κέρδος σε ταχύτητα είναι σχεδόν μηδενικό.
Σε περιβάλλοντα CI μεγάλης κλίμακας, με εκατομμύρια νυχτερινές δοκιμές και εκατοντάδες μηχανικούς, η πολυτιμότερη εργασία για έναν πράκτορα είναι η ανάθεση στον αρμόδιο και η διαλογή προβλημάτων, όχι η παραγωγή κώδικα.
Το χρήσιμο αποτέλεσμα ενός πράκτορα αντέχει στον ενδελεχή έλεγχο και εξηγεί τις αιτιώδεις σχέσεις, αντί να εντοπίζει απλώς μοτίβα.
Ο σχεδιασμός του επιπέδου συλλογής στοιχείων και σύνθεσης του ευρύτερου πλαισίου έχει μεγαλύτερη σημασία από το επίπεδο παραγωγής.
Οι περισσότερες συζητήσεις για τον προγραμματισμό βάσει πράκτορα εξακολουθούν να ξεκινούν με μια απλή υπόσχεση: περισσότερος κώδικας, γραμμένος ταχύτερα.
Μερικές φορές, αυτό εξελίσσεται σε ένα πιο φιλόδοξο όραμα, όπου πράκτορες σχεδιάζουν εργασίες, ανοίγουν PR και διαθέτουν αλλαγές με ελάχιστη ανθρώπινη παρέμβαση. Ωστόσο, για τις περισσότερες ομάδες μηχανικών, η σαφέστερη βραχυπρόθεσμη αξία είναι πιο περιορισμένη. Έγκειται στη μείωση του κόστους των επαναληπτικών κύκλων.
Η παράδοση λογισμικού δεν περιορίζεται στην παραγωγή κώδικα. Η συγγραφή κώδικα είναι μόνο ένα στάδιο ενός ευρύτερου κύκλου, ο οποίος περιλαμβάνει έλεγχο, δοκιμές, υλοποίηση και διερεύνηση όταν κάτι πάει λάθος. Οι περισσότερες ομάδες που υιοθετούν τον προγραμματισμό βάσει πράκτορα χωρίς να επανασχεδιάσουν τον κύκλο ελέγχου απλώς μεταφέρουν το σημείο συμφόρησης σε μεταγενέστερο στάδιο.
Η επίσπευση μόνο της παραγωγής δεν κάνει αυτομάτως ταχύτερη μια ομάδα. Μπορεί απλώς να μεταφέρει περισσότερο φόρτο στον έλεγχο, στην επαλήθευση και στην οικοδόμηση εμπιστοσύνης.
Σε πολλά περιβάλλοντα μηχανικής, το δαπανηρό μέρος δεν είναι η δημιουργία ενός πρώτου προσχεδίου, αλλά η απόκτηση βεβαιότητας.
Διόρθωσε πράγματι η αλλαγή το πρόβλημα ή βελτίωσε το σύστημα; Προκάλεσε κάποια παλινδρόμηση αλλού; Η αστοχία βρίσκεται στον κώδικα, στο περιβάλλον, στις δοκιμές ή σε κάποια εξάρτηση; Η προτεινόμενη διόρθωση αντιμετωπίζει την αιτία ή μόνο το ορατό σύμπτωμα;
Οι πράκτορες μπορούν να βοηθήσουν εδώ, όχι επειδή αντικαθιστούν τους μηχανικούς, αλλά επειδή μπορούν να κάνουν μια δομημένη πρώτη εξέταση ακατάστατων στοιχείων: να ελέγξουν αρχεία καταγραφής, να συγκρίνουν πρόσφατες αλλαγές, να συνοψίσουν σχετικά ευρήματα, να ανιχνεύσουν πιθανές αιτίες, να εκτελέσουν ελέγχους και να επιστρέψουν ένα αποτέλεσμα που μπορεί να διερευνήσει ένας άνθρωπος.
Σε πολλές ομάδες, η χρήση ενός πράκτορα με τη μεγαλύτερη απόδοση δεν είναι η παραγωγή κώδικα από το μηδέν. Είναι ο περιορισμός του πεδίου αναζήτησης γύρω από ένα πρόβλημα, προτού κάποιος αφιερώσει ώρες για να το κάνει χειροκίνητα.
Αυτό γίνεται ιδιαίτερα εμφανές στις ροές εργασίας εντοπισμού σφαλμάτων μεγάλης κλίμακας. Φανταστείτε ένα νυχτερινό CI που εκτελεί εκατομμύρια δοκιμές σε βάσεις κώδικα τις οποίες τροποποιούν εκατοντάδες μηχανικοί — κάτι που αποτελεί πραγματικότητα για έναν από τους πελάτες μας. Όταν κάτι αποτυγχάνει, είναι δύσκολο να εντοπιστεί και να ειδοποιηθεί ο αρμόδιος. Το πρόβλημα μπορεί να βρίσκεται στον κώδικα της εφαρμογής, σε κάποια εξάρτηση, στον μηχανισμό δοκιμών ή σε άλλο σημείο της στοίβας. Τα αρχεία καταγραφής μπορεί να φτάνουν σε μέγεθος αρκετά gigabyte, ενώ η πρώτη ομάδα που εντοπίζει το πρόβλημα δεν είναι πάντα και η αρμόδια.
Μια τέτοια ροή εργασιών δεν ενδείκνυται εκ φύσεως για την ανάθεση της διόρθωσης σε έναν πράκτορα. Είναι σχεδιασμένη για ένα σύστημα που περιορίζει γρήγορα το πεδίο του προβλήματος.
Μια χρήσιμη διοχέτευση θα μπορούσε να ανακτά αρχεία καταγραφής, να επιλέγει τα σχετικά στοιχεία, να συνοψίζει όσα έχουν σημασία, να εξετάζει τον κώδικα σε περιβάλλον απομόνωσης και να παράγει δομημένη ανάλυση της βασικής αιτίας, με βαθμολογία βεβαιότητας, ιχνηλασιμότητα και προτεινόμενα επόμενα βήματα. Για να προκύψει βαθμολογία βεβαιότητας, ένας ειδικός του αντικειμένου αξιολογεί το αρχικό αποτέλεσμα του πράκτορα. Η αξιολόγηση εισάγεται κατόπιν σε ένα LLM που λειτουργεί ως κριτής, ώστε οι μελλοντικές βαθμολογήσεις να αυτοματοποιούνται, παραμένοντας ευθυγραμμισμένες με την ανθρώπινη κρίση.


Στόχος δεν είναι να εξαλειφθεί η κρίση των μηχανικών, αλλά να δοθεί στους ελεγκτές ένα ισχυρότερο σημείο εκκίνησης. Η διαλογή παλινδρομήσεων, ο έλεγχος PR, η επιδιόρθωση δοκιμών, η επικύρωση εκδόσεων και η διερεύνηση μετά την υλοποίηση έχουν όλα την ίδια μορφή. Απαιτούν πολλά στοιχεία, εκτεταμένο έλεγχο και εμπεριέχουν μεγάλη αβεβαιότητα. Δεν ζητούν από έναν πράκτορα να αντικαταστήσει τη διαδικασία μηχανικής, αλλά απλώς να συμβάλει στην πρόοδό της.
Γι’ αυτό οι ομάδες πρέπει επίσης να προσέχουν πώς αξιολογούν αυτά τα συστήματα.
Το λάθος ερώτημα είναι αν ένας πράκτορας μπορεί να παράγει κάτι εντυπωσιακό μεμονωμένα. Το σωστότερο ερώτημα είναι αν βελτιώνει μια πραγματική ροή εργασιών χωρίς να προκαλεί καθυστερήσεις κάπου αλλού.
Αυτό σημαίνει ότι πρέπει να εξετάζεται αν το αποτέλεσμα είναι αρκετά συγκεκριμένο ώστε να επαληθευτεί, αν εξηγεί τις αιτιώδεις σχέσεις αντί να αντιστοιχίζει απλώς μοτίβα και αν διευκολύνει τον έλεγχο αντί να τον δυσχεραίνει. Μια εύλογη απάντηση δεν είναι κατ’ ανάγκη και χρήσιμη. Στην πράξη, οι ομάδες εμπιστεύονται το αποτέλεσμα ενός πράκτορα όταν αυτό αντέχει στον ενδελεχή έλεγχο και τους δίνει κάτι συγκεκριμένο να επαληθεύσουν.


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