ADAntonio D'Elia
EN Tutti gli articoli

Punto di vista · Agenti AI in produzione

Cosa si rompe quando un agente AI lavora sui dati veri?

Si rompono le cose che nessuno guarda. In tre mesi di esercizio su cinque agenti AI ho registrato diciotto guasti, e in nessuno c'era qualcuno che attaccava: un lavoro notturno che per due mesi ha scritto «completato con successo» mentre falliva, una frase gentile al posto di un'azione mai eseguita — 6.272 € di noleggio fermo — e file che l'agente scriveva, rileggeva e ritrovava, senza che fossero mai arrivati sul disco. Il registro completo, con i costi e i controlli che ora li fermano, è pubblico su GitHub.

Quando si parla di rischi dell'intelligenza artificiale in azienda si pensa a un malintenzionato: qualcuno che inganna il sistema, ruba dati, manda comandi truccati. Le classifiche ufficiali dei rischi descrivono esattamente quello. I guasti che ho pagato io, fra giugno e agosto 2026, sono stati di un'altra natura.

Il semaforo verde che non sapeva diventare rosso

Un lavoro pianificato girava ogni notte. Lo script falliva, l'agente leggeva l'errore, ne scriveva un riassunto sensato, e il registro segnava «completato con successo». Due affermazioni vere nello stesso momento: il turno era andato a buon fine, il lavoro no.

Sei lavori sono andati avanti così per due mesi. Nessuno se n'è accorto perché la spia da guardare diceva verde, e la verità viveva in un file che nessuno apriva. Il costo in denaro è stato zero, ed è esattamente la ragione per cui è durato tanto: un guasto senza fattura non ha niente che lo renda visibile, tranne un campo di stato che mentiva.

Una frase gentile al posto di un'azione

Il secondo è quello che è costato di più. Un agente che gestisce richieste operative si è trovato davanti a un permesso che gli impediva di scrivere. A quel punto ha smesso di agire e ha cominciato a raccontare: «Giro io la richiesta.» Il messaggio è partito davvero, la richiesta non è mai stata aperta.

Il conto. Su 62 giorni e 2.312 messaggi, le promesse di un atto concreto sono state quattro, e tre a vuoto. L'ultima è costata 6.272 €: un mezzo a noleggio rimasto fermo 32 giorni a 196 € al giorno, perché la richiesta di riconsegna non è mai arrivata a destinazione.

Una ogni due settimane: troppo rara perché qualcuno la noti, troppo frequente perché ci si possa fidare che le cose annunciate siano state fatte.

La cosa che rende questo guasto insidioso è che nessun controllo di consegna lo intercetta. Il messaggio all'utente parte benissimo. Manca l'atto dietro il messaggio, e per accorgersene bisogna confrontare quello che l'agente ha detto con quello che risulta nei registri.

File salvati che non arrivavano sul disco

Il terzo sembrava una cancellazione. L'agente scriveva un documento, lo rileggeva, lo ritrovava: dentro il suo spazio quel file esisteva davvero. Fuori, non era mai arrivato. Nessuno aveva cancellato niente, e cercare il colpevole ha portato via la maggior parte del tempo di diagnosi.

Per un giorno intero il lavoro prodotto è finito nel nulla, e nello stesso periodo l'agente non ha visto due cartelle di documenti che le sue istruzioni gli impongono di consultare. Ha continuato a lavorare senza, e non ha detto niente: una cartella assente e una cartella vuota, viste da dentro, si assomigliano.

Perché le classifiche ufficiali non li vedono

Ho mappato tutti e dodici i principi che ho ricavato sulla OWASP Top 10 for Agentic Applications 2026, la classifica di riferimento pubblicata a dicembre 2025 dall'OWASP GenAI Security Project. Quattro voci su dieci hanno una corrispondenza con i miei casi. Per le altre sei ho scritto perché non ce l'hanno.

Il motivo è che quella lista descrive minacce: obiettivi dirottati, strumenti abusati, memoria avvelenata, agenti che escono dal mandato. Sono rischi reali e la lista è fatta bene. I diciotto guasti che ho registrato hanno tutti la casella dell'attaccante vuota, e continuano a costare soldi lo stesso.

Le tre domande da fare a chi ti installa un agente

  1. Il freno di spesa sta dentro o fuori dall'agente? Un limite scritto nelle sue istruzioni è una cosa che l'agente sa citare mentre la supera. Deve stare in un pezzo di software separato, che dice di no per conto suo.
  2. Il vostro semaforo verde l'avete mai visto diventare rosso? Se la risposta è no, quel semaforo va provato rompendo qualcosa di proposito. Finché non l'hai visto fallire, non sai se funziona.
  3. Come verificate che una protezione sia davvero attiva? Una guardia può risultare installata leggendo la configurazione e non esistere nel programma in funzione. Da noi era così su tre impianti su cinque, mentre credevamo fosse ovunque.

Perché ho pubblicato tutto

