Executor che usano un modello
Un executor intelligente usa un modello per risolvere uno o più passaggi incerti, ma conserva il normale contratto di un executor. Il pianificatore gli affida un compito preciso e riceve il risultato previsto, senza dover conoscere il percorso interno.
Il confine architetturale
Il manifest e il codice dell'executor definiscono lo scopo, gli argomenti, le capacità, il consenso, i limiti e la forma del risultato. Quando una parte del percorso richiede un modello, l'adattatore prepara un'osservazione limitata, controlla la proposta e decide quale operazione concreta eseguire. Il modello non invoca direttamente gli executor e non modifica il proprio contratto.
Nel manifest, intelligence = "agentic" dichiara questa modalità
e permette al registro e all'interfaccia di rappresentarla correttamente. La
dichiarazione viene convalidata, ma da sola non dimostra che
l'implementazione sia sicura: limiti, validazione delle proposte e
postcondizioni devono essere verificati nel codice e nei test.
Che cosa offre oggi il runtime comune
Metnos fornisce un ciclo sincrono e uno asincrono. A ogni tentativo può
aggiornare l'osservazione, chiedere una proposta, convalidarla, eseguirla e
controllare la postcondizione. L'esito interno è uno fra
completed, inconclusive ed exhausted.
Esiste anche la variante «prima il metodo deterministico, poi il modello»:
se il ripiego non produce un risultato valido, resta valido il risultato
deterministico iniziale.
| Responsabilità | Runtime comune | Adattatore dell'executor |
|---|---|---|
| Limiti | Impone massimi a tentativi, tempo, cronologia e osservazioni | Può scegliere limiti più stretti e deve limitare ogni singola operazione |
| Proposta | La richiede e ne gestisce il ciclo | Decide che cosa il modello può vedere e proporre |
| Validazione | Non accetta una proposta respinta | Definisce le regole concrete di ammissione |
| Successo | Restituisce l'esito del ciclo | Definisce e verifica la postcondizione |
| Autorità | Non la amplia | Opera entro manifest, policy, consenso e sandbox |
Dove viene usato
Scelta controllata
Nella navigazione web il modello può scegliere l'identificatore di un controllo fra candidati preparati dal broker. Non produce selettori CSS o XPath.
Nella ricerca di immagini può riordinare identificatori noti quando i metadati non offrono un segnale lessicale sufficiente.
Ripiego controllato
L'OCR prova prima Tesseract. Soltanto se il testo è insufficiente può chiedere al modello visivo una trascrizione; un risultato debole non sostituisce quello iniziale.
L'estrazione strutturata e alcuni percorsi di consultazione usano lo stesso principio con contratti propri.
Il modello è utile quando lo scopo è ristretto, il percorso può variare e la conclusione è verificabile. Non è adatto a nascondere dentro un executor una ricerca aperta, una strategia fra domini o un compito senza un criterio netto di completamento: quelle decisioni appartengono al pianificatore.
Accedere a un sito
Metnos cerca prima un modulo di accesso. Se non lo trova, segue gli ingressi all’area personale e i menu pertinenti. Usa i segnali della pagina; quando non bastano, il modello locale sceglie fra i comandi effettivamente osservati. Non inventa collegamenti né contiene percorsi dedicati a singoli siti.
La ricerca esplora fino a quattro passaggi per percorso, con un limite complessivo di 32 azioni. In un vicolo cieco torna a una diramazione già verificata e prova un’alternativa. Se il percorso cambia o un comando resta ambiguo, si ferma. Una pausa per il consenso non azzera i tentativi.
Trovato il modulo, il componente che gestisce il browser inserisce le credenziali senza affidarle al modello. Controlla il sito autorizzato e il contenuto dei campi prima dell’invio. Un modulo ambiguo o un valore diverso da quello previsto impedisce l’invio. Nei moduli a due passaggi distingue l’indirizzo email dalla password; un collegamento di accesso fuori dal modulo non basta a scambiare una newsletter per una pagina di login.
Salvataggio, elenco, uso e cancellazione delle credenziali condividono un unico deposito cifrato. L’elenco mostra soltanto metadati. I valori non compaiono nei risultati o nei registri e cambiare la cartella dei dati dell’istanza non seleziona un deposito diverso.
Raccogliere dati da più pagine
Una richiesta come «raccogli tutte le fatture del 2026» richiede di distinguere gli oggetti cercati, i filtri e i campi da estrarre. Trovare un primo elenco non conclude il lavoro: Metnos cerca anche pagine successive, archivi, altri periodi e dettagli necessari. I comandi visibili vengono esaminati a gruppi, così una pagina molto lunga non nasconde quelli successivi.
La ricerca esplora fino a tre livelli. Le espansioni dello stesso elenco, come la pagina successiva, restano allo stesso livello; un dettaglio completa una voce già trovata. Avanzamenti, scorrimenti e ritorni condividono 256 azioni e cinque minuti di lavoro attivo. Le attese per l’utente non consumano questo tempo e non azzerano i tentativi. Ogni decisione del modello locale dispone di 20 secondi, compresi nel tempo complessivo.
Quando torna su una pagina, Metnos ritrova i comandi già verificati senza ripetere clic inutili. Pulsanti uguali vengono distinti tramite il testo visibile della propria riga. Due righe indistinguibili restano ambigue; testo nascosto e valori modificabili non vengono usati per distinguerle. Un comando non riconoscibile con certezza non viene scelto per posizione.
Prima di cliccare, Metnos controlla ancora che il comando sia quello osservato, nella stessa pagina e nello stesso contesto. Se è cambiato, un percorso già visitato può essere preparato di nuovo una sola volta, rispettando consensi e limiti. Questo recupero non ripete un clic già inviato né una preparazione che ha già chiuso finestre o gestito consensi.
Il controllo finale osserva il comando senza riscrivere gli identificatori nella pagina. Appena viene invocato il clic, l’approvazione è consumata: un errore o un timeout non dimostrano l’assenza di effetti e non autorizzano a ripeterlo. Una nuova lettura può chiarire lo stato, senza reinviare il comando.
Una navigazione osservata può collegare una riga al suo dettaglio. Soltanto se il legame è univoco Metnos può unire i dati delle due viste, privilegiando il dettaglio e conservando i campi presenti solo nell’elenco. Date o importi uguali non dimostrano che due voci siano la stessa. Viste ambigue o troncate restano separate e le osservazioni originali sono conservate.
Quando interviene un modello cloud
Se è configurato, il modello cloud del livello Frontier sceglie i percorsi da esplorare; il riconoscimento dei dati rimane locale. Riceve la richiesta, lo stato di accesso e i nomi dei comandi con il titolo della loro sezione. Non riceve il contenuto completo della pagina, i campi estratti o le credenziali. I nomi dei comandi possono però contenere dati personali. La risposta lo segnala e il passo mostra un simbolo $ rosso; una richiesta già inviata rimane conteggiata anche se scade il tempo disponibile.
Senza Frontier configurato decide il modello locale. Se Frontier è
configurato ma la decisione fallisce o scade, la raccolta resta incompleta:
non passa automaticamente a un altro modello. L’amministratore può disattivare
questa scelta con METNOS_SITES_FRONTIER_ROUTES=0.
Filtri, date e fogli
«Tutte» mantiene il significato di raccolta completa anche quando il piano abbrevia la richiesta. Periodo, categoria e altri vincoli devono riferirsi senza ambiguità alla stessa azione e valere insieme per ogni voce. I filtri si applicano ai dati raccolti: la data di una pagina intermedia non basta a escludere un percorso. Un riepilogo o una fattura diversa non dimostrano che una voce rispetti i requisiti.
Le date conservano la precisione della fonte: «08/2026» indica un mese, «luglio–agosto 2026» un intervallo e «15/09/2026» un giorno. Sono riconosciuti anche i nomi dei mesi inglesi. L’anno deve essere presente nella fonte; nelle date numeriche l’ordine resta giorno/mese, indipendentemente dalla lingua dell’interfaccia. Una data illeggibile viene dichiarata, con il numero di righe escluse e il campo interessato, anche nel risultato del foglio.
Il foglio riusa il campo estratto quando l’intestazione differisce solo per maiuscole o spazi esterni. Cerca prima il nome esatto, poi una corrispondenza univoca con queste differenze e infine una corrispondenza univoca senza differenze di punteggiatura e accenti. Non risolve un’ambiguità scegliendo il primo campo. Emissione e scadenza restano date distinte.
Le intestazioni del foglio sono etichette, separate dalle chiavi estratte. Con uno schema già dichiarato non aggiungono campi; un collegamento esplicito tra intestazione e chiave può richiedere un nuovo campo. In assenza di schema, le intestazioni possono definirlo. Un filtro temporale già dichiarato con campo e periodo non riceve un secondo filtro automatico privo di campo.
Il censimento dei campi comprende tutte le righe. Un campo univoco presente ma vuoto può produrre una colonna vuota; una collisione resta ambigua anche se compare nelle ultime righe.
I valori forniti come dati non diventano formule. Nei file XLSX il nuovo testo viene salvato come testo, conservando le formule già presenti quando si aggiungono righe. Nei CSV e nelle scritture Google Sheets i testi attivi ricevono un apostrofo iniziale di protezione: nel CSV è parte del dato e può essere visibile. Le ricevute indicano il numero di celle così protette. Sul dispositivo serve il pacchetto aggiornato: un vecchio pacchetto non acquisisce questa protezione senza aggiornamento.
Per un errore durante un’azione del browser, la diagnostica interna distingue preparazione, invio del comando, operazioni successive, pulizia e registrazione. Conserva il tipo dell’eccezione e indizi da un insieme chiuso, senza riportare messaggi, selettori o dati della pagina. Gli indizi possono derivare anche da testo citato: non certificano la causa e non cambiano esiti, tentativi o limiti.
Se un ostacolo interrompe la ricerca, i dati già osservati possono essere consegnati anche in un foglio, con l’avviso di raccolta incompleta e la causa. Un login fallito, un rifiuto senza dati o un consenso pendente fermano invece la sequenza. Un comando ambiguo non giustifica l’aumento dei limiti.
CAPTCHA, codici e ripresa
I confini del sito e le richieste di consenso restano validi durante tutta la navigazione. I cookie seguono una procedura separata che rifiuta le opzioni facoltative e ricontrolla eventuali nuovi avvisi prima dell’invio. I codici OTP vengono chiesti all’utente, salvo automatismi autorizzati esplicitamente; non sono trattati come CAPTCHA.
Per i CAPTCHA Cloudflare supportati, Metnos prova una sola volta la
libreria locale playwright-captcha, nella stessa sessione e per
non più di dieci secondi. Il tentativo rientra nei limiti del login, viene
ricontrollato sulla pagina e non usa servizi a pagamento. Se la verifica
resta aperta o non è supportata, come reCAPTCHA, Metnos chiede il tuo intervento.
Il pannello mostra la pagina della sessione già aperta, con i campi sensibili oscurati. Puoi cliccare, scorrere, aggiornare l’immagine e premere Riprendi. Metnos verifica il singolo CAPTCHA e continua la richiesta originale. Se le credenziali erano già state inviate, controlla quel tentativo senza inviarle di nuovo. Il pannello scade dopo dieci minuti; annullarlo chiude la sessione. Verifiche che richiedono tastiera o audio non sono supportate da questo pannello.
La ripresa ha un nuovo identificativo collegato al turno sospeso e conserva utente, conversazione, risultati e allegati. Dopo l’invio del modulo, la pagina mostra l’attesa e recupera l’esito anche dopo una ricarica o una risposta persa, senza inviare nuovamente i valori. Se non può confermare il risultato, lo dichiara e non ripete automaticamente l’operazione.
Se non riesce
Dalla release 122: quando un comando web risulta coperto, il browser gestito conserva da solo una copia statica della pagina e le misure dell'ostacolo. Non serve eseguire script nella console. La copia esclude campi riservati e codice attivo; rimane locale, protetta come gli screenshot. Non viene acquisita durante consensi o verifiche di accesso in attesa e non certifica il flusso sul sito.
Se nessuna proposta viene ammessa, il ciclo è inconclusive. Se
sono terminati i tentativi o il tempo disponibile, è exhausted.
L'adattatore traduce poi questo esito nel contratto pubblico del proprio
executor: può mantenere il risultato deterministico, restituire un errore
tipizzato o chiedere l'intervento dell'utente. Il ciclo comune non inventa un
risultato e non promette da solo una ripresa persistente.