Un CAPTCHA è un'idea semplice: mettere davanti a un visitatore un compito che le persone possono risolvere e le macchine no, e lasciare passare chi lo supera. Per anni è stato un compromesso ragionevole. Le persone perdevano pochi secondi, e l'automazione peggiore veniva rallentata.
Tre cose sono cambiate. Le macchine sono diventate brave a risolvere quei compiti. Le persone si sono stancate di risolverli. E sono arrivati un nuovo tipo di visitatore: AI agents che agiscono per clienti reali e persone che lavorano con assistenti AI. Un test che chiede "sei umano?" non ha una buona risposta per nessuno dei due.
Proof of Actor adotta un approccio diverso. Invece di testare ogni visitatore, dice alla tua applicazione chi o che cosa sta agendo, con l'evidenza dietro alla conclusione, e lascia al tuo codice decidere se un challenge serve davvero oppure no.
La versione breve
| CAPTCHA | Proof of Actor | |
|---|---|---|
| Domanda principale | Questo visitatore può superare un test umano? | Chi o che cosa sta agendo, e qual è l'evidenza? |
| Chi sostiene il costo | Ogni visitatore che vede il challenge | Nessuno; la classificazione avviene in background |
| Possibili risposte | Superato o fallito | Human, Human + AI, Agent o Unknown, più una basis |
| Agent AI legittimi | Bloccati, o costretti a trovare un aggiramento del test | Riconosciuti e indirizzati verso l'esperienza giusta |
| Persone che usano assistenti AI | Trattate come qualsiasi altro visitatore | Una classe distinta, Human + AI |
| Traffico non chiaro | Deve superare lo stesso test | Unknown, con un fallback che scegli per route |
| Dove si applica | Le pagine in cui lo inserisci | Ogni route coperta dalla tua integrazione |
| Comportamento predefinito all'installazione | Challenge visibile | Osservazione; non cambia nulla finché non aggiungi una policy |
Un test contro l'evidenza
Un CAPTCHA produce un solo bit di informazione: il visitatore ha superato il test oppure no. Non ti dice chi fosse il visitatore, se stesse lavorando con un assistente, né quanta fiducia dovresti riporre nel risultato. E produce quel bit chiedendo al visitatore di fare un lavoro.
Proof of Actor produce una classificazione e la sua basis dell'evidenza. Un risultato Verified significa che un'affermazione verificabile è stata validata, per esempio una firma di richiesta verificata rispetto a una chiave pubblicata. Un risultato Declared significa che un client o la tua stessa applicazione l'ha dichiarato. Un risultato Inferred è etichettato come inferenza. Unknown significa che l'evidenza non basta per determinare il risultato. Il tuo team può leggere ogni esito e vedere su cosa si basa, e il visitatore non deve fare nulla.
Il costo di sfidare tutti
Ogni challenge è attrito imposto ai tuoi utenti migliori per rallentare i peggiori. Su una pagina di registrazione costa conversioni. Su un checkout costa fatturato. Sul piano dell'accessibilità può escludere del tutto alcune persone. I team accettano quel costo solo perché non hanno un segnale migliore su chi si trova dall'altra parte.
Con il contesto sull'actor, il compromesso cambia. Puoi mantenere l'esperienza normale per le sessioni guidate da persone, saltare il challenge dove l'evidenza è forte e riservarlo al ristretto insieme di casi in cui aggiunge ancora valore: per esempio, un risultato Unknown su un cambio password o su un'azione ad alto valore. La maggior parte dei visitatori non vede più alcun challenge.
Gli agent legittimi hanno bisogno di un percorso, non di un puzzle
Un CAPTCHA è progettato per fermare il software. Aveva senso quando quasi tutto il software che visitava le tue pagine era indesiderato. Oggi non è più così.
Oggi un assistente può confrontare i tuoi piani per un cliente, un agent può prenotare un incontro attraverso la tua app, e un client AI può chiamare il tuo MCP server per completare un'attività. Fermarli significa fermare i tuoi clienti. Costringerli a passare da pagine e puzzle pensati per le persone crea automazioni fragili che si rompono a ogni redesign.
Proof of Actor riconosce gli agent e, con richieste firmate, può verificare quale chiave e quale operatore ci siano dietro. La tua applicazione può quindi fare qualcosa di meglio di un challenge: servire una API strutturata, offrire un flusso adatto agli agent, oppure applicare un rate limit dimensionato per l'automazione. La guida su servire contenuti strutturati agli agent AI mostra come.
Un'identità verificata non è la stessa cosa dell'autorizzazione. Una firma valida ti dice quale chiave ha firmato la richiesta; se quell'agent possa eseguire un'azione è una tua decisione di autorizzazione. Proof of Actor mantiene separate queste due domande.
Le persone che lavorano con l'AI restano tuoi utenti
Una persona che redige un messaggio di supporto con un assistente, o compila un modulo con l'aiuto dell'AI, è un cliente. Un test umano non dice nulla di utile su di loro: o lo superano, oppure vengono bloccati perché il loro comportamento sembra insolito.
Proof of Actor attribuisce loro una classe propria, Human + AI, riportata quando l'assistenza è dichiarata o osservabile tramite un'integrazione supportata. Questo ti permette di etichettare le richieste redatte con l'AI per il team giusto, studiare come gli utenti assistiti attraversano il tuo prodotto e mantenere fluida la loro esperienza. Leggi di più nella voce di glossario interazione assistita dall'AI.
Gestire deliberatamente i casi incerti
Alcuni traffici saranno sempre poco chiari. Un CAPTCHA li gestisce sempre allo stesso modo: tutti fanno il test.
Proof of Actor restituisce Unknown come risultato di prima classe, mai trattato come umano per impostazione predefinita e mai trattato come malevolo per impostazione predefinita. Scegli tu il fallback per route, in base al rischio:
- Pagine pubbliche e documentazione: allow, e mantieni l'esperienza standard.
- Form di registrazione e contatto: allow, con i tuoi normali controlli anti abuso.
- Modifiche all'account: mantieni il tuo flusso esistente di ri autenticazione.
- Azioni ad alto impatto: route to review, oppure applica qui un challenge se ne vuoi ancora uno.
È qui che un challenge può ancora guadagnarsi il suo posto: come un esito di policy deliberato su una route sensibile, non come un pedaggio per ogni visitatore.
Dove vive la decisione
Un widget CAPTCHA decide nel momento in cui viene mostrato, nella pagina in cui lo hai inserito, e solo una volta.
Con Proof of Actor, decide la tua applicazione, su ogni route coperta dalla tua integrazione: middleware server, Next.js, l'edge, un'integrazione browser approvata, una generica API HTTP o il tuo MCP server. Le policy usano insieme la classe di actor e la basis: allow, adapt, challenge, review o rate-limit. Vivono nel tuo codice, accanto al resto della logica di business, e puoi modificarle senza ridisegnare una pagina.
Il rollout
Proof of Actor parte in modalità osservazione. Installarlo non cambia nulla di ciò che vedono i tuoi utenti. Un percorso sensato per abbandonare i challenge indiscriminati è questo:
- Osserva. Mantieni i challenge esistenti e aggiungi Proof of Actor. Monitora la composizione degli actor e il tasso di Unknown su ogni route.
- Confronta. Per ogni route sottoposta a challenge, verifica quanti challenge colpiscono sessioni umane, utenti assistiti dall'AI e agent verificati.
- Anteprima. Scrivi una policy che salti il challenge dove l'evidenza è forte e lo mantenga per Unknown sulle azioni sensibili. Visualizzane l'effetto sul traffico reale.
- Applica. Attiva la policy una route alla volta, con un fallback documentato e un interruttore di rollback.
La guida su lancio sicuro di policy consapevoli dell'actor copre ogni passaggio in dettaglio.
Quando un CAPTCHA ha ancora senso
I challenge restano uno strumento utile in pochi casi: un picco di traffico poco chiaro contro un'azione sensibile, un modulo sotto abuso attivo, o una route per cui non hai ancora altri segnali. Proof of Actor non ti chiede di buttare via quello strumento. Ti dà il contesto per usarlo solo dove aiuta.
Inizia
Proof of Actor è in beta privata. I team fondatori selezionati possono ricevere fino a 12 mesi di accesso gratuito entro i limiti d'uso concordati, con supporto diretto dal team che lo sviluppa. Richiedi l'accesso anticipato e dicci quali route sottoponi a challenge oggi.