Meta ha presentato un nuovo approccio denominato “semi-formal reasoning”, progettato per migliorare la capacità dei modelli linguistici di analizzare logicamente il codice e ridurre gli errori tipici delle inferenze basate solo su pattern testuali.

La necessità di un metodo alternativo nasce dalle difficoltà operative dei sistemi tradizionali. Per verificare il comportamento reale di un programma, molte soluzioni AI devono eseguire il codice in ambienti sandbox dedicati, una procedura che richiede risorse computazionali elevate e configurazioni specifiche per ogni repository. Questo approccio diventa complesso da scalare quando si tratta di grandi basi di codice o di analisi simultanee. Negli ultimi anni si è quindi diffusa l’idea di utilizzare modelli linguistici per analizzare il codice senza esecuzione, ma tali tecniche tendono a produrre inferenze imprecise o “allucinazioni”, poiché il modello formula conclusioni senza verifiche strutturate.

Il metodo proposto da Meta introduce il concetto di “agentic code reasoning”, in cui l’intelligenza artificiale analizza il codice seguendo una procedura strutturata che replica il ragionamento di uno sviluppatore esperto. L’elemento centrale è l’utilizzo di template di ragionamento semi-formale che guidano il modello nella raccolta delle evidenze. L’agente deve esplicitare le ipotesi, verificare le dipendenze tra file, analizzare il flusso dei dati e validare ogni passaggio prima di formulare una conclusione. Questo schema funge da una sorta di “certificato logico”, obbligando il sistema a basare il risultato su prove concrete piuttosto che su associazioni statistiche.

L’approccio introduce anche meccanismi di autocorrezione. Durante l’analisi, l’agente confronta continuamente le evidenze raccolte con l’ipotesi iniziale e, in caso di incongruenze, modifica il percorso inferenziale. Questa procedura ricorda il comportamento di un programmatore che simula mentalmente l’esecuzione del codice per individuare errori logici prima di avviare test reali. L’uso di template strutturati riduce inoltre il rischio di interpretazioni fuorvianti, come nel caso di funzioni con nomi simili ma comportamenti differenti, poiché il sistema è obbligato a seguire le chiamate e il flusso dei dati in modo esplicito.

I risultati sperimentali indicano miglioramenti concreti nelle attività di analisi del codice. Nei test di verifica delle patch, la precisione è aumentata dal 78% all’88%, con punte del 93% in ambienti realistici. Anche l’identificazione della posizione dei bug e la capacità di rispondere a domande complesse su repository di grandi dimensioni hanno mostrato miglioramenti significativi, con livelli di accuratezza intorno all’87%. Questi risultati suggeriscono che il ragionamento semi-formale può ridurre gli errori tipici degli approcci puramente linguistici, migliorando l’affidabilità delle analisi automatiche.

Un ulteriore vantaggio riguarda l’efficienza economica. Poiché il metodo consente di analizzare il codice senza esecuzione reale, può ridurre i costi associati alla creazione di sandbox e all’utilizzo di infrastrutture dedicate. Questo aspetto è particolarmente rilevante nei processi di addestramento basati su reinforcement learning, dove la simulazione del comportamento del codice rappresenta una delle componenti più onerose. La possibilità di effettuare analisi logiche senza esecuzione potrebbe quindi rendere più sostenibile l’adozione di agenti AI su larga scala nei flussi di sviluppo.

Di Fantasy