Τι είναι η χρήση υπολογιστή και γιατί έχει σημασία; Η χρήση υπολογιστή είναι μια απλή ιδέα με ευρείες προεκτάσεις: αντί να ζητάμε από τα μοντέλα να απαντούν σε ερωτήσεις, τους ζητάμε να χειρίζονται λογισμικό — να πλοηγούνται σε ιστοτόπους, να συμπληρώνουν φόρμες, να προχωρούν σε ροές εργασίας με κλικ και να ολοκληρώνουν αυτόνομα εργασίες από την αρχή μέχρι το τέλος.
Έτσι καθίσταται δυνατή μια μεγάλη κατηγορία πραγματικών εργασιών που σήμερα είναι κατακερματισμένες σε διαφορετικές διεπαφές, όπως ολοκληρωμένες κρατήσεις, ολοκλήρωση αγορών σε ηλεκτρονικά καταστήματα, ταξιδιωτικός σχεδιασμός πολλών βημάτων και διοικητικές ροές εργασίας χωρίς αντίστοιχο εύχρηστο API. Αυτά τα προβλήματα δεν είναι καινούργια. Το καινούργιο είναι ότι μπορούν πλέον να επιλυθούν με μοντέλα γενικού σκοπού.
Πρόσφατα συστήματα της Anthropic και της OpenAI έχουν παρουσιάσει πράκτορες που δεν ενεργούν απλώς, αλλά συλλογίζονται σχετικά με την κατάσταση, ανακάμπτουν από σφάλματα και δημιουργούν επιτόπου λύσεις προσαρμοσμένες στην εκάστοτε εργασία. Έτσι, το πρόγραμμα περιήγησης μετατρέπεται σε ένα γενικό περιβάλλον εκτέλεσης για πράκτορες, αλλά προκύπτει αμέσως ένα σχεδιαστικό ερώτημα: πόσο από αυτό το περιβάλλον πρέπει να εκθέτουμε στο μοντέλο;
Τα πρώτα συστήματα απάντησαν σε αυτό το ερώτημα περικλείοντας το πρόγραμμα περιήγησης σε ένα σταθερό σύνολο ασφαλών, προκαθορισμένων ενεργειών. Όπως θα υποστηρίξουμε σε αυτή τη δημοσίευση, η προσέγγιση αυτή φτάνει πλέον στα όριά της.


Κατά τη δημιουργία πρακτόρων για προγράμματα περιήγησης, υπάρχει μια γνώριμη παρόρμηση: να μην εμπιστευόμαστε υπερβολικά το μοντέλο.
Γι’ αυτό δημιουργούμε ένα περιτύλιγμα γύρω από το πρόγραμμα περιήγησης. Παρέχουμε προκαθορισμένα εργαλεία, όπως click, type, scroll, select και read_text. Απλοποιούμε το Μοντέλο Αντικειμένου Εγγράφου (DOM). Περιορίζουμε το εύρος των δυνατών ενεργειών. Προσπαθούμε να κάνουμε τη συμπεριφορά κατανοητή και ελέγξιμη μέσω αφαιρέσεων που σχεδιάζουμε εμείς.
Αυτό αποτελεί μια εύλογη αφετηρία. Παράλληλα, όμως, αποτελεί όλο και περισσότερο τη λανθασμένη μακροπρόθεσμη αρχιτεκτονική.
Καθώς τα κορυφαία μοντέλα βελτιώνονται, ο περιορισμός δεν είναι πλέον μόνο ότι το μοντέλο δεν διαθέτει εργαλεία. Είναι ότι το αναγκάζουμε να λειτουργεί μέσω αφαιρέσεων που αποκρύπτουν υπερβολικά μεγάλο μέρος του υποκείμενου συστήματος. Συμπιέζουμε ένα ακατάστατο, δυναμικό περιβάλλον σε μια σταθερή διεπαφή ενεργειών και έπειτα ζητάμε από το μοντέλο να αποδώσει καλά παρά την απώλεια πληροφοριών.
Αυτός ο συμβιβασμός γίνεται όλο και λιγότερο ελκυστικός.
Η αλλαγή που διερευνούμε περιγράφεται εύκολα, αλλά έχει σημαντικές συνέπειες. Αντί να αντιμετωπίζουμε τον πράκτορα ως επιλογέα προκαθορισμένων ενεργειών, τον αντιμετωπίζουμε ως συνθέτη προγραμμάτων που λειτουργεί μέσα σε ένα περιορισμένο περιβάλλον εκτέλεσης.
Τα μοντέλα έγιναν πραγματικά ικανά και δεν χρειάζονται πλέον τα αφηρημένα προστατευτικά όρια που τους επιβάλλετε — χρειάζονται ολόκληρο το εύρος ενεργειών για να σχεδιάζουν, να εκτελούν και να επαναλαμβάνουν την εργασία μέχρι να πετύχουν τον στόχο τους.
Αυτή η δημοσίευση αφορά τη μετάβαση από την αυτοματοποίηση προγραμμάτων περιήγησης που βασίζεται σε μεγάλο βαθμό σε αφαιρέσεις προς την περιορισμένη χρήση υπολογιστή, καθώς και όσα αλλάζουν όταν σχεδιάζετε συστήματα με αυτόν τον τρόπο.
Το πρόβλημα δεν είναι ότι οι σταθερές διεπαφές ενεργειών είναι εννοιολογικά λανθασμένες. Είναι ότι ο ιστός δεν συνεργάζεται μαζί τους.


