11

Meccanismi rigorosi di accettazione ed ereditarietà storica

AI999第6课:系统级持续演化:Genesis 与软件世界的沉淀
00:00

Una volta che la potenza di calcolo apre la strada alla generazione di candidati, sorge una nuova difficoltà:con quale diritto una modifica generata automaticamente da un Agent può essere scritta nel ramo principale del progetto?I rigorosi meccanismi di accettazione ed ereditarietà storica scindono completamente lagenerazionedall'adozione— qualsiasi codice inviato da un Agent è soltanto unamodifica candidata (candidate patch)e deve prima superare una serie di cancelli di verifica per poter essere riconosciuta come parte della storia del progetto.

Modifiche candidate → quattro cancelli di accettazione → ramo principale / rifiutoGenerazione e adozione disaccoppiate: le modifiche non convalidate non possono essere scritte nel ramo principaleCoda delle modifiche candidateInvio degli Agent · non attendibili per impostazione predefinitaCandidato AIn attesa di verificaCandidato BIn attesa di verificaCandidato CIn attesa di verificaCandidato DIn attesa di verificaPrincipio della candidatura predefinitaIsolamento rigoroso dal ramo principaleEliminare il «generato e subito archiviato»Quattro cancelli di accettazione · costi crescenti · fallimento precoce1Cancello di compilazioneSintassi e interfacce compilabili · costo minimo, eliminazione più rapidaCosto2Cancello dei testTest unitari / di integrazione superati · copertura dei contratti esistentiCosto3Cancello di verifica comportamentaleCoerenza semantica · tolleranze, equivalenza e confronti di regressioneCosto4Accettazione di alto livelloPrestazioni · speedup · manutenibilitàCostoTutti e quattro i livelli superati → scrittura nel ramo principale✕Rifiuto · Archivio dei fallimentiIl mancato superamento di qualsiasi livello comporta il trasferimento in questa area· Conservato come campione negativo e materiale diagnostico· Archiviato in isolamento, senza contaminare il ramo principale· Il rifiuto stesso è un filtro del rumore· Evita di esplorare ripetutamente lo stesso vicolo cieco✓Cronologia delle versioni del ramo principaleCatena evolutiva a accumulo monotonoBaseline v3 · punto di partenza per gli Agent successiviBaseline v2 · consolidataBaseline v1 · consolidataEreditarietà storica: la baseline adottata diventa il punto di partenza per gli Agent successivi

Principio della candidatura predefinita

L'output di un Agent è considerato per impostazione predefinita uninput non attendibile: è rigorosamente isolato dalle versioni adottate in termini di permessi, archiviazione e riferimenti; non può né leggere né scrivere direttamente nel ramo principale, né essere considerato dagli altri moduli come una dipendenza stabile. L'unico scopo di questo principio è eliminare il «generato e subito archiviato». Solo dopo aver superato tutti i cancelli la modifica candidata ottiene lo stesso status del ramo principale.

Filtro progressivo a quattro livelli: costi crescenti, fallimento precoce

  • Compilazione: compilabilità a livello di sintassi e interfacce. Costo minimo, eliminazione più rapida: blocca subito le modifiche palesemente non valide.
  • Test: superamento dei test unitari e di integrazione, con copertura dei contratti esistenti.
  • Verifica comportamentale: coerenza semantica e comportamentale, comprendente tolleranze numeriche, equivalenza e confronti di regressione, per prevenire specificamente il «test superati ma comportamento divergente».
  • Accettazione di alto livello: giudizio finale orientato agli obiettivi del compito e ai vincoli ingegneristici, che comprende valutazioni su prestazioni, speedup, manutenibilità e altro.

I cancelli sono ordinati per costo crescente, così la stragrande maggioranza delle modifiche non valide viene bloccata nelle fasi economiche, lasciando la costosa revisione di alto livello a pochi candidati di alta qualità: è esattamente l'economia del «fallimento precoce».

Il valore del rifiuto e l'ereditarietà storica

I tentativi non superati non entrano nel ramo principale, ma possono essere conservati comearchivio dei fallimenti / campioni negativi, per la diagnosi, la deduplicazione e la prevenzione di esplorazioni ripetute: il rifiuto stesso è un filtro del rumore. Le modifiche che superano l'accettazione diventano la nuovaversione baseline, e gli esecutori successivi continuano a evolvere su questa base, formando una catena evolutiva a accumulo monotono invece di ripartire da zero a ogni ciclo. Come regola di unione e contratto di qualità per la collaborazione multi-Agent e la scomposizione ricorsiva dei compiti, il gateway di accettazione definisce «chi può scrivere nella storia», determinando così se il risultato della collaborazione converge o aumenta l'entropia. In scenari con forti vincoli di correttezza, come il refactoring di compilatori e l'aggiornamento di software scientifico, questo meccanismo mostra una affidabilità elevatissima e comporta notevoli speedup in esecuzione.

Limiti di validità
La completezza stessa dei criteri di accettazione diventa il nuovo collo di bottiglia: quando la copertura dei test è insufficiente o manca la verifica comportamentale, i cancelli lasciano passare modifiche «accettate ma effettivamente dannose». Occorre quindi fare affidamento su metriche osservabili e controlli manuali a campione, rafforzando continuamente i casi di regressione e la definizione delle tolleranze.