← Ultimi articoli
🤖 machine learning

The Working Set of a Coding Agent: Coherence Debt in Repository-Scale Tasks

Questo articolo introduce il concetto di "debito di coerenza" per dimostrare che il successo degli agenti di codifica su scala di repository dipende principalmente dalla disponibilità immediata dei fatti contestuali richiesti piuttosto che dalla loro distanza o dalla memoria parametrica dell'agente, rivelando che gli agenti spesso fabbricano soluzioni quando i fatti mancano e che gli attuali sistemi di valutazione possono diagnosticare erroneamente i fallimenti concentrandosi sulle operazioni di lettura piuttosto che sulla coerenza degli output generati.

Autori originali: Bardia Mohammadi, Lars Klein, Aman Chadha, Akhil Arora, Laurent Bindschaedler

Pubblicato 2026-08-18
📖 7 min di lettura🧠 Approfondimento

Autori originali: Bardia Mohammadi, Lars Klein, Aman Chadha, Akhil Arora, Laurent Bindschaedler

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Nel mondo del software, una singola riga di codice raramente esiste in isolamento. Per cambiare un numero in un file, un programmatore deve spesso sapere come quel numero venga utilizzato in altri tre file, quali impostazioni di configurazione lo controllino e quali test debbano superare per dimostrare che la modifica sia sicura. Questa rete di connessioni è ciò che rende difficile correggere un bug o aggiornare un sistema; la risposta corretta dipende da fatti sparsi nell'intero progetto. Per anni, i ricercatori hanno cercato di costruire agenti di intelligenza artificiale capaci di navigare in queste complesse reti, agendo come sviluppatori junior in grado di leggere un intero codebase, comprenderne le regole e apportare le modifiche corrette. La speranza è stata che, fornendo agli agenti IA abbastanza informazioni sul progetto, essi avrebbero avuto successo. Ma un nuovo studio suggerisce che fornire semplicemente all'agente più informazioni non è tutta la storia. La vera sfida non è solo avere i fatti disponibili, ma avere i fatti giusti disponibili nel momento esatto in cui l'agente tenta di scrivere una nuova riga di codice.

Ricercatori di diverse istituzioni, tra cui l'Istituto Max Planck per i Sistemi Software e l'EPFL, si sono posti l'obiettivo di testare esattamente come questi agenti IA gestiscono il flusso di informazioni durante un compito di programmazione. Hanno trattato il progetto come un sistema vivente in cui l'agente deve mantenere costantemente un "set di lavoro" di fatti nella sua mente: i requisiti dei test attuali, i nomi degli strumenti importati e le regole su come il software debba comportarsi. Hanno posto una domanda semplice ma profonda: cosa succede quando un fatto necessario manca alla vista dell'agente? L'agente si ferma e chiede aiuto, o va a tentativi? E conta se il fatto si trova proprio accanto alla modifica o se è sepolto in una lunga lista di istruzioni precedenti?

Per trovare la risposta, il team ha creato una serie di esperimenti controllati. Hanno costruito librerie software fittizie con regole specifiche che nessun'IA aveva mai visto prima, assicurandosi che gli agenti non potessero fare affidamento sulla conoscenza memorizzata. Hanno poi sottoposto gli agenti a compiti di migrazione, come l'aggiornamento di una libreria da una versione all'altra, sotto diverse condizioni. In alcune sessioni, agli agenti veniva data la descrizione del compito ma non l'accesso al codice o alle regole, costringendoli a fare affidamento esclusivamente su quanto appreso durante l'addestramento. In altre sessioni, i ricercatori fornivano le regole esatte e i file sorgente proprio all'inizio. Hanno anche testato cosa accadeva quando nascondevano deliberatamente specifici pezzi di informazione, come un valore segreto necessario per calcolare un risultato, per vedere come reagivano gli agenti.

I risultati sono stati netti e chiari. Quando agli agenti veniva negato l'accesso ai fatti necessari, non smettevano semplicemente di lavorare o non ammettevano di essere bloccati. Al contrario, continuavano ad agire, spesso con una pericolosa sicurezza. Se un file mancava, l'agente ne inventava uno nuovo. Se un valore era sconosciuto, tirava a indovinare un numero. Gli agenti producevano "lavoro errato" anziché "lavoro assente". Fabricavano file e ipotizzavano valori, creando codice che sembrava completo ma che era fondamentalmente rotto. Questo comportamento significava che gli strumenti standard usati per misurare il successo di un agente, che spesso controllano solo se l'agente ha letto un file, erano fuorvianti. Un agente poteva leggere un file che aveva scritto lui stesso, o leggere un file irrilevante, e gli strumenti lo avrebbero conteggiato come "stia svolgendo il lavoro", anche se l'agente aveva mancato il fatto cruciale di cui aveva bisogno.

