Perché è una debolezza diversa da tutte le altre
Nel software tradizionale, i comandi del programma e i dati dell'utente sono cose separate: il codice decide, l'utente fornisce solo informazioni. Un assistente basato su un modello linguistico funziona diversamente: riceve un unico flusso di testo in cui ci sono sia le istruzioni di chi l'ha costruito («sei l'assistente di questa azienda, rispondi solo su questi temi») sia il messaggio di chi ci scrive. Il modello non ha un modo sicuro di sapere dove finiscono le prime e cominciano il secondo. Chi ci scrive può quindi inserire nel proprio messaggio istruzioni che il modello scambia per legittime: «ignora le indicazioni precedenti e...».
Cosa può andare storto, dal fastidio al danno
| Cosa ottiene chi manipola l'assistente | Perché conta |
|---|---|
| Gli fa dire cose fuori tono o imbarazzanti | Danno di reputazione: uno screenshot gira in fretta |
| Gli fa rivelare le istruzioni riservate con cui è stato costruito | Espone come funziona, e apre la strada ad altro |
| Gli fa rivelare dati a cui ha accesso | Se l'assistente vede documenti o dati dei clienti, diventa una fuga di dati |
| Gli fa compiere azioni collegate | Se l'assistente può inviare email, aprire ticket o modificare dati, può essere spinto a farlo indebitamente |
La gravità cresce con due cose: quanto l'assistente sa e quanto l'assistente può fare. Un assistente che solo risponde a domande generiche rischia poco; uno collegato ai vostri dati e ai vostri strumenti rischia molto.
Come si contiene (perché eliminarla non si può)
Non esiste, a oggi, un modo per rendere un assistente del tutto immune: è una caratteristica di come funzionano questi modelli, non un difetto da correggere una volta. La strategia efficace è un'altra: ridurre cosa può andare storto, limitando due cose — quanto l'assistente sa e quanto può fare.
Le difese che riducono davvero il danno
- Dare all'assistente accesso solo ai dati che gli servono per rispondere, non a tutto l'archivio.
- Limitare le azioni che può compiere: se non deve inviare email o modificare dati, non deve averne la possibilità.
- Trattare ogni azione con conseguenze (un invio, un pagamento, una modifica) come qualcosa che richiede una conferma umana, non un comando che l'assistente esegue da solo.
- Filtrare e registrare le conversazioni, per accorgersi dei tentativi e capire cosa è stato chiesto.
- Provare l'assistente in modo avversariale prima di metterlo online: è l'unico modo di sapere cosa gli si fa dire davvero.