dai a Claude un compito abbastanza grande e si fermerà a metà, convinto di aver finito. il lavoro non è completo. semplicemente non ricorda di averlo iniziato.
un agente non lavora a un compito lungo come penseresti. lavora a turni.
immagina un progetto software gestito da ingegneri che lavorano a turni, dove ogni nuovo arrivato si presenta senza memoria di ciò che è successo nel turno precedente. non è una metafora di come si sentono gli agenti. è meccanicamente quello che sono. la finestra di contesto è finita, la maggior parte del lavoro reale non ci sta dentro, quindi l'agente lavora in sessioni discrete - e ogni nuova sessione inizia senza memoria di quella precedente.
anthropic ha eseguito esattamente questo esperimento e ha pubblicato cosa si è rotto. è questa la parte che vale la pena leggere, perché non è un blogger che dice che lo strumento è debole. è il team che costruisce Claude che documenta dove Claude crolla.
Perché Una Finestra Non Può Finire il Lavoro
dai a un modello di codifica all'avanguardia un prompt di alto livello - "crea un clone di claude.ai" - mettilo in un loop attraverso molte finestre di contesto, e non riesce a produrre un'app funzionante. non a volte, ma in modo affidabile. e questo è Opus in esecuzione sul framework agente di anthropic stesso, con la compressione del contesto attivata, l'intera configurazione costruita per mantenerlo in funzione.
fallisce in due modi specifici, ed entrambi sono problemi di passaggio di consegne.
il primo: l'agente cerca di fare tutto in una volta. tenta di risolvere l'intera app in un'unica finestra, esaurisce il contesto a metà di una funzionalità, e la sessione finisce con qualcosa di mezzo costruito e non documentato. il turno successivo timbra il cartellino, vede un pasticcio che non ha fatto, e deve indovinare cosa stava succedendo. quindi passa l'intera sessione solo a far funzionare di nuovo l'app di base, invece di andare avanti.

il secondo si presenta più tardi, una volta che esistono alcune funzionalità. un agente fresco si guarda intorno, vede che sono stati fatti veri progressi, e decide che il tutto è finito. ma non lo è - metà delle funzionalità non sono mai state costruite, e nessuno ha scritto quali. il turno l'ha dichiarato concluso senza controllare la lista.
entrambi i fallimenti hanno la stessa radice. il turno uscente non ha lasciato nulla, quindi il turno in arrivo opera alla cieca. la soluzione non è un modello più intelligente. è ciò che il turno scrive prima di timbrare l'uscita.
Cosa Scrive il Turno Uscente
la risposta a cui è arrivato anthropic ha due parti: un agente che imposta il sito prima che inizi qualsiasi lavoro, e poi i lavoratori turnisti che si presentano sessione dopo sessione per fare progressi.
l'agente di configurazione viene eseguito una volta, all'inizio. il suo unico compito è lasciare l'ambiente in uno stato in cui ogni futuro turno sappia che aspetto ha "fatto". il pezzo chiave che scrive è un elenco di funzionalità - un file strutturato che elenca ogni singola cosa che l'app finita deve fare.

per il clone di claude.ai, ciò significava oltre 200 funzionalità. cose come "un utente può aprire una nuova chat, digitare una query, premere invio e vedere una risposta." ognuna di esse contrassegnata come fallita all'inizio. ogni voce era più o meno così:
1{2 "description": "Il pulsante Nuova chat crea una conversazione fresca",3 "steps": ["clicca su Nuova chat", "verifica la conversazione fresca", "controlla lo stato di benvenuto"],4 "passes": false5}
quel "passes": false su ogni voce è il punto centrale. è una casella non spuntata, e ce ne sono 200.
quella lista fallimentare è la cosa che impedisce a un agente di dichiarare vittoria prematuramente. un turno non può guardarsi intorno e decidere che il lavoro è finito, perché c'è un file seduto lì con 200 caselle non spuntate. il lavoro è definito prima che venga scritta la prima riga.
un piccolo dettaglio che ti dice quanto doveva essere attento: hanno usato JSON per quel file, non markdown. il motivo è che è meno probabile che il modello riscriva o cancelli silenziosamente un file JSON rispetto a uno markdown. e le istruzioni intorno ad esso sono volutamente nette - è inaccettabile rimuovere o modificare i test, perché cancellare un test è il modo in cui una funzionalità scompare silenziosamente. al turno è permesso spuntare una casella. non gli è permesso cancellarne una.
Il Biglietto sulla Scrivania
impostare il lavoro è solo metà. l'altra metà è assicurarsi che ogni turno lasci il posto abbastanza pulito per il prossimo che arriva.
due cose fanno questo. l'agente committa il suo lavoro su git con un messaggio reale che descrive cosa è cambiato, e scrive un semplice file di avanzamento - un registro continuo di ciò che è stato fatto. quel registro insieme alla cronologia git è ciò che permette a un agente fresco, che parte da zero, di capire lo stato delle cose in pochi minuti invece di fare reverse engineering per un'ora.