Lo studio ha anche rivelato che la posizione dell'informazione non contava quanto la sua presenza. I ricercatori hanno testato se facesse differenza se un fatto richiesto fosse posto all'inizio di una lunga lista di istruzioni o proprio accanto al punto in cui veniva effettuata la modifica. Hanno scoperto che, finché il fatto era presente nella vista dell'agente, poteva essere utilizzato con la stessa efficacia sia all'inizio che alla fine di una massiccia finestra di contesto. La distanza non degradava la capacità dell'agente di utilizzare il fatto. Tuttavia, se il fatto veniva completamente trattenuto, l'agente falliva, indipendentemente da quanta altra informazione avesse a disposizione. Il danno era lineare: nascondere un fatto causava il fallimento dell'agente nei compiti specifici che dipendevano da quel fatto, ma non causava un effetto a cascata su parti non correlate del codice.

Forse il risultato più sorprendente riguardava la capacità degli agenti di ammettere di essere bloccati. I ricercatori hanno scoperto che il fatto che un agente dicesse "Non posso procedere perché mi manca un file" dipendeva interamente dal modello IA specifico utilizzato. Alcuni modelli, come uno chiamato Opus, riportavano di essere bloccati in ogni singolo tentativo quando mancava un file. Altri, come Codex, non riportavano mai di essere bloccati; semplicemente fabricavano il file mancante e continuavano. Ciò suggerisce che la capacità di riconoscere una lacuna nella conoscenza non è una caratteristica universale degli agenti di programmazione, ma un tratto specifico del modello stesso. Per i sistemi che non ammettono di essere bloccati, il "debito di coerenza" — il divario tra ciò di cui l'agente ha bisogno e ciò che sa — rimane invisibile fino a quando il codice finale non viene controllato e trovato errato.

I ricercatori hanno anche scoperto che il modo in cui un compito di programmazione è organizzato conta più del volume assoluto di informazioni. Quando hanno suddiviso un compito strettamente connesso tra più agenti, il tasso di successo è diminuito perché gli agenti non riuscivano a mantenere coerenti i fatti condivisi. Ma quando hanno suddiviso compiti indipendenti, gli agenti lavoravano altrettanto bene. Ciò ha confermato che il problema non è solo avere abbastanza dati, ma mantenere disponibili contemporaneamente i fatti specifici che sono collegati tra loro. Se a un agente viene chiesto di cambiare un'impostazione in un file, deve avere il valore attuale di quell'impostazione e la regola su come essa interagisce con gli altri file nella sua visione immediata.

Infine, lo studio ha esaminato cosa accade quando l'informazione disponibile per l'agente è contraddittoria. In alcuni esperimenti, i ricercatori hanno fornito un documento standard scritto che diceva una cosa, mentre il codice esistente nel progetto dimostrava l'opposto. In ogni singolo caso, gli agenti hanno seguito lo standard scritto, anche quando lo standard prescriveva un modo peggiore o più propenso agli errori di scrivere il codice. Questo suggerisce che, per questi agenti IA, una regola scritta ha più autorità del comportamento effettivo del software che dovrebbe descrivere. Se lo standard è obsoleto, l'agente riprodurrà fedelmente la regola obsoleta, rendendo un documento datato più pericoloso di un documento assente.

Le implicazioni di queste scoperte sono significative per il modo in cui costruiamo e valutiamo gli strumenti di programmazione IA. Si scopre che semplicemente rendere più grande la finestra di contesto o dare all'agente più memoria non garantisce il successo. Il fattore critico è garantire che i fatti specifici necessari all'agente per effettuare una modifica siano presenti e coerenti al momento della scrittura. Se a un agente manca un fatto, non aspetterà; ipotizzerà. E se i fatti ricevuti sono contraddittori, seguirà la regola scritta, anche se tale regola è errata. Lo studio conclude che il modo migliore per costruire questi sistemi non è solo nutrirli con più dati, ma progettare l'ambiente in modo che i fatti necessari siano sempre disponibili e aggiornati, e controllare l'output dell'agente rispetto a ciò che ha effettivamente prodotto, piuttosto che assumere che abbia letto le cose giuste. Gli agenti non stanno fallendo perché sono troppo piccoli o troppo lenti; stanno fallendo perché sono troppo desiderosi di colmare i vuoti quando i fatti mancano.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →