Antigravity: dalla sorpresa al dubbio
Per quanto Antigravity sia efficace, scavando più in profondità ci si accorge che i sistemi ad agenti che agiscono al suo interno, per quanto servizievoli e capaci di rispondere in modo preciso a tante questioni complesse, non sono esenti dai soliti problemi di tutti i modelli linguistici di grandi dimensioni (LLM, Large Language Model) con cui abbiamo a che fare da tre anni a questa parte.
Vediamo alcuni esempi pratici.
– Immagine generata da Google Gemini.
Esempio #1
Dopo aver provato con successo ad estrarre i dati dalle immagini di un mio articolo, mi sono messo subito al lavoro per provare a applicare il metodo ad altre figure simili a quelle analizzate la prima volta, come ad esempio questa.

Obiettivamente, la figura è più complessa rispetto alle mie precedenti: nella parte superiore compare un istogramma che mostra le misurazioni mensili di precipitazione e altezza della neve per due località dal nome impronunciabile del Québec, dove le diverse misurazioni sono rappresentate con tonalità e colori differenti. Più in basso, ma parzialmente sovrapposto all’istogramma, troviamo un grafico a linee con le temperature medie mensili delle due località, la cui scala verticale è posizionata sul lato destro.
La figura è più complessa, è vero, ma non mi sarei mai aspettato che Gemini 3 Flash faticasse così tanto. Ci prova, ci riprova, ma ogni volta c’è qualcosa che non va. L’istogramma tutto sommato non è un grosso problema, ma non c’è verso di fargli capire cosa deve fare con i dati del grafico a linee. E questo anche dopo avergli spiegato dove deve guardare per determinare i valori di temperatura di ogni mese
Prompt
Sono molto sorpreso dalla difficoltà che ha Gemini a ripetere ed estendere i risultati della mia prima prova, anche se continua a rassicurarmi sostenendo di aver capito benissimo quello che voglio e di aver eseguito un lavoro meticoloso.
Risposta
Nei fatti, sembra che Gemini non abbia la minima idea di cosa sia davvero il metodo “midpoint” e si limiti solo a ripetere ciò che gli dico, modificando solo qualche parola. Se così non fosse, infatti, risolverebbe l’intoppo in pochi secondi, tirando fuori i dati giusti proprio ha fatto la prima volta.
Alla fine mi arrendo. Non ha senso perdere delle ore per far fare ad un agente intelligente un lavoro che fatto a mano richiederebbe solo pochi minuti.
Esempio #2
Devo ammettere di essere deluso, ma forse mi sono aspettato troppo dal mio agente intelligente.
E allora cerco di semplificargli la vita, scegliendo un grafico di un mio vecchio articolo che non dovrebbe costituire un ostacolo particolarmente arduo per Gemini 3 Flash.

Che invece si incarta e fa errori incomprensibili. Con qualche aiutino, riesce a tirare fuori i dati mostrati in questo grafico, che però ha ancora parecchi punti mancanti (messi in evidenza dai riquadri colorati) o punti aggiunti in modo fantasioso (come quello indicato dalla freccia).

Nuova delusione. Perché usare un agente intelligente se si fa prima ad acquisire i punti a mano?
Esempio #3
Ma io non mi arrendo facilmente e provo ancora a fargli fare qualcosa di buono. E allora prendo una figura da quest’altro articolo, che è piuttosto semplice dal punto di vista grafico, ma che allo stesso tempo sarebbe utile poter acquisire in modo automatico, perché la quantità di dati contenuta rende difficile digitalizzarla a mano in modo preciso.

Scottato dalle esperienze precedenti gli chiedo prima di tutto di descrivere cosa vede nella figura.
Prompt
La risposta è lunga, precisa e quasi senza sbavature,
Risposta
Looking at figure 252505_1_f1.jpeg, I can see:
Two side-by-side graphs showing current-voltage (I-V) characteristics:
(a) Left graph (T = 2.0 K):
- Shows a hysteretic behavior - the curve forms a loop
- The current jumps abruptly at certain voltage points
- There’s a clear gap between the upward and downward voltage sweeps
- The vertical jumps occur around ±1 mV
(b) Right graph (T = 5.8 K):
Shows non-hysteretic behavior - smooth, continuous curve
- No loop or gap between voltage sweeps
- The transition is gradual rather than abrupt
- The curve is more rounded at the critical points
Key observation: This demonstrates how the same Josephson junction behaves differently at different temperatures. At the lower temperature (2.0 K), it shows hysteresis (memory effect), while at the higher temperature (5.8 K), the hysteresis disappears and the junction becomes “overdamped.”
Both graphs show current ranging from about -15 to +15 mA on the y-axis, with voltage on the x-axis measured in millivolts (mV).
ma in realtà contiene un errore proprio alla fine della risposta che manderebbe a pallino tutti i tentativi di digitalizzare i dati contenuti nei due grafici.
Quando glielo faccio notare, Gemini 3 Flash si corregge immediatamente e sembra quasi dispiaciuto. Ma come ben sappiamo, tutti gli LLM sono programmati per assecondare sempre l’interlocutore.
Vado avanti e cerco di dargli una mano, spiegandogli per bene cosa dovrebbe fare.
Prompt
Ma nonostante il suggerimento, non c’è verso di fargli fare un lavoro decente. Il meglio che ottengo sarebbe questo, che a prima vista è un ottimo risultato.

