Microsoft ha sviluppato un innovativo agente di intelligenza artificiale chiamato Code Researcher, ispirato al suo precedente agente Deep Research, noto per le sue capacità di ragionamento. Questo nuovo strumento è stato progettato specificamente per affrontare un problema cruciale e complesso: il debug del codice nei sistemi software di grande scala. A differenza dei tradizionali generatori di codice, Code Researcher si concentra sulla risoluzione automatica dei crash dei programmi, analizzando in profondità il codice per identificare e correggere errori che spesso derivano da interazioni complesse tra migliaia di file scritti e ottimizzati da numerosi sviluppatori nel corso degli anni.
Il 14 giugno, i ricercatori di Microsoft Research hanno pubblicato un articolo dettagliato su Code Researcher, descrivendo il funzionamento di questo agente che rappresenta una vera e propria innovazione nel campo del debug automatico. In particolare, Code Researcher si occupa del codice di sistema a basso livello, come quello dei sistemi operativi o degli stack di rete, dove spesso i report di crash non forniscono indicazioni chiare e leggibili sull’origine dei problemi.
Il sistema opera in modo completamente autonomo, senza bisogno di conoscenze pregresse o di intervento umano diretto. La sua efficacia è stata testata su casi reali e complessi, come i crash del kernel Linux (utilizzando il benchmark kBenchSyz) e nel progetto open source FFmpeg, dimostrando una notevole capacità di generalizzazione anche in contesti diversi dal kernel.
Code Researcher segue un processo articolato in tre fasi fondamentali: analisi, sintesi e convalida. Nella fase di analisi, il sistema esplora iterativamente i report di crash utilizzando strumenti avanzati come la ricerca di definizioni di simboli, l’analisi di pattern tramite espressioni regolari e l’esame della cronologia dei commit, al fine di individuare con precisione la causa del malfunzionamento. Successivamente, nella fase di sintesi, il sistema filtra le informazioni irrilevanti e individua i frammenti di codice potenzialmente difettosi, anche quando distribuiti su più file, per poi generare le patch correttive necessarie. Infine, nella fase di verifica, le patch prodotte vengono testate automaticamente e solo quelle che superano i controlli di qualità vengono presentate come soluzioni finali.
I risultati dei test effettuati hanno mostrato come Code Researcher superi nettamente le performance degli strumenti precedenti. Su 279 casi di crash del kernel Linux generati da un fuzzer chiamato Syzkaller, Code Researcher ha risolto il 58% dei problemi, lavorando in sinergia con il modello GPT-4o. Questo dato è notevolmente superiore al 37,5% ottenuto dall’attuale agente SWE-Agent. Inoltre, Code Researcher ha analizzato in media 10 file per ogni percorso di ricerca, contro gli appena 1,33 file esaminati da SWE-Agent, mostrando una capacità di analisi più approfondita e precisa.
È interessante notare che anche utilizzando un modello di inferenza più semplice nella sola fase di generazione, il tasso di risoluzione del 58% è stato mantenuto, a dimostrazione che la comprensione del contesto e le sofisticate capacità di inferenza sono cruciali per l’efficacia del debug.
Nel progetto FFmpeg, Code Researcher ha dimostrato la sua versatilità generando patch che hanno corretto con successo 7 crash su 10, confermando l’applicabilità dell’agente anche in ambiti diversi dal kernel.
Microsoft ha commentato con ottimismo i risultati di questo esperimento, affermando che in futuro gli agenti di codice potrebbero evolvere da semplici strumenti di correzione dei bug a veri e propri agenti di ricerca autonomi, in grado di affrontare problemi complessi in modo indipendente.