RSI, il software che si scrive da solo ricorsivamente.. cosa mai potrà andare storto?

Ogni lunedì il canale Pi ospita Mario Zechner e Armin Ronacher per una chiacchierata informale sugli AI coding agent. Questa volta il tema è quello di cui tutti parlano da due settimane: il software auto-modificabile, e in particolare gli harness che si modificano da soli.

Cos'è un harness auto-modificabile

Zechner ci mette poco: "È un while loop che può scrivere altri while loop sopra di sé."

La versione più estrema dell'idea parte da un solo prompt iniziale, senza harness preesistente, e lascia che sia il modello a costruire prima l'harness e poi il software dentro l'harness.

Perché se ne parla adesso

Le cause sono due. Anthropic ha presentato l'aggiunta dei plugin a Claude Code quasi come un'invenzione. "I sistemi di plugin esistono da anni," replica Zechner, "e Pi lo faceva prima che fosse di moda." Poi c'è un post di OpenAI che si chiude dicendo di credere in un futuro in cui il software è malleabile e si adatta all'utente.

Per Zechner e Ronacher è una convalida: su questo tema ci lavorano da fine dello scorso anno. Ma l'entusiasmo condiviso non li rende ottimisti sul da farsi.

Il software che si modifica ha bisogno di limiti

Ronacher è chiaro: "Ance con i modelli più avanzati, avere software che si ristruttura completamente senza alcun limite non mi sembra del tutto corretto."

Qui la discussione si fa concreta. Per far funzionare un harness auto-modificabile servono primitive, pezzi stabili che governino il comportamento dell'agente. Ronacher prende un esempio banale: dici all'agente di costruire un plugin di quattro file, e l'harness non ha alcun segnale per sapere quando l'agente ha finito di scriverlo. Deve ricaricare i plugin a ripetizione, quindi spreco? O deve esistere un modo per far sapere all'harness che il lavoro è finito, che però va progettato prima? "Suona banale, ma è come il problema dell'arresto," dice Ronacher.

Il rischio è che un plugin faccia crashare l'harness: a quel punto l'agente smette di rispondere e chi lavora col tool resta senza nulla. Le primitive devono tenere l'agente entro confini sensati e gestire i suoi errori senza rompere l'applicazione.

Dove regge e dove no

Zechner propone di distinguere i livelli. A livello personale il discorso funziona: sei in garage, chiedi all'agente un tool su misura, lo usi, lo fai evolvere. Non è produzione, e va bene così.

Il problema nasce quando lo condividi. A quel punto esistono due source tree, e fondere le modifiche fatte da più persone e più agenti non funziona. Per sviluppatori ci si ancora può cavare. Se l'obiettivo è portare questo tipo di software all'economia reale, a chi non scrive codice, serve più stabilità di quanta l'approccio attuale offra.

Da qui, secondo Zechner, la necessità di agganciare il tutto malleabile a servizi e blocchi ben definiti: punti fissi a cui l'agente si collega mentre tutto il resto si muove.

Uno standard per i plugin non arriverà presto

Sul lungo periodo Ronacher è scettico. "È facile fare roba buttata via," dice, "è difficile mantenere qualcosa in vita." A ogni progetto regala soltanto il tempo che i maintainer sono disposti a metterci dentro, Pi compreso.

Qualcosa si sta però cristallizzando, e MCP è l'esempio: non se ne andrà più, ha utilità semplicemente per il fatto di esistere. Vale meno per i plugin. MCP si riduce a una lista di metodi RPC e un JSON. Un sistema di plugin deve coprire più superfici, la rete, la persistenza, e quando entrano in gioco le interfacce, web, native e tutto il resto. "Un altro tipo di verme del tutto."

Sul previsto standard unico che risolva tutto: "Sarà un'era di guerra. Un sacco di dolore."

Meno computer

La chiusura della puntata va altrove. Tutti immaginano la stessa cosa: non dover più pensare a dove girano le risorse di calcolo, parlare con un agente e basta. Zechner cita David Kramer, che ha detto che usare VM persistenti è da incapaci.

Ronacher aggiunge un suo: "In realtà voglio meno computer nella vita." Ha tre laptop sulla scrivania, dice, e se qualcosa non gli ricordasse che esisterebbero, probabilmente non li userebbe più.

Compilare il compilatore

Zechner resta convinto che l'harness creato dall'essere umano abbia un ruolo anche in futuro. Non sempre sarà così, ma harness più durabilità più rete più plugin, se disegnati per bene, diventano una base su cui poggiarsi. Ronacher lo paragona a un compilatore bootstrapper: costruisci il minimo di primitive necessario, e quando puoi compilare il compilatore, comincia il divertimento.

"Lo abbiamo fatto per primi"

Prima di chiudere arriva il monito. Il territorio è lo stesso che Pi sta già attraversando, e i grandi player, dice Zechner, stanno già commettendo gli stessi errori. "È meno roseo di quanto pensiate." Chi prova questi strumenti è invitato a mandare feedback sui problemi che trova.

Anche il code mode, tanto decantato, ha un limite di fondo: non è durabile, non permette di mettere nel loop strumenti scritti dall'agente stesso. Ed è esattamente la direzione in cui molti stanno cercando di andare.

"Tempi interessanti," chiudono. "Ricordate, ragazzi: lo abbiamo fatto per primi."