Immagine AI

L’idea che un agente di intelligenza artificiale possa comprendere in modo profondo e affidabile una base di codice di grandi dimensioni, muovendosi al suo interno come farebbe uno sviluppatore esperto, non appartiene più soltanto alla ricerca teorica. Con il rilascio di RPG-Encoder, Microsoft ha mostrato in modo concreto come questo obiettivo stia diventando sempre più realistico, affrontando uno dei limiti storici degli agenti di codifica: la difficoltà nel cogliere il contesto complessivo di un repository complesso.

Il nuovo framework, pubblicato il 3 tramite l’archivio online dell’azienda, nasce proprio per risolvere quello che i ricercatori definiscono il “problema della comprensione del contesto”. Finora, anche gli agenti più avanzati hanno lavorato spesso su informazioni parziali e frammentate, basandosi su documentazione API, grafi di dipendenza o estratti di codice isolati. Questo approccio permetteva di rispondere a richieste locali, ma rendeva estremamente difficile capire perché il codice fosse stato scritto in un certo modo, quale fosse l’intento progettuale originale o come le varie parti del sistema si incastrassero tra loro.

Il cuore concettuale di RPG-Encoder sta in una rilettura del rapporto tra scrittura e comprensione del codice. I ricercatori di Microsoft descrivono questi due processi come speculari: scrivere codice significa tradurre un’intenzione in una struttura formale, mentre comprendere codice significa fare il percorso inverso, risalendo dalla complessità dell’implementazione all’intento di base. RPG-Encoder unifica questi due movimenti all’interno di una rappresentazione comune chiamata Repository Planning Graph, o RPG, una mappa che consente all’agente di tenere insieme, nello stesso spazio, sia il significato che la struttura del codice.

L’elemento chiave di questo approccio è quello che viene definito “lifting semantico”. Invece di limitarsi ad analizzare la sintassi o la struttura grammaticale del codice, il framework cerca di identificare il ruolo effettivo di ogni funzione, classe o modulo. In questo modo, il sistema non sa soltanto dove si trova un certo file, ma comprende a cosa serve davvero, quale responsabilità logica svolge e come si inserisce nel funzionamento complessivo del software.

Le informazioni semantiche estratte vengono poi organizzate in modo gerarchico e categorizzate per funzione. Il risultato è un grafo che non rappresenta solo una mappa dei file, ma una vera e propria struttura concettuale del repository. Grazie a questa rappresentazione, un agente può rispondere in modo accurato anche a richieste astratte, come individuare la parte di codice responsabile dell’autenticazione o del controllo degli accessi, senza che l’utente debba conoscere in anticipo nomi di file o percorsi specifici.

Un altro aspetto centrale di RPG-Encoder è l’attenzione alla natura dinamica del codice. I repository reali cambiano continuamente e una ricostruzione completa a ogni aggiornamento sarebbe inefficiente e costosa. Per questo motivo, il framework non rianalizza l’intero progetto a ogni modifica, ma lavora in modo incrementale. Analizza le variazioni commit per commit, rimuove il codice eliminato, riposiziona quello modificato solo se il suo significato cambia in modo sostanziale e inserisce il nuovo codice nell’area funzionale più appropriata. Questo approccio ha permesso di ridurre i costi di manutenzione del grafo di oltre il 95%, mantenendo al tempo stesso una rappresentazione accurata e aggiornata del repository.

Anche gli strumenti messi a disposizione degli agenti sono stati ripensati per sfruttare al meglio questa nuova struttura. Funzionalità come SearchNode, FetchNode ed ExploreRPG consentono all’agente di individuare rapidamente le parti di codice rilevanti, analizzarne le implementazioni in dettaglio e seguire i flussi di dipendenza in modo mirato. Nei test sperimentali, questo si è tradotto in un comportamento molto simile a quello di uno sviluppatore esperto: prima una visione d’insieme rapida dell’intera base di codice, poi un’esplorazione mirata solo delle sezioni realmente necessarie, secondo una logica di “ricerca e zoom”.

I risultati ottenuti nei benchmark confermano l’impatto di questo approccio. Nel test SWE-Bench Verified, che misura la capacità di risolvere problemi software reali, RPG-Encoder ha raggiunto una precisione top-5 del 93,7%, superando il precedente record di oltre 14 punti percentuali. Anche nel più complesso SWE-Bench Live Lite, il distacco rispetto al secondo classificato è stato superiore al 10%, a dimostrazione di un miglioramento non solo quantitativo, ma qualitativo nella comprensione e nella risoluzione dei problemi.

Ancora più indicativi sono i risultati ottenuti nel benchmark RepoCraft, pensato per valutare la profondità della comprensione di un repository. Un agente che utilizza RPG-Encoder, basato su GPT-5-mini, è riuscito a ripristinare il 98,5% delle funzionalità del repository originale. Il confronto con l’approccio basato esclusivamente sulla documentazione, che si ferma al 74,2%, mette in evidenza come l’RPG contenga informazioni ad altissima risoluzione, avvicinandosi al concetto di un vero e proprio “gemello digitale” della base di codice.

Il rilascio di RPG-Encoder viene osservato con grande attenzione dall’intero settore, perché suggerisce un possibile cambio di paradigma. Se finora gli agenti di codifica sono stati percepiti soprattutto come strumenti di supporto, utili per suggerimenti o piccoli interventi locali, questo framework apre la strada a un ruolo molto più ambizioso. L’obiettivo implicito è quello di trasformare l’agente in un vero collega digitale, capace non solo di leggere il codice, ma di comprenderne l’intento progettuale, di orientarsi in sistemi complessi e di collaborare in modo sempre più autonomo allo sviluppo software.

Di Fantasy