Dallo schermo al terminale: i nuovi agenti web che scrivono codice da soli
Web Agents che Scrivono Codice: Perché il Terminale Sta Sostituendo il Browser
L’idea classica di automazione web prevede un agente che controlla il browser: clicca, digita, scorre. Sembra naturale, ma forse è proprio questo modello a limitare le possibilità.
Il Limite delle Sessioni Persistenti
Quando l’agente resta legato a un’unica sessione del browser, ogni azione dipende da quella precedente. Se qualcosa va storto, diventa difficile isolare il problema. Non c’è separazione chiara tra la logica decisionale e l’ambiente che la esegue.
I problemi sono concreti:
- Stato che cresce: sessioni lunghe accumulano complessità e casi imprevisti
- Debug complicato: difficile ispezionare o ripetere singole parti del flusso
- Zero riusabilità: ogni task parte da zero, anche se problemi simili sono già stati risolti
Webwright: Browser Usa e Getta, Codice che Rimane
Webwright rovescia l’approccio. Invece di mantenere viva una sessione del browser, l’agente ne apre di nuove quando servono, le usa per estrarre dati e le chiude. Quello che resta non è lo stato del browser, ma il codice, i log e gli output salvati nel workspace locale.
Il browser diventa uno strumento temporaneo. Il vero prodotto è il codice che lo controlla.
I Tre Principi
1. Funzioni invece di Azioni Primitive
Non più sequenze infinite di clic e attese. Webwright spinge gli agenti a scrivere funzioni riutilizzabili per selezionare date, compilare form, filtrare risultati. Il codice diventa più pulito e facile da mantenere.
2. Artefatti Permanenti
Ogni esecuzione lascia dietro di sé script esplorativi, log, screenshot e, alla fine, un programma riutilizzabile. È qui che si concentra il valore: un workspace consultabile e condivisibile.
3. Architettura Minimalista
Tutto ruota intorno a tre componenti: un Runner, un endpoint del modello e un ambiente terminale. Circa mille righe di codice. Nessuna torre di orchestrazione multi-agente, solo un ciclo di feedback semplice e diretto.
Il Ciclo di Lavoro
Il meccanismo è lineare:
- Il runner invia al modello il task, lo stato del workspace e le ultime osservazioni
- Il modello risponde con un comando shell, spesso uno script Playwright
- L’ambiente esegue il comando e restituisce output, log, screenshot o errori
- Il ciclo si ripete finché non viene generato uno script finale, testato in una cartella pulita e validato con un controllo di auto-riflessione
Niente routing complesso. Solo terminale, modello e workspace in crescita.
I Numeri
Su benchmark reali:
- 60.8% di accuratezza su Odyssey, con un miglioramento del 35.1% rispetto allo stato dell’arte precedente
- 86.7% su Online-Mind2Web, 300 task su 136 siti diversi
- 66.2% anche con modelli piccoli come Qwen 3.5-9B, se dotati di tool riutilizzabili
Risultati ottenuti su siti live, non su ambienti controllati.
Controllare l’Accesso al Terminale
Dare all’agente accesso completo al terminale è potente, ma rischioso. Webwright introduce tre meccanismi di sicurezza:
- Gate di completamento: l’agente non può dichiarare vittoria finché non genera uno script finale, lo riesegue in un ambiente fresco e supera il controllo di auto-riflessione
- Compressione del contesto: i percorsi lunghi vengono riassunti periodicamente, mentre gli artefatti restano nel workspace
- Tool riutilizzabili: gli script risolti possono essere parametrizzati, esportati come CLI e condivisi con altri agenti
Cosa Imparano gli Sviluppatori
L’approccio di Webwright suggerisce alcune regole pratiche:
- Separare l’intelligenza dell’agente dall’ambiente di esecuzione
- Preferire sessioni usa e getta e conservare il risultato del lavoro
- Costruire funzioni e cicli invece di catene di azioni primitive
- Far verificare all’agente la propria soluzione prima di considerarla valida
Il terminale non è solo un’interfaccia. È lo spazio dove il codice vive, i log si accumulano e gli artefatti persistono. Il browser passa, il terminale resta.
Una Nuova Direzione
Finora l’automazione web ha puntato a costruire state machine sempre più complesse. Webwright propone un’alternativa: far scrivere codice all’agente invece di fargli manipolare stato. Lasciare che il browser sia temporaneo e che il workspace sia duraturo.
È un’idea ancora giovane, ma indica una strada verso sistemi AI più affidabili e riutilizzabili, non solo per il web. Il repository è su GitHub e il principio è semplice: un terminale è tutto ciò che serve.