>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
TypeScript

Come Far Ottimizzare Illimitatamente il Codice a un Agente AI Terminale

result

Pensate a come di solito velocizzate i test o riducete il bundle frontend. Cambiate un paio di righe nella configurazione, eseguite il build, controllate i secondi nella console. Più lento — ripristinate. 5% più veloce — fate commit e provate l'idea successiva. Questo processo consuma ore di lavoro di routine, anche se è essenzialmente un ciclo meccanico di test di ipotesi.

Andrei Karpathy ha recentemente dimostrato il concetto di esperimenti autonomi nel repository autoresearch. Lo sviluppatore davebcn87 ha portato questa idea oltre e ha rilasciato pi-autoresearch — un'estensione per l'agente AI terminale pi. L'estensione delega l'ottimizzazione di routine alla rete neurale: l'agente formula un'idea, apporta modifiche ai file, misura il risultato, salva i risultati positivi e ripristina le regressioni.

pi-autoresearch

Come funziona il ciclo autonomo

L'intera idea si basa su una regola semplice: prova un'idea, misurala, salvala in caso di successo, scartala in caso di fallimento.

L'agente lavora direttamente nel vostro repository. Quando avviate una sessione, l'estensione crea una cartella separata .auto/ alla radice del progetto. Qui memorizza tutti i file di lavoro:

  • .auto/prompt.md — un documento che descrive il task corrente, le regole di misurazione e un elenco di ciò che l'agente ha già provato.
  • .auto/measure.sh — uno script bash di benchmark che restituisce una stringa con un valore metrico numerico.
  • .auto/log.jsonl — un log strutturato di ogni tentativo con l'hash del commit e lo stato.
  • .auto/checks.sh — uno script aggiuntivo per verificare test e tipi, così l'agente non rompe la logica per ottenere bei numeri.

Quando la context window del modello si riempie o l'agente si riavvia, legge semplicemente .auto/prompt.md e la coda del log. L'intera cronologia degli esperimenti non viene persa quando il contesto viene compresso.

pi install npm:pi-autoresearch

Dopo l'installazione, eseguite semplicemente lo skill:

/skill:autoresearch-create

L'agente farà alcune domande di chiarimento sull'obiettivo, i file target e il comando di esecuzione, oppure li capirà dal contesto del progetto. Poi acquisirà le metriche di base e si immergerà immediatamente in un ciclo infinito.

Combattere il rumore casuale nelle misurazioni

Ogni benchmark è soggetto a fluttuazioni. Processi OS in background, riscaldamento della CPU o ritardi di rete possono creare l'illusione di un miglioramento dove non c'è.

Per filtrare i falsi successi, pi-autoresearch calcola un punteggio di confidenza basato sulla deviazione assoluta mediana (MAD). Dopo tre esecuzioni, l'estensione inizia a confrontare il miglioramento ottenuto con il livello di rumore dell'intera serie:

  • Valore ≥ 2.0x evidenziato in verde — il guadagno supera chiaramente il rumore di background.
  • Range 1.0–2.0x mostrato in giallo — c'è un guadagno, ma è al limite del margine di errore.
  • Valore < 1.0x lampeggia in rosso — il risultato rientra interamente nell'errore statistico.

Lo strumento non forza una decisione di rollback sull'agente; suggerisce semplicemente di ricontrollare un'esecuzione dubbia.

Prevenire rotture attraverso backpressure

Le reti neurali amano imbrogliare. Se chiedete all'agente di ridurre il tempo di esecuzione dei test, c'è una forte tentazione di eliminare semplicemente metà dei file di test o inserire stub.

Per prevenire questi trucchi, .auto/checks.sh contiene controlli di correttezza obbligatori:

#!/bin/bash
set -euo pipefail
pnpm test --run
pnpm typecheck

Lo script di verifica viene eseguito dopo ogni misurazione riuscita. Se i test falliscono o il type checking si rompe, l'esperimento viene immediatamente contrassegnato come fallito (checks_failed), e tutte le modifiche nel branch di lavoro vengono ripristinate. Il tempo di esecuzione dei controlli stessi non viene aggiunto alla metrica principale di velocità.

Ordinare il caos in branch puliti

Durante un ciclo di più ore, l'agente crea decine di commit, modificando costantemente file diversi. Unire un tale log direttamente nel branch principale sarebbe un incubo per il revisore.

Per risolvere questo problema, c'è un comando:

/skill:autoresearch-finalize

Lo skill analizza .auto/log.jsonl, raggruppa le modifiche riuscite in blocchi logici indipendenti e propone una struttura per la vostra approvazione. Dopo la conferma, lo strumento crea branch puliti separati dal commit iniziale. Ogni branch contiene rigorosamente un insieme logico di modifiche con la descrizione del guadagno nel messaggio di commit, rendendoli facili da rivedere e unire separatamente.

Monitoraggio e hook

Potete monitorare i progressi direttamente nel terminale o attraverso il browser:

  • Il widget sopra l'editor mostra costantemente una tabella dei risultati.
  • La combinazione di tasti Ctrl+Shift+F apre una dashboard a schermo intero nel terminale con l'elenco dei tentativi.
  • Il comando /autoresearch export genera una pagina web interattiva con i grafici dell'andamento delle metriche.

Se il ciclo base non è sufficiente, potete inserire file eseguibili before.sh e after.sh nella directory .auto/hooks/. Vengono attivati ai confini delle iterazioni. Attraverso di essi, potete impostare l'invio di notifiche di sistema al desktop, la ricerca di idee nella documentazione esterna o la gestione di un diario di training. Lo script riceve il contesto tramite standard input in formato JSON, e il suo output stdout viene passato all'agente come hint di sistema.

Cose da tenere a mente

I cicli autonomi possono prosciugare rapidamente il vostro bilancio API se lasciati incustoditi durante la notte. Ha senso impostare un limite di iterazioni fin da subito nel file .auto/config.json:

{
  "maxIterations": 30
}

L'agente si fermerà non appena completerà trenta esperimenti.

Lo strumento funziona bene su task con risultati numerici chiaramente misurabili: ottimizzare la dimensione del build webpack, velocizzare l'esecuzione dei test unitari, ottimizzare gli iperparametri per l'addestramento di piccoli modelli, o regolare i punteggi Lighthouse. Se usate già l'agente console pi, il progetto vale sicuramente la pena di essere provato su un task di ottimizzazione reale.

Progetti correlati