Peccato però che ci sia un errore grave e incomprensibile, che lascio a voi scoprire.
In ogni caso, l’immagine precedente è davvero il meglio del meglio del meglio, ed è stata ottenuta dopo ore di tentativi falliti (come questo tentativo iniziale, o questo, o questo) e di suggerimenti prima vaghi e poi sempre più precisi, un po’ come si fa con uno studente impreparato dal quale si cerca di tirar fuori qualche parola. Nonché di risposte che cercavano di adattarsi al suggerimento del momento, senza fare mai, o quasi mai, tesoro di tutto ciò che si era detto in precedenza.
Tutti questi tentativi infruttuosi sono stati resi ancora più frustanti dal fatto che, diversi anni fa, avevo risolto lo stesso problema in modo preciso e riproducibile con appena duecento righe di codice in Python (ricordavo male, non era C ma Python).
E quando alla fine gli spiego per filo e per segno come si fa, suggerendogli perfino che la chiave di tutto è convertire il file originale JPEG in un formato, il PBM (che è praticamente una griglia di 0 o 1 a seconda che il pixel sia bianco o nero),
Prompt
My suggestion is to change focus completely. If I were you I would:
-
take note of the extreme values of voltage and current on the X and Y axes;
-
get rid of the extraneous information outside the plot area and of the text (if any) inside it;
-
convert the image to the PBM (or PGM) format, that gives you a clean grid of black and white (or gray and white) pixels;
-
remove the extraneous grid dots using a 3x3 or 5x5 filter (or anything like that);
-
calculate the X and Y position of each black pixel, converting the [values] to Voltage and Current (it is just a proportion).
Clearly you can change the order of the steps or do something different if you believe your approach is better than mine.
non c’è lo stesso verso lo stesso di fargli fare qualcosa di utile.
Ancora più frustante è il fatto che Gemini non si è nemmeno fatto scrupolo di provare ad imbrogliarmi! Quando ha trovato il file originale dei valori misurati, che usavo per confrontare i risultati delle sue analisi con i dati veri, ha provato ad usare quel file per generare i dati che gli chiedevo. Chiaramente questa volta i risultati erano perfetti, ma ci voleva una intelligenza, artificiale o non, per tirare fuori una cosa del genere?
Altri esempi
Nei giorni in cui ho provato e riprovato quello che ho descritto in questo articolo ho fatto anche molte altre prove, come fargli scrivere del semplice codice in LaTeX, o convertire in CSV o Markdown le tabelle contenute nei file PDF di alcuni articoli.
Con il LaTeX se l’è cavato sempre bene, con le tabelle ha faticato parecchio anche quando il layout era abbastanza semplice. Inutile entrare nei dettagli, perché alla fine non ci sono grosse differenze rispetto agli esempi precedenti.
Conclusioni
Dopo gli ottimi risultati descritti nell’articolo precedente ero sinceramente convinto di poter usare gli agenti intelligenti integrati in Antigravity per estrarre facilmente i dati sepolti in tanti articoli scientifici di qualche anno fa, cosa che mi avrebbe permesso di eseguire delle nuove analisi comparate in modo rapido ed efficiente.
Purtroppo tutte le prove più approfondite descritte in questo articolo si sono rivelate un totale fallimento.
Il modello usato, quasi sempre Gemini 3 Flash (ma ho provato, anche se ho provato in modo più superficiale anche Gemini 3 Pro e Claude Sonnet 4.5),1 ha mostrato un comportamento poco coerente e ripetibile. Ad esempio utilizzando metodi diversi per risolvere lo stesso problema, senza che fosse mai chiaro se dietro la scelta di un algoritmo o libreria di calcolo ci fosse una precisa motivazione tecnica o se si trattasse solo di una questione di probabilità statistica nella generazione delle risposte.
Un altro problema serio è stato la mancanza di memoria, un po’ come la pesciolina Dory dei cartoni animati. Nonostante pochi giorni prima avesse risolto con successo il problema di estrarre i dati da un istogramma, Gemini non stato in grado di riapplicare la stessa metodologia ad un caso analogo. Altre volte, una volta risolto un problema in modo parziale, gli capitava di ricominciare a lavorarci su ripartendo da zero, invece di limitarsi a rielaborare e a migliorare la risposta precedente.
Ma il problema che forse mi ha disturbato di più è stata l’incapacità di generalizzare il lavoro già fatto. Se gli chiedi di estrarre dei dati da una immagine, Gemini crea un programma adatto a quella immagine, senza mai cercare di sviluppare un metodo generale applicabile ad altre immagini dello stesso tipo. Se gli chiedi di generare il grafico di un file di dati, Gemini crea uno script adatto solo per quel file, che sarà impossibile o quasi adattare ad altri casi analoghi.
Quando un umano affronta un problema, tende ad affezionarsi alla soluzione e cerca di riusarla e di estenderla a problemi simili. Un LLM non se ne cura e riscopre la ruota ad ogni nuova iterazione. Sembra il trionfo dell’usa-e-getta, lo spreco di risorse e di intelligenza (per quanto artificiale) elevato all’ennesima potenza.
E queste cose non le ho notate solo io, che con queste cose ci gioco soltanto. Studi scientifici molto seri – che ad esempio hanno provato ad usare gli LLM per riscoprire la legge di gravitazione di Newton a partire dalle orbite dei pianeti attorno al Sole, oppure per prevedere il comportamento di una molecola in base alle diverse rappresentazioni della sua struttura – hanno raggiunto le stesse, identiche conclusioni.
La nostra analisi rivela che questi modelli si comportano, invece, come se sviluppassero delle euristiche specifiche per il singolo compito, che non riescono a generalizzare.2
Il semplice aumento delle dimensioni del modello non migliora le prestazioni né la capacità di generalizzazione.3
Infine, e anche se a prima vista sembra il contrario, non dobbiamo mai dimenticare che gli LLM non capiscono davvero quello che gli si chiede, sono solo molto bravi a ritrovare un ago in un pagliaio molto, molto, molto grande. Un LLM può spiegare per filo e per segno cos’è una “caratteristica I-V di una giunzione Josephson”, perché ha letto un sacco di libri e di articoli sull’argomento. Ma poi, quando si tratta di collegare il concetto ideale di “caratteristica I-V” con la sua rappresentazione sperimentale riportata in una figura, fallisce miserabilmente, dimostrando di essere solo un pappagallo bene ammaestrato.
C’è chi sostiene che gli LLM di ultima generazione siano in grado di scrivere da soli un intero compilatore C o decine di migliaia di righe di codice perfettamente funzionante.
Da parte mia, e molto più umilmente, mi accontenterei che questi modelli riuscissero a produrre un file di dati o una tabella in maniera ripetibile, senza incorrere in errori inspiegabili o in risultati incoerenti. E magari evitando situazioni incresciose come quelle che ho sperimentato, in cui una volta tutto procede senza problemi e la volta successiva non si riesce a cavare un ragno da un buco.
-
Ho usato anche la versione a pagamento di Gemini, gentilmente concessami dall’università, senza notare differenze rispetto alla versione gratuita. Chi sostiene che i modelli a pagamento facciano cose che quelli gratuiti si sognano dovrebbe fornire prove più che solide prima di essere creduto. ↩︎
-
K. Vafa et al., What Has a Foundation Model Found? Using Inductive Bias to Probe for World Models, arXiv 2507.06952v4, 2025. ↩︎
-
B. Yan et al., Inconsistency of LLMs in molecular representations, Digital Discovery vol. 4, 2025. ↩︎
Commenti
Aggiungi un commento
@name
@message
IT
EN