Φθηνός κώδικας, ακριβή κρίση για την αυτονομία του agent
Η επιλογή του τι θα αυτοματοποιείται και πόση εμπειρία χρειάζεται για να ελέγχεται σωστά βρίσκεται στο επίκεντρο του κειμένου του Markus Eisele, που δημοσιεύτηκε στις 29 Οκτωβρίου 2026 στο O’Reilly Radar.
Ο Eisele περιγράφει ότι χρησιμοποίησε πρόσφατα έναν coding agent για να κατασκευάσει το Task Viewer, ένα μικρό βοηθητικό εργαλείο κοινότητας για το IBM Bob, το οποίο χρησιμοποιείται εσωτερικά στην IBM. Το plug-in δεν έχει κρίσιμο ρόλο στην παραγωγή, αλλά για τον ίδιο αποτέλεσε ένα πραγματικό πείραμα για το πόσο από την υλοποίηση μπορεί να ανατεθεί σε έναν agent και πόσο πρέπει να μείνει στον άνθρωπο.
Όπως αναφέρει, το πόσο θα ανατεθεί εξαρτάται και από το τι χρειάζεται ακόμη να μάθει το άτομο που κάνει την εργασία. Κάποιος που γνωρίζει ήδη την εφαρμογή μπορεί να ξέρει πώς να ελέγξει το αποτέλεσμα, ενώ ένας προγραμματιστής που μαθαίνει το σύστημα ίσως χρειάζεται να περάσει από μέρος της υλοποίησης για να καταλάβει καλύτερα τη λειτουργία του.
Ακόμη κι όταν ο κώδικας δίνεται εξ ολοκλήρου σε agent, ο ίδιος λέει ότι βασική προϋπόθεση παραμένει ο χειροκίνητος έλεγχος της λειτουργίας και του σχεδιασμού. Θέλει να χρησιμοποιεί την εφαρμογή και να διαπιστώνει αν συμπεριφέρεται όπως είχε σχεδιαστεί, αν ο σχεδιασμός βγάζει νόημα όταν χρειάζεται να βρει κάτι και αν οι πληροφορίες παρουσιάζονται με τρόπο που μπορεί να ακολουθήσει.
Για το Task Viewer δημιούργησε επίσης αρκετά UI tests, ώστε να ελέγχει ότι τα δεδομένα εμφανίζονται σωστά και να μπορεί να επαναλαμβάνει μέρος των ελέγχων όσο η εφαρμογή αλλάζει. Παρ’ όλα αυτά, παρέμενε ξεχωριστό το ερώτημα για τους υπολογισμούς. Το να φαίνεται ένας αριθμός στη σωστή θέση στην οθόνη δεν σημαίνει ότι είναι και ο σωστός. Για αυτόν τον λόγο έκανε SQL queries στα υποκείμενα δεδομένα, επιστρέφοντας στα αρχεία που υποτίθεται ότι αναπαριστούσε η εφαρμογή.
Ο ίδιος τονίζει ότι σε αυτό το φαινομενικά απλό βήμα κρύβεται αρκετή κατανόηση. Για να ελέγξει κανείς έναν υπολογισμό, πρέπει να ξέρει τι σημαίνει το αποτέλεσμα και ποια αρχεία πρέπει να συνεισφέρουν σε αυτό. Χρειάζεται, δηλαδή, μια προσδοκία με την οποία θα συγκριθεί ό,τι εμφανίζει η εφαρμογή. Στην περίπτωσή του, όπως γράφει, η ομάδα τον βοήθησε να εντοπίσει σχέσεις στα δεδομένα που δεν θα μπορούσε να εξηγήσει ή να συμπεράνει μόνος του.
Για τη συγκεκριμένη εφαρμογή, μπορούσε να ελέγξει τόσο τη συμπεριφορά της όσο και τα δεδομένα από πίσω της, ενώ είχε και ανθρώπους στους οποίους μπορούσε να απευθυνθεί όταν η δική του κατανόηση δεν αρκούσε. Ο περιορισμένος ρόλος της εφαρμογής του έδινε επίσης περιθώριο για πειραματισμό χωρίς να αποτελεί μέρος ενός συστήματος παραγωγής. Η εμπιστοσύνη, σημειώνει, χτίστηκε με τον χρόνο, γιατί έπρεπε να ελέγξει τη συμπεριφορά, να ορίσει τι πρέπει να σημαίνουν οι αριθμοί και να λύσει ερωτήματα που δεν μπορούσε να απαντήσει μόνος του. Όλα αυτά, για τον ίδιο, ανήκουν στην εκτίμηση του πόσο κώδικα μπορεί να ανατεθεί σε agent.
Γι’ αυτό και θεωρεί όλο και πιο δύσκολη την ερμηνεία διατυπώσεων όπως «ο agent με έφερε στο 80% της διαδρομής». Καταλαβαίνει το αίσθημα που κρύβεται πίσω από αυτό: υπάρχει κάτι που λειτουργεί, το μεγαλύτερο μέρος της διεπαφής υπάρχει ήδη και μοιάζει σαν το υπόλοιπο να είναι μικρότερο. Όμως ένας υπολογισμός που βασίζεται σε λάθος αρχεία μπορεί να φαίνεται απολύτως λογικός μέχρι να βρεθεί τρόπος να ελεγχθεί. Πριν διορθωθεί κάτι, πρέπει να φανεί πού αποκλίνουν η κατανόηση του ανθρώπου και η συμπεριφορά της εφαρμογής. Ο agent μπορεί να βοηθήσει και σε αυτή την έρευνα, αλλά ο αριθμός των γραμμών κώδικα που έχει ήδη παραγάγει λέει ελάχιστα για το πόσο θα διαρκέσει η διαδικασία.
Επικαλείται επίσης την ανάλυση της DORA για 1.110 απαντήσεις μηχανικών λογισμικού της Google, η οποία δείχνει ότι μέρος του χρόνου που εξοικονομείται από τη δημιουργία κώδικα κατευθύνεται σε έλεγχο και επαλήθευση, μαζί με οφέλη παραγωγικότητας. Ο ίδιος εκτιμά ότι ακόμη και για κώδικα που έχει γράψει ο ίδιος θα χρειαζόταν έλεγχο, άρα κάθε σύγκριση πρέπει να περιλαμβάνει τον χρόνο που απαιτείται μέχρι να προκύψει ένα αποτέλεσμα έτοιμο για χρήση. Αλλιώς, η agentic ανάπτυξη μπορεί να μοιάζει τεχνητά ακριβή αν μετρηθούν οι έλεγχοι που παραλείπονται από την ανθρώπινη εκδοχή ή τεχνητά φθηνή αν σταματήσει το χρονόμετρο τη στιγμή που ο agent δηλώσει ότι τελείωσε.
Κάποιο μέρος αυτής της προσπάθειας μπορεί να κάνει τις επόμενες αλλαγές πιο εύκολες. Μόλις ένα UI test καλύψει μια σημαντική συμπεριφορά, μπορεί να συνεχίσει να την ελέγχει όσο η εφαρμογή αλλάζει, και ένας υπολογισμός που έχει επαληθευτεί με ένα μικρό σύνολο δεδομένων μπορεί να γίνει regression test. Ωστόσο, όπως επισημαίνει, η προσδοκία πρέπει πρώτα να έχει διαμορφωθεί. Αν η εφαρμογή και τα tests μοιράζονται την ίδια λανθασμένη ερμηνεία, οι πιο συχνοί έλεγχοι απλώς θα επιβεβαιώνουν το ίδιο λάθος.
Στο Task Viewer, αυτές οι προσδοκίες εξαρτιόνταν από σχέσεις στα δεδομένα που οι συνάδελφοί του τον βοήθησαν να καταλάβει. Ήξερε να τρέξει ένα query, αλλά χρειαζόταν τις εξηγήσεις τους για να κρίνει τι έπρεπε να επιστρέψει. Αν δει κανείς μόνο τον χρόνο που αφιέρωσε στον έλεγχο, λείπει η γνώση που έφεραν εκείνοι στις συζητήσεις, όπως λείπει και η δική του συμβολή αν μετρηθεί μόνο ο παραγόμενος κώδικας. Η αυτοπεποίθηση που χρειάζεται για να γίνει αποδεκτή μια αλλαγή μπορεί να εξαρτάται από διαφορετικά άτομα που κατανοούν διαφορετικά μέρη του συστήματος.
Όταν κάποιος μαθαίνει ακόμη ένα από αυτά τα μέρη, η ίδια η υλοποίηση μπορεί να είναι ο τρόπος με τον οποίο το κατανοεί. Η παρακολούθηση μιας τιμής από τη βάση δεδομένων μέχρι την οθόνη δίνει αφορμή να τεθούν ερωτήματα για το γιατί επιλέγονται ορισμένα αρχεία και πώς τα χρησιμοποιεί η εφαρμογή. Αν ένας agent ολοκληρώσει όλη αυτή τη διαδρομή, ο προγραμματιστής μπορεί να φτάσει σε μια λειτουργική δυνατότητα χωρίς να έχει απαντήσει μόνος του σε αυτά τα ερωτήματα. Η ίδια εργασία μπορεί να είναι λογική ανάθεση για έναν έμπειρο μηχανικό και σημαντική ευκαιρία μάθησης για κάποιον άλλον.
Ο Eisele παραπέμπει και στη μελέτη των Shen και Tamkin για το πώς η τεχνητή νοημοσύνη επηρεάζει τη διαμόρφωση δεξιοτήτων. Η μελέτη βασίζεται σε τυχαιοποιημένο πείραμα με 52 προγραμματιστές που μάθαιναν μια άγνωστη Python library. Οι συμμετέχοντες με βοήθεια AI είχαν χαμηλότερη επίδοση σε άμεση αξιολόγηση της κατανόησής τους. Οι ερευνητές παρατήρησαν επίσης ότι όσοι παρέμειναν ενεργά εμπλεκόμενοι με το AI είχαν καλύτερα μαθησιακά αποτελέσματα, αν και αυτή η παρατήρηση δεν αποδεικνύει ποιος τρόπος χρήσης του AI οδηγεί σε καλύτερη μάθηση.
Με βάση αυτό, υποστηρίζει ότι η αυτονομία μπορεί να αποφασιστεί πριν ξεκινήσει ο agent, συμφωνώντας εκ των προτέρων ποια μέρη θα χειριστεί μόνος του και ποια θα πρέπει να επιχειρήσει ο developer. Κάποιες φορές ο λόγος για τον περιορισμό της αυτονομίας είναι ότι δεν υπάρχει ακόμη πειστικός τρόπος ελέγχου του αποτελέσματος. Άλλες φορές ο έλεγχος είναι σχετικά εύκολος, αλλά το ζητούμενο είναι ο άνθρωπος που κάνει την εργασία να αναπτύξει μια συγκεκριμένη δεξιότητα. Σε αυτή την περίπτωση, η σκόπιμη διατήρηση μέρους της υλοποίησης στον developer μπορεί να είναι η σωστή επιλογή, ακόμη κι αν ο agent μπορούσε να γράψει αποδεκτό κώδικα.
Καταλήγει ότι οι σωστές αποφάσεις μπορούν να ληφθούν αν τεθούν δύο ερωτήματα: πόση προσπάθεια θα χρειαστεί η ομάδα για να βεβαιωθεί ότι το αποτέλεσμα είναι σωστό για τη χρήση που προορίζεται και τι πρέπει να μάθει ο developer κάνοντας αυτό το κομμάτι της εργασίας. Ένα χαρακτηριστικό μπορεί να είναι εύκολο να το ελέγξει ένας συνάδελφος που ήδη γνωρίζει την εφαρμογή, ενώ ο άνθρωπος που το υλοποιεί μπορεί να χρειάζεται να μάθει πώς λειτουργεί πριν αναλάβει μελλοντικές αλλαγές.
Πηγή: oreilly.com.
Το κείμενο δημιουργήθηκε από GPT 5.0. Δείτε τα AI Editorial Guidelines.