Οι σύγχρονες διεπαφές βασίζονται σε React, Vue και Angular, με ασύγχρονες ενημερώσεις κατάστασης, συστήματα συνθετικών συμβάντων και ενσωματωμένα γραφικά στοιχεία τρίτων, τα οποία βρίσκονται σε iframe διαφορετικής προέλευσης και έχουν δικό τους κύκλο ζωής. Ένα περιτύλιγμα που λέει «πληκτρολόγησε σε αυτό το πεδίο» είναι σωστό μόνο εφόσον η σελίδα συμφωνεί με τον δικό σας ορισμό της πληκτρολόγησης. Πολλές σελίδες δεν συμφωνούν. Η απευθείας ρύθμιση μιας τιμής συχνά παρακάμπτει εντελώς τον εντοπισμό αλλαγών του framework. Το πεδίο φαίνεται συμπληρωμένο. Η επικύρωση δεν ενεργοποιείται ποτέ. Η φόρμα παραμένει δυσλειτουργική.
Μπορείτε να το διορθώσετε πρόχειρα. Μπορείτε να προσθέσετε ειδικές περιπτώσεις για πεδία εισαγωγής του React, να αποστέλλετε συμβάντα blur μετά το focus και να περιμένετε να αδρανοποιηθεί το δίκτυο πριν διαβάσετε την κατάσταση. Κάθε επιμέρους διόρθωση είναι σωστή για τη συγκεκριμένη περίπτωση. Συλλογικά, όμως, οι διορθώσεις συσσωρεύονται σε ένα σύστημα που γίνεται ολοένα δυσκολότερο στη συντήρηση και ολοένα πιο εξειδικευμένο για τους ιστοτόπους που έχετε ήδη συναντήσει.
Το βαθύτερο πρόβλημα είναι ότι κωδικοποιείτε στο επίπεδο αφαίρεσης παραδοχές για το πώς πρέπει να λειτουργούν οι αλληλεπιδράσεις και κατόπιν ανακαλύπτετε ότι ο ιστός βασίζεται σε διαφορετικές παραδοχές.
Σκεφτείτε μια φόρμα πληρωμής που έχει ενσωματωθεί μέσω Stripe ή Adyen σε ένα iframe διαφορετικής προέλευσης. Το περιτύλιγμά σας δεν μπορεί να την προσπελάσει απευθείας, επειδή βρίσκεται σε ξεχωριστή προέλευση. Το εργαλείο read_text δεν μπορεί να παρατηρήσει την εσωτερική της κατάσταση. Το εργαλείο type δεν μπορεί να χειριστεί τα πεδία εισαγωγής της. Ένας πράκτορας που βασίζεται σε περιτύλιγμα φτάνει εδώ σε αδιέξοδο. Η αφαίρεση σχεδιάστηκε για το κύριο έγγραφο. Η πραγματική εργασία βρίσκεται σε σημείο που η αφαίρεση δεν μπορεί να δει.
Παρόμοια αναντιστοιχία εμφανίζεται και σε λιγότερο προφανείς ροές. Ένα αναπτυσσόμενο μενού που ελέγχεται από framework μπορεί να μην αποκρίνεται καθόλου σε απευθείας κλικ, επειδή το ορατό στοιχείο δεν είναι το πραγματικό στοιχείο ελέγχου. Μπορεί να απαιτείται μια ακολουθία συμβάντων πληκτρολογίου για να ενεργοποιηθεί η υποκείμενη μετάβαση κατάστασης. Εξωτερικά, η διεπαφή χρήστη φαίνεται να αποκρίνεται σε κλικ. Η αφαίρεση λέει «κάνε κλικ». Δεν συμβαίνει τίποτα.
Ή σκεφτείτε μια ροή πολλών βημάτων σε αναδυόμενο παράθυρο, όπου οι ενημερώσεις του ορατού DOM καθυστερούν σε σχέση με τις αλλαγές της εσωτερικής κατάστασης. Η σωστή επόμενη ενέργεια εξαρτάται από μια μετάβαση κατάστασης που δεν έχει ακόμη αποτυπωθεί στα στοιχεία που βλέπει το περιτύλιγμά σας. Ένας πράκτορας που βασίζεται σε περιτύλιγμα καταλήγει να ενεργεί πρόωρα ή να διαβάζει παρωχημένη κατάσταση, επειδή λειτουργεί με ελλιπή εικόνα του συστήματος.
Σε κάθε περίπτωση, η αφαίρεση αποκρύπτει τα σήματα που χρειάζεται πραγματικά ο πράκτορας.
Ένα μοντέλο που λειτουργεί σε χαμηλότερο επίπεδο — εξετάζοντας το ενεργό DOM, συλλογιζόμενο τα όρια των frame και συνθέτοντας την ακολουθία αλληλεπίδρασης για τη συγκεκριμένη επιφάνεια — μπορεί να χειριστεί αυτές τις καταστάσεις. Δεν είναι ότι το μοντέλο είναι εγγενώς εξυπνότερο. Είναι ότι έχει πρόσβαση στις πληροφορίες που είχαν αφαιρεθεί.
Η αλλαγή προς την οποία εργαζόμαστε περιγράφεται απλά: αντί να ζητάμε από το μοντέλο να επιλέγει μεταξύ προκαθορισμένων ενεργειών, του παρέχουμε μια επιφάνεια εκτέλεσης χαμηλότερου επιπέδου και την περιορίζουμε μέσω πολιτικής εκτέλεσης, αντί μέσω του σχεδιασμού αφαιρέσεων.
Αυτή η σχεδιαστική επιλογή προκύπτει από μια ευρύτερη μεταβολή στον κλάδο, η οποία αρχίζει να ευνοεί βασικά εργαλεία χαμηλότερου επιπέδου. Αυτά αξιοποιούν την έμφυτη ικανότητα του πράκτορα να διορθώνεται κατά την εκτέλεση και να παράγει κώδικα υψηλής ποιότητας, αντί για άκαμπτα εξειδικευμένα εργαλεία που είναι μεν αξιόπιστα, αλλά στερούν από το μοντέλο τη δυνατότητα προσαρμογής σε διαφορετικά περιβάλλοντα.
Σκεφτείτε την επιτυχία του Claude Code ως βασικής επιλογής στην εργαλειοθήκη πολλών προγραμματιστών, καθώς και την ευρύτερη στροφή του κλάδου προς πράκτορες που βασίζονται στο τερματικό. Το μεγαλύτερο πλεονέκτημα του Claude Code δεν είναι το ίδιο το μοντέλο, αλλά ο μηχανισμός χαμηλότερου επιπέδου. Η παροχή λιγότερων, πιο αρθρωτών εργαλείων χαμηλότερου επιπέδου στο μοντέλο — δηλαδή του τερματικού — οδηγεί σε καλύτερη απόδοση κατά την κλήση εργαλείων, κυρίως επειδή ο πράκτορας μπορεί να συλλογίζεται και να δημιουργεί προσαρμοσμένα script για την εκάστοτε εργασία, αντί να προσπαθεί να χρησιμοποιήσει γενικευμένα εργαλεία που επιβαρύνουν το θεματικό πλαίσιο.
Στην πράξη, για την αυτοματοποίηση προγραμμάτων περιήγησης, αυτό σημαίνει ότι το μοντέλο μπορεί να εξετάζει απευθείας την τρέχουσα κατάσταση της σελίδας, να διασχίζει frame και να δημιουργεί εξειδικευμένο κώδικα αλληλεπίδρασης για την τρέχουσα διεπαφή, αντί να αντιστοιχίζει τα πάντα σε ένα σταθερό σύνολο προκατασκευασμένων ενεργειών.
Το μοντέλο συμπεριφέρεται λιγότερο σαν επιλογέας και περισσότερο σαν δημιουργός λογικής κατά την εκτέλεση. Εξετάζει την τρέχουσα κατάσταση, συλλογίζεται σχετικά με τη διεπαφή και συνθέτει τη λογική αλληλεπίδρασης για τη συγκεκριμένη περίπτωση. Μπορεί να δημιουργεί ακολουθίες πολλών βημάτων, να προσαρμόζεται σε ασυνήθιστες ροές και να επαληθεύει τα αποτελέσματα πριν συνεχίσει. Όταν μια ενέργεια αποτυγχάνει, το μοντέλο βλέπει το υποκείμενο σφάλμα και αυτοδιορθώνεται. Αυτό είναι ισχυρότερο και πιο επικίνδυνο, αλλά προσεγγίζει πολύ περισσότερο την πραγματική μορφή του προβλήματος.
Το σημαντικό είναι ότι η αφαίρεση του επιπέδου αφαίρεσης δεν μειώνει την πειθαρχία του συστήματος. Απλώς μεταφέρει αλλού αυτή την πειθαρχία.
Η εργασία που προηγουμένως γινόταν στον σχεδιασμό περιτυλιγμάτων και στη διαχείριση οριακών περιπτώσεων μεταφέρεται σε τρία σημεία: στην προτροπή, η οποία γίνεται μια μορφή επιχειρησιακής εκπαίδευσης· στο περιβάλλον εκτέλεσης, το οποίο επιβάλλει όρια όπως το εύρος πλοήγησης, οι ευαίσθητες ενέργειες και η συμπεριφορά επανάληψης· και στο επίπεδο αξιολόγησης, το οποίο εξετάζει όχι μόνο αν η εργασία ολοκληρώθηκε, αλλά και αν τα ενδιάμεσα βήματα ήταν σωστά. Λιγότερες εύθραυστες αφαιρέσεις. Ισχυρότερα υποστηρικτικά συστήματα.
Ένα αποτέλεσμα αυτής της αλλαγής είναι ότι ο κώδικας του προϊόντος συχνά απλοποιείται, παρόλο που το συνολικό σύστημα αποκτά περισσότερες δυνατότητες. Αντί να κωδικοποιεί μοτίβα αλληλεπίδρασης ως επαναχρησιμοποιήσιμα περιτυλίγματα, ο πράκτορας συνθέτει τη συμπεριφορά κατά την εκτέλεση. Διατηρείτε ένα μικρό σύνολο ισχυρών βασικών λειτουργιών και ένα περιορισμένο περιβάλλον εκτέλεσης, αντί για μια διαρκώς διευρυνόμενη γκάμα εξειδικευμένων εργαλείων και λογικής για οριακές περιπτώσεις.
Αυτό αλλάζει και τον τρόπο με τον οποίο γενικεύει το σύστημα. Ένας πράκτορας που βασίζεται σε περιτυλίγματα γενικεύει καλά σε εργασίες που μοιάζουν με εκείνες για τις οποίες έχετε ήδη δημιουργήσει περιτυλίγματα. Ένας πράκτορας σε περιορισμένο περιβάλλον εκτέλεσης γενικεύει σε εργασίες που μοιράζονται την ίδια υποδομή εκτέλεσης, ακόμη και όταν η ορατή διεπαφή διαφέρει.
Για παράδειγμα, η αλληλεπίδραση με μια φόρμα αναζήτησης, μια διαδικασία κράτησης ή μια σελίδα ρυθμίσεων μπορεί να φαίνεται εντελώς διαφορετική σε επίπεδο διεπαφής χρήστη. Στο υπόβαθρο, όμως, μοιράζονται κοινά μοτίβα: ανάγνωση κατάστασης, ενεργοποίηση συμβάντων, επαλήθευση αποτελεσμάτων και διαχείριση ασύγχρονων ενημερώσεων. Ένα σύστημα που λειτουργεί σε αυτό το επίπεδο προσαρμόζεται πιο φυσικά σε διαφορετικές εργασίες.
Το επαναχρησιμοποιήσιμο στοιχείο δεν είναι η λίστα ενεργειών. Είναι η ικανότητα του μοντέλου να εξετάζει την κατάσταση, να ενεργεί με ασφάλεια και να επαληθεύει τα αποτελέσματα.


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