Ho raccolto i dodici principi, i diciotto guasti con la data e il costo, e sette programmi che chiunque può scaricare e provare in due minuti, in un repository pubblico che si chiama blast-radius. Il nome viene dal documento OWASP, che chiama «blast-radius guardrails» proprio le protezioni che limitano il danno di un agente che sbaglia.

Due dei difetti che ho trovato riguardavano il software che fa girare gli agenti, non il mio codice: li ho segnalati ai suoi manutentori prima di pubblicare, e le segnalazioni sono pubbliche entrambe. Il nome dell'azienda cliente non compare da nessuna parte, e la cosa è stata messa alla prova: due modelli esterni hanno ricevuto solo il testo pubblico con la consegna di scoprire di chi si trattasse, e non ci sono riusciti.

Chi valuta un progetto AI per la propria azienda ci trova le domande da fare. Chi un agente ce l'ha già in produzione ci trova i controlli, e può provarli sul proprio sistema stasera.

English version

What breaks when an AI agent works on real company data?

The things nobody watches. Across three months and five AI agents I recorded eighteen failures, and not one of them involved an attacker: a nightly job that reported "completed successfully" for two months while it failed, a polite sentence standing in for an action that was never performed — EUR 6,272 of idle rental — and files the agent wrote, read back and found, which had never reached the disk. The full log, with costs and the controls that now catch them, is public on GitHub.

When people discuss the risks of AI in business, they picture someone hostile: an attacker who tricks the system, steals data, sends forged commands. The official risk lists describe exactly that. The failures I paid for between June and August 2026 were of another kind.

The green light that could not turn red

A scheduled job ran every night. The script failed, the agent read the error, wrote a sensible summary of it, and the scheduler recorded "completed successfully". Two true statements at once: the turn succeeded, the work did not.

Six jobs ran that way for two months. Nobody noticed, because the light people watch said green and the truth lived in a file nobody opened. It cost no money, which is precisely why it lasted: a failure with no invoice attached has nothing to make it visible except a status field, and the status field was lying.

A polite sentence instead of an action

The second one cost the most. An agent handling operational requests met a permission that stopped it from writing. At that point it stopped acting and started narrating: "I'll pass this on." The message went out for real; the request was never filed.

Across 62 days and 2,312 messages, four turns promised a concrete act and three of them were empty. The last one cost EUR 6,272: a piece of rented equipment sat idle for 32 days at EUR 196 a day, because the return request never reached anyone. One every two weeks — too rare for anyone to notice, frequent enough that the system cannot be trusted to have done what it said.

What makes this failure hard to catch is that no delivery check sees it. The message to the user goes out perfectly. What is missing is the act behind the message, and finding that out means comparing what the agent said with what the registers record.

Files that never reached the disk

The third looked like a deletion. The agent wrote a document, read it back, found it: inside its own view of the filesystem that file genuinely existed. Outside, it had never arrived. Nothing had been deleted, and looking for the culprit took most of the diagnosis time.

For a full day the work produced went nowhere, and over the same period the agent could not see two directories its own instructions require it to consult. It carried on without them and said nothing: from the inside, a missing directory and an empty one look alike.

Why the official lists do not see them

I mapped all twelve principles onto the OWASP Top 10 for Agentic Applications 2026, published in December 2025 by the OWASP GenAI Security Project. Four of the ten entries match my cases. For the other six I wrote down why they do not.

The reason is that the list describes threats: hijacked goals, misused tools, poisoned memory, agents drifting out of their mandate. Those risks are real and the list is well made. The eighteen failures I recorded all have an empty attacker column, and they cost money anyway.

Three questions to ask whoever installs your agent

  1. Does the spending brake live inside or outside the agent? A limit written into its instructions is something the agent can quote while exceeding it. It belongs in separate software that says no on its own.
  2. Have you ever seen your green light turn red? If the answer is no, that light needs testing by breaking something on purpose. Until you have watched it fail, you do not know whether it works.
  3. How do you verify that a protection is actually running? A guard can read as installed in the configuration and be absent from the running process. Here that was true on three deployments out of five, while we believed it was everywhere.

Why I published all of it

The twelve principles, the eighteen failures with their date and cost, and seven controls anyone can download and run in two minutes are in a public repository called blast-radius. The name comes from the OWASP document itself, which calls "blast-radius guardrails" the protections that limit the damage an agent can do when it gets something wrong.

Two of the defects belonged to the software that runs the agents rather than to my own code. I reported them to its maintainers before publishing, and both reports are public already. The client's name appears nowhere, and that was tested: two external models were given only the public text and asked to identify the company. Neither could.

If you are evaluating an AI project, the questions to ask are in there. If you already run an agent in production, the controls are too, and you can try them on your own system tonight. Message me on WhatsApp or write to info@antoniodelia.it.

Antonio D'Elia

Il tuo agente AI ha un freno che funziona davvero?

Si parte da una conversazione senza impegno: guardiamo insieme quali controlli esistono oggi sui tuoi processi automatizzati, e quali di quei semafori verdi non è mai stato visto diventare rosso.