Chiosa
IT
Software & Code

Gli agenti di coding spesso perdono correttezza tra le fasi

FeatureArc: Benchmarking Coding Agents on Evolving Features · arXiv:2610.37434

4 min
Aggiornato

In parole semplici

FeatureArc è un insieme di task e una procedura per verificare se gli agenti di coding riescono a mantenere funzionante una funzionalità software mentre aggiungono requisiti al proprio codice precedente. Ricava le diverse fasi dalla cronologia dei repository e controlla sia il nuovo comportamento sia quello che dovrebbe continuare a funzionare.

Gli agenti non ricevono indicazioni sulle fasi fallite. Considerando insieme dieci agenti configurati, il 62,7% dei task ha superato il controllo della prima fase, mentre il 28,5% ha superato il controllo finale della funzionalità completa.

Questo risultato aggregato mostra che superare la richiesta iniziale spesso non significava che l'intera funzionalità in evoluzione funzionasse.

La ricerca

Un singolo task di coding mostra se un agente sa soddisfare una richiesta, ma non se le modifiche successive preservano il comportamento precedente.

Quando gli agenti costruiscono sul proprio codice senza sapere che una fase è fallita, il successo iniziale si mantiene fino alla funzionalità completa?

FeatureArc trasforma la cronologia dei repository in task sequenziali con controlli nascosti e misura se gli agenti mantengono funzionante l'intera funzionalità.

FeatureArc ricava requisiti sequenziali dalla cronologia dei repository e verifica, in ogni fase, il nuovo comportamento richiesto e la conservazione di quello esistente. Alla fine, un controllo distinto verifica la funzionalità completa sul codice finale dell'agente.

Dieci agenti configurati hanno lavorato nella stessa sessione senza ricevere indicazioni sui fallimenti e senza annullare le modifiche.

Considerando insieme i task di tutti gli agenti, il 62,7% ha superato il controllo della prima fase, contro il 28,5% che ha superato il controllo finale dell'intera funzionalità. Il divario mostra che il successo iniziale spesso non si è mantenuto fino alla fine.

In un confronto separato all'interno dei task e delle fasi, il tasso di successo nella fase successiva era più basso dopo una fase fallita; le classificazioni delle sequenze di lavoro hanno inoltre collegato molte fasi successive fallite a difetti ereditati.

Il confronto dopo una fase fallita è condizionale e non dimostra che il solo errore precedente abbia causato gli esiti successivi.

I 73 task erano un sottoinsieme esaminato manualmente, ricavato da 53 repository; gli autori affermano che FeatureArc potrebbe non coprire tutta la varietà dei flussi di sviluppo di funzionalità nel mondo reale.

Cosa mostrano le prove

  • Il rischio di estendere il codice

    Un agente di coding può gestire correttamente una richiesta e lasciare comunque un difetto nel proprio codice. Se i requisiti successivi si basano su quel codice e l'agente non viene informato che una fase è fallita, il difetto può compromettere il resto della funzionalità.

    FeatureArc è un benchmark e una procedura per costruire task, progettati per verificare se gli agenti riescono a mantenere funzionante una funzionalità mentre la estendono con requisiti successivi.

  • I task seguono la storia delle funzionalità

    FeatureArc ricostruisce dalla cronologia dei repository le modifiche successive a una stessa funzionalità e le trasforma in task sequenziali. Ogni fase specifica il comportamento atteso e un'interfaccia.

    I test verificano il nuovo comportamento e quello che dovrebbe restare intatto; un controllo finale distinto verifica la funzionalità completa. Nella valutazione, gli agenti hanno lavorato nella stessa sessione e nello stesso ambiente, senza ricevere indicazioni sulle fasi fallite e senza annullare le modifiche.

  • Il successo iniziale spesso non si mantiene

    Il controllo della prima fase misura la richiesta iniziale, mentre il chain gate verifica la funzionalità completa sul codice finale dell'agente. Considerando insieme dieci agenti configurati, il 62,7% dei task ha superato il primo controllo e il 28,5% il chain gate.

    Poiché sono tassi aggregati sugli stessi task, mostrano una differenza tra il successo iniziale e quello sull'intera funzionalità, senza implicare che ogni agente o task abbia seguito la media.

  • I difetti precedenti incidono sul lavoro successivo

    Un confronto all'interno dei task e delle fasi ha rilevato un tasso medio di superamento della fase successiva più basso dopo una fase fallita che dopo una fase superata: 29,0% contro 72,6% in 109 gruppi che comprendevano entrambi gli esiti.

    Separatamente, le classificazioni delle sequenze di lavoro hanno identificato difetti ereditati nel 72,9% delle fasi successive fallite. Questi risultati collegano gli errori precedenti ai problemi successivi, ma il confronto non dimostra che la sola fase precedente fallita li abbia causati.

  • Gli autotest possono non rilevare gli errori

    Lo studio ha esaminato anche se gli agenti riconoscessero gli errori precedenti e se i loro controlli segnalassero che il codice funzionava. Le classificazioni delle sequenze di lavoro indicavano che nel 94,9% delle fasi successive a un fallimento gli agenti non si erano mai accorti dell'errore precedente.

    Tra le 713 fasi successive concluse con un autotest superato, solo il 24,5% ha superato il test nascosto del nuovo comportamento. In questa valutazione, i risultati indicano limiti nel rilevamento degli errori e nei controlli autonomi.

Dettagli

Paper successivoBenchMeUp trasforma specifiche di ricerca in benchmark eseguibili