Terminal-Native Web Agents: Από το Browser Session στο Κώδικα
Από το Browser στο Terminal: Πώς ο Κώδικας Αντικαθιστά τις Συνεδρίες
Όταν μιλάμε για web automation, το μυαλό μας πάει συνήθως σε έναν agent που ελέγχει browser. Κάνει κλικ, συμπληρώνει φόρμες, περιηγείται σελίδες. Όμως αυτή η προσέγγιση ίσως είναι και το βασικό της πρόβλημα.
Γιατί οι Stateful Browsers Περιορίζουν την Αυτοματοποίηση
Οι παραδοσιακοί agents είναι δεμένοι με τη συνεδρία του browser. Κάθε ενέργεια εξαρτάται από την προηγούμενη, και όταν κάτι πάει στραβά, η διόρθωση γίνεται περίπλοκη. Δεν υπάρχει σαφής διαχωρισμός ανάμεσα στην απόφαση και την εκτέλεση.
Αυτό δημιουργεί συγκεκριμένα προβλήματα:
- Συσσώρευση κατάστασης: Οι μακροσκελείς συνεδρίες γίνονται δυσκίνητες και γεμάτες απρόβλεπτες περιπτώσεις
- Δύσκολη αποσφαλμάτωση: Δεν μπορείς εύκολα να ελέγξεις ή να επαναλάβεις μέρος της διαδικασίας
- Έλλειψη επαναχρησιμοποίησης: Κάθε εργασία ξεκινά από το μηδέν
Webwright: Νέα Instances, Μόνιμος Κώδικας
Το Webwright προτείνει διαφορετική λογική. Αντί να διατηρεί ενεργή μία συνεδρία, δημιουργεί νέα browser instances όποτε χρειάζεται. Τα πετάει μετά τη χρήση. Αυτό που μένει είναι ο κώδικας, τα logs, τα screenshots και τα outputs στο τοπικό περιβάλλον.
Ο browser γίνεται εργαλείο μιας χρήσης. Το πραγματικό αποτέλεσμα είναι ο κώδικας που το χειρίζεται.
Οι Τρεις Βασικές Αρχές
1. Κώδικας Αντί για Πρωτόγονες Ενέργειες
Αντί για αλληλουχίες κλικ και αναμονών, το Webwright επιτρέπει τη δημιουργία επαναχρησιμοποιήσιμων συναρτήσεων. Επιλογή ημερομηνιών, συμπλήρωση φορμών, φιλτράρισμα και εξαγωγή δεδομένων γίνονται συναρτήσεις, όχι ακολουθίες ενεργειών.
2. Μόνιμα Αποτελέσματα
Κάθε εργασία παράγει συγκεκριμένα αρχεία: scripts, logs, screenshots. Αυτά τα artifacts παραμένουν διαθέσιμα για έλεγχο, κοινοποίηση και μελλοντική χρήση.
3. Απλή Αρχιτεκτονική
Το σύστημα αποτελείται από τρία μόνο στοιχεία: Runner, Model Endpoint και το terminal περιβάλλον. Περίπου 1.000 γραμμές κώδικα. Χωρίς περίπλοκες ιεραρχίες ή πολλαπλούς agents.
Πώς Λειτουργεί ο Βρόχος
Η διαδικασία είναι απλή:
- Ο runner στέλνει στο μοντέλο την εργασία, την τρέχουσα κατάσταση και τις πρόσφατες παρατηρήσεις
- Το μοντέλο απαντά με σκέψη και εντολή bash — συνήθως ένα script Playwright
- Το περιβάλλον εκτελεί την εντολή και επιστρέφει αποτελέσματα, logs ή σφάλματα
- Ο βρόχος επαναλαμβάνεται μέχρι να παραχθεί το τελικό script
Αποτελέσματα σε Πραγματικές Συνθήκες
Σε δοκιμές με πραγματικούς ιστότοπους, το Webwright πέτυχε:
- 60.8% ακρίβεια στο benchmark Odyssey — βελτίωση 35.1% σε σχέση με προηγούμενες λύσεις
- 86.7% ακρίβεια στο Online-Mind2Web σε 300 εργασίες σε 136 διαφορετικούς ιστότοπους
- 66.2% ακρίβεια ακόμα και με μικρότερα μοντέλα όπως το Qwen 3.5-9B
Έλεγχος και Ασφάλεια
Η πρόσβαση στο terminal δίνει δύναμη αλλά και ρίσκο. Το Webwright προσθέτει μηχανισμούς ελέγχου:
Premature Done Gate: Ο agent δεν μπορεί να δηλώσει επιτυχία αν δεν παράξει τελικό script, δεν το εκτελέσει σε καθαρό περιβάλλον και δεν περάσει αυτοέλεγχο.
Context Compaction: Συμπυκνώνει περιοδικά το ιστορικό σε summaries για να μην ξεπεραστούν τα όρια context.
Επαναχρησιμοποιήσιμα Εργαλεία: Τα scripts που λύνουν προβλήματα μπορούν να μετατραπούν σε CLI tools και να χρησιμοποιηθούν ξανά.
Τι Σημαίνει Αυτό για τους Developers
Η προσέγγιση του Webwright δίνει τέσσερα πρακτικά διδάγματα:
- Διαχώρισε την ευφυΐα του agent από το περιβάλλον εκτέλεσης
- Χρησιμοποίησε disposable sessions και διατήρησε τα αποτελέσματα
- Δημιούργησε συναρτήσεις αντί για αλυσίδες ενεργειών
- Επαλήθευσε πριν δηλώσεις επιτυχία
Το terminal δεν είναι απλώς διεπαφή. Είναι ο χώρος όπου ζει ο κώδικας και συσσωρεύονται τα αποτελέσματα. Ο browser είναι προσωρινός. Το terminal είναι μόνιμο.
Η Μεγαλύτερη Εικόνα
Η web automation μέχρι τώρα στόχευε στην κατασκευή πιο περίπλοκων state machines. Το Webwright δείχνει μια διαφορετική κατεύθυνση: ο agent γράφει κώδικα αντί να χειρίζεται κατάσταση. Ο browser γίνεται αναλώσιμος. Το workspace γίνεται μόνιμο.
Αν δουλεύεις με agent systems ή web automation, η terminal-native προσέγγιση του Webwright αξίζει προσοχής. Ο κώδικας είναι διαθέσιμος στο GitHub και η φιλοσοφία είναι απλή: ένα terminal είναι αρκετό.