/goal imposta una condizione di completamento e Claude continua a lavorare verso di essa senza che Lei debba richiedere ogni passaggio. Dopo ogni turno, un piccolo modello veloce verifica se la condizione è soddisfatta. Se il modello giudica che non sia ancora soddisfatta, Claude inizia un altro turno invece di restituire il controllo a Lei. L’obiettivo si cancella automaticamente una volta che la condizione è soddisfatta, se il modello giudica la condizione impossibile da soddisfare, o se un turno fallisce su un errore che Lei deve correggere.
Utilizzi un obiettivo per lavori sostanziali con uno stato finale verificabile:
- Migrazione di un modulo a una nuova API finché ogni sito di chiamata compila e i test passano
- Implementazione di un documento di progettazione finché tutti i criteri di accettazione sono soddisfatti
- Divisione di un file di grandi dimensioni in moduli focalizzati finché ciascuno è entro un budget di dimensioni
- Elaborazione di un backlog di problemi etichettati finché la coda non è vuota
Confrontare i modi per mantenere una sessione in esecuzione
Tre approcci mantengono la sessione corrente in esecuzione tra i prompt. Scegli in base a cosa dovrebbe avviare il turno successivo:/goal e uno Stop hook si attivano entrambi dopo ogni turno. /goal è un collegamento con ambito di sessione: digiti una condizione ed è attiva solo per la sessione corrente. Uno Stop hook risiede nel tuo file di impostazioni, si applica a ogni sessione nel suo ambito e può eseguire uno script per controlli deterministici o un prompt per quelli valutati dal modello.
Auto mode da solo approva le chiamate agli strumenti all’interno di un singolo turno ma non ne avvia uno nuovo. Claude si ferma quando giudica il lavoro completato. /goal aggiunge un valutatore separato che verifica la tua condizione dopo ogni turno, quindi il completamento è deciso da un modello nuovo piuttosto che da quello che sta facendo il lavoro. I due sono complementari: auto mode rimuove i prompt per strumento, e /goal rimuove i prompt per turno.
Usa /goal
Un obiettivo può essere attivo per sessione. Lo stesso comando lo imposta, lo verifica e lo cancella a seconda dell’argomento.
Imposta un obiettivo
Esegui/goal seguito dalla condizione che desideri soddisfatta. Se un obiettivo è già attivo, il nuovo lo sostituisce.
◎ /goal active mostra da quanto tempo l’obiettivo è in esecuzione.
Un obiettivo non cambia la modalità di autorizzazione. Per consentire ai turni di obiettivo di funzionare senza supervisione, esegui /goal in modalità automatica. In modalità manuale, Claude chiede comunque prima delle chiamate di strumenti che le Vostre impostazioni non consentono già, come il comando di test sopra.
Mentre l’obiettivo è attivo, la trascrizione mostra ogni verdetto che il valutatore restituisce, e potete premere Ctrl+O per vedere il motivo dietro di esso. La vista dello stato mostra anche il motivo più recente, così potete vedere verso cosa Claude sta lavorando successivamente.
Scrivi una condizione efficace
Il valutatore giudica la Sua condizione rispetto a ciò che Claude ha esposto nella conversazione. Non esegue comandi o legge file indipendentemente, quindi scrivi la condizione come qualcosa che l’output stesso di Claude può dimostrare. “Tutti i test intest/auth passano” funziona perché Claude esegue i test e il risultato finisce nella trascrizione affinché il valutatore lo legga.
Una condizione che regge attraverso molti turni di solito ha:
- Uno stato finale misurabile: un risultato di test, un codice di uscita della build, un conteggio di file, una coda vuota
- Un controllo dichiarato: come Claude dovrebbe provarlo, come “
npm testesce 0” o “git statusè pulito” - Vincoli che contano: qualsiasi cosa che non deve cambiare nel percorso, come “nessun altro file di test viene modificato”
or stop after 20 turns. Claude segnala i progressi rispetto a quella clausola ogni turno e il valutatore la giudica dalla conversazione.
Controlla lo stato
Esegui/goal senza argomenti per vedere lo stato corrente.
- La condizione
- Da quanto tempo è in esecuzione
- Quanti turni sono stati valutati
- La spesa di token corrente
- Il motivo più recente del valutatore
Cancella un obiettivo
Esegui/goal clear per rimuovere un obiettivo attivo prima che si risolva.
Goal cleared: seguito dalla condizione per confermare, o No goal set se nulla era attivo.
stop, off, reset, none e cancel sono accettati come alias per clear. L’esecuzione di /clear per avviare una nuova conversazione rimuove anche qualsiasi obiettivo attivo.
Riprendi con un obiettivo attivo
Quando riprendi una sessione, Claude Code ripristina un obiettivo che era ancora attivo quando la sessione è terminata. Claude Code lo ripristina su ogni percorso di ripresa:--continue, --resume con un ID di sessione, un nome, o un percorso di file di trascrizione, e il selettore di sessione. Prima della v2.1.239, Claude Code ripristinava l’obiettivo su ogni percorso tranne il selettore claude --resume.
Claude Code trasferisce la condizione ma ripristina il conteggio dei turni, il timer e la linea di base della spesa di token. Non ripristina un obiettivo che era già raggiunto o cancellato.
Esegui in modo non interattivo
/goal funziona in modalità non interattiva, nell’app desktop e tramite Remote Control. L’impostazione di un obiettivo con -p esegue il ciclo fino al completamento in una singola invocazione:
--output-format stream-json --verbose per emettere ogni messaggio mentre il ciclo viene eseguito.
Interrompete il processo con Ctrl+C per fermare un obiettivo non interattivo prima che si risolva.
Come funziona la valutazione
/goal è un wrapper attorno a uno Stop hook basato su prompt con ambito di sessione. Ogni volta che Claude finisce un turno, Claude Code invia la condizione e la conversazione finora al tuo piccolo modello veloce configurato, che per impostazione predefinita è Haiku sull’API Claude; su un provider di terze parti, controlla la tua pagina del provider per il valore predefinito della piattaforma. Il modello restituisce uno di tre verdetti, ciascuno con una breve motivazione:
- Non ancora soddisfatto: Claude continua a lavorare e prende la motivazione come guida per il turno successivo.
- Soddisfatto: Claude Code cancella l’obiettivo e registra una voce raggiunta nella trascrizione.
- Impossibile: il valutatore ha giudicato che la condizione non può mai essere soddisfatta. Claude Code cancella l’obiettivo e registra una voce non riuscita nella trascrizione insieme alla motivazione. Non è necessario cancellarla tu stesso.
Quando un turno fallisce
Quando un turno fallisce, Claude Code cancella l’obiettivo se l’errore è uno che devi correggere. Dopo qualsiasi altro errore l’obiettivo rimane impostato.Gli errori che devi correggere cancellano l’obiettivo
Se un turno fallisce con un errore che non si cancellerà finché non lo correggi, Claude Code cancella l’obiettivo e stampa un avviso che nomina la causa. L’avviso inizia conGoal cleared after an unrecoverable error e termina con Run /goal again to continue. Correggi la causa, quindi imposta di nuovo l’obiettivo con /goal <condition>. Quattro tipi di errore cancellano l’obiettivo:
- Un errore di autenticazione, quando Claude Code gestisce le proprie credenziali. Quando un host le gestisce per te, come l’app desktop, l’estensione VS Code o una sessione cloud, Claude Code lascia l’obiettivo attivo perché l’host ripristina l’accesso da solo.
- Un saldo di credito esaurito
- Un overflow di contesto che auto-compact non poteva cancellare
- Un modello che non è disponibile
Altri errori riprovano o mettono in pausa l’obiettivo
Dopo qualsiasi altro errore l’obiettivo rimane impostato. In una sessione interattiva su Claude Code v2.1.269 o successivo, Claude Code stampa anche una riga che nomina la causa e riprova da solo o ti aspetta:- Riprova: dopo un errore che tende a risolversi da solo, come un server sovraccarico o una connessione interrotta, un avviso che inizia con
Goal still activemostra l’attesa prima del prossimo tentativo. Dopo tre tentativi automatici, l’obiettivo viene messo in pausa. - Pausa: dopo un errore che un nuovo tentativo ripeterebbe solo, come un limite di velocità API, un limite di utilizzo di claude.ai o un hook che ha terminato il turno, un avviso che inizia con
Goal pausednomina la causa. Se la sessione è in attesa di continuare automaticamente quando un limite di utilizzo si ripristina, Claude riprende il lavoro verso l’obiettivo allora.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES su 0, che disattiva anche i check-in.
Il lavoro in background rinvia la valutazione
Se un subagent o un comando shell in background è ancora in esecuzione quando un turno termina, Claude Code salta la valutazione per quel turno. Valuta alla fine del turno successivo che termina senza lavoro in background in esecuzione. Quando il lavoro in background termina, Claude Code consegna il risultato a Claude come un nuovo turno, quindi non devi fare un prompt. Una volta che il lavoro in background ha mantenuto l’obiettivo in attesa per 30 minuti, è dovuto un check-in. Nel check-in, Claude Code elenca le attività in esecuzione e chiede a Claude di leggere il loro output, continuare ad aspettare se stanno progredendo e correggere o interrompere quelli bloccati. Dopo il primo check-in, Claude Code attende il doppio del tempo prima di ogni check-in successivo, fino a quattro volte l’intervallo iniziale: con il valore predefinito, 1 ora dopo il primo check-in, quindi ogni 2 ore. Claude Code consegna un check-in dovuto, il primo incluso, in uno di due modi:- Quando un turno termina: Claude Code consegna il check-in alla fine del turno successivo che termina con il lavoro ancora in esecuzione. In una sessione non interattiva, come una avviata con
-p, questo è l’unico modo in cui Claude Code consegna i check-in. - Mentre la sessione è inattiva: in una sessione interattiva, Claude Code avvia anche un turno da solo per consegnare il check-in invece di aspettare il tuo prossimo prompt. Se il lavoro in background si è fermato senza segnalare un risultato, Claude Code chiede a Claude di continuare verso l’obiettivo. Claude Code avvia al massimo tre check-in inattivi per obiettivo tra i tuoi prompt. Nel terzo check-in inattivo, Claude Code dice che i check-in inattivi sono sospesi fino a quando non invii un altro prompt. Prima della v2.1.246, i check-in inattivi erano illimitati. I check-in inattivi richiedono Claude Code v2.1.236 o successivo.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES. Claude Code utilizza il tuo valore al posto dell’intervallo di 30 minuti e scala gli intervalli successivi con esso. Impostalo su 0 per disattivare i check-in e i tentativi automatici.
I check-in richiedono Claude Code v2.1.234 o successivo.
Modello di valutazione e costo
Per valutare su un modello diverso, impostaANTHROPIC_DEFAULT_HAIKU_MODEL.
Il valutatore viene eseguito su qualsiasi provider la tua sessione sia configurata. Non chiama strumenti, quindi può solo giudicare ciò che Claude ha già esposto nella conversazione.
I token di valutazione vengono fatturati sul piccolo modello veloce configurato per il tuo provider e sono in genere trascurabili rispetto alla spesa del turno principale.
Requisiti
Claude Code rende/goal disponibile secondo la stessa regola di fiducia dell’area di lavoro degli hook nei file di impostazioni, perché l’evaluator fa parte del sistema di hook. /goal è anche non disponibile quando disableAllHooks è true dopo l’applicazione della precedenza delle impostazioni, o quando allowManagedHooksOnly è impostato nelle impostazioni gestite. In ogni caso, il comando ti dice perché invece di non fare nulla silenziosamente.
Vedi anche
- Esegui un prompt ripetutamente con
/loop: riesegui a intervalli di tempo invece che finché una condizione non regge - Hook basati su prompt: scrivi il tuo Stop hook quando hai bisogno di logica di valutazione personalizzata
- Auto mode: approva le chiamate agli strumenti automaticamente in modo che ogni turno di obiettivo venga eseguito senza supervisione
- Confronto della pianificazione: esegui il lavoro secondo una pianificazione indipendente da qualsiasi sessione aperta