git fa anche qualcos'altro qui. quando un turno fa una modifica sbagliata, il successivo può tornare all'ultima versione funzionante invece di cercare di districare il danno. il file di avanzamento dice dove siamo. la cronologia dei commit è il pulsante di annulla.
e "pulito" ha un significato specifico. significa il tipo di codice che saresti disposto a unire a un ramo principale - nessun bug grave, ordinato, documentato. non "tecnicamente ho fatto progressi." lo standard è: la prossima persona potrebbe iniziare una nuova funzionalità senza prima pulire il tuo pasticcio.
Come Timbra il Cartellino il Turno Successivo
metti queste due cose in atto e ogni turno inizia allo stesso modo. prima di toccare qualsiasi cosa di nuovo, l'agente esegue una routine di apertura fissa per orientarsi - la stessa cosa che fa un buon ingegnere quando entra in un progetto che non vede da un po'.
1esegui pwd per vedere in quale directory ti trovi - è l'unico posto dove puoi modificare2leggi il file di avanzamento e il log git per vedere cosa è successo di recente3leggi l'elenco delle funzionalità e scegli la cosa con priorità più alta che non è ancora fatta4avvia l'app ed esegui un controllo di base che le funzionalità principali funzionino ancora5solo allora, inizia a costruire
quel quarto passo è più importante di quanto sembri. prima di scrivere una singola nuova funzionalità, l'agente avvia l'app e conferma che le basi funzionano ancora - apre una chat, invia un messaggio, ottiene una risposta. se l'ultimo turno ha lasciato qualcosa di rotto, questo lo coglie immediatamente, prima che il nuovo turno accumuli lavoro fresco su fondamenta rotte e peggiori le cose.

questo è l'intero trucco, ed è quasi noioso quanto sia semplice. il turno uscente scrive cosa ha fatto e cosa resta. il turno in arrivo legge questo prima di fare qualsiasi cosa. il passaggio di consegne è l'intero gioco.
Anche i Tuoi Compiti Lunghi Hanno Turni
niente di tutto questo riguarda veramente la creazione di app web. anthropic l'ha testato sul codice perché il codice è facile da verificare, ma la forma sottostante è la forma di ogni compito lungo che affidi a un agente.
tutto ciò che non sta in una finestra ha turni. scrivere un lungo rapporto capitolo per capitolo. gestire un progetto di ricerca attraverso una dozzina di chat. lavorare a una grande analisi per giorni. ogni volta che inizi una nuova sessione sullo stesso compito, un nuovo lavoratore timbra il cartellino senza memoria del precedente - e se non hai lasciato un passaggio di consegne, inizia indovinando.

quindi lascialo. prima che una lunga sessione finisca, fai scrivere al modello cosa è stato fatto, cosa è ancora aperto, e cosa la prossima sessione dovrebbe riprendere per prima. tieni quel biglietto da qualche parte che legge all'ingresso. è la differenza tra un progetto che avanza ogni sessione e uno che continua a ricostruire la stessa cosa più e più volte.
lo stesso modello stasera e domani. l'unica cosa che cambia è se la sessione di domani arriva alla cieca, o arriva leggendo il biglietto della scorsa notte.
non è mai stato questione di quanto sia intelligente il turno. è questione di cosa lascia per quello che viene dopo.
più analisi come questa - https://t.me/+xYv1MgmIuds5YTli





