Come funzionano i subagent
Quando l’agente genera un subagent, seleziona uno dei profili di subagent disponibili e sceglie se il subagent deve essere eseguito in foreground o in background. I subagent possono essere eseguiti in due modalità:Foreground
Viene eseguito inline nella tua sessione. L’agente principale si mette in pausa e aspetta che il subagent termini prima di continuare. Puoi approvare o rifiutare le richieste di utilizzo degli strumenti man mano che vengono presentate.
Background
Viene eseguito in parallelo mentre l’agente principale continua a lavorare. L’agente principale riceve automaticamente una notifica quando il subagent termina. Gli strumenti non approvati vengono rifiutati automaticamente.
Non vedi direttamente l’output grezzo del subagent. Quando un subagent termina, l’agente principale legge il risultato e ne riepiloga per te i risultati principali e le azioni.
Costo dei subagenti
I subagenti vengono eseguiti come sessioni di agent separate, ciascuna con la propria finestra di contesto e le proprie chiamate di inferenza, quindi generano costi indipendentemente dall’agente principale. La spesa dell’agente principale copre solo il proprio lavoro; ogni subagente che avvia aggiunge inoltre il proprio utilizzo.Nei piani basati sui prompt, ogni subagent consuma crediti aggiuntivi, proprio come un messaggio dell’utente. Il numero di crediti dipende dal modello usato dal subagent, quindi le attività che generano più subagent (o li annidano) consumano più crediti.
Quale modello usa un subagent?
I subagent non usano tutti il modello selezionato nel selettore del modello. Ogni profilo determina da dove proviene il modello:
Il modello predefinito del subagent non è un nome di modello fisso — viene risolto tramite un router server-side al momento della creazione del subagent, e un admin può impostare un override (vedi sotto). Con l’impostazione predefinita Subagent router, il router sceglie il primo modello idoneo da un elenco ordinato, quindi il modello risultante può variare in base al livello del tuo piano, alla disponibilità dei modelli e alla policy sui modelli della tua organizzazione. L’elenco di routing può cambiare nel tempo, quindi non dare per scontato che un subagent usi sempre un modello specifico.
Al momento, la CLI non indica nel pannello dei subagent quale modello sta usando un subagent in esecuzione.
Come influenzare il modello
Non c’è modo di indicare un modello per un subagent in un prompt: lo strumentorun_subagent accetta un profilo, non un modello. Hai tre possibilità:
-
Chiedere un profilo in linguaggio naturale. Richiedere un subagent explore (“research how auth works in an explore subagent”) mantiene il lavoro sul modello predefinito del subagent anziché sul modello che hai selezionato. Se chiedi modifiche al codice, viene usato
subagent_general, che gira sul modello che hai selezionato. -
Bloccare un modello in un profilo subagent personalizzato.
model:nel file di definizione è l’unico modo per eseguire un subagent con capacità di scrittura su un modello diverso da quello dell’agente principale. Anche una skill eseguita in un subagent può impostaremodel:nel suo frontmatter per fare override del modello del profilo. -
Impostare il tuo modello predefinito del subagent.
agent.subagent_modelnel tuo file di configurazione sostituisce il modello predefinito del subagent per le tue sessioni. Ha la precedenza sia sul router dei subagent sia sull’eventuale modello che un amministratore ha bloccato come predefinito del team; tuttavia non riabilita i subagent se l’impostazione dell’amministratore è None:Si applica asubagent_exploree ai subagent personalizzati che non bloccano unmodel:;subagent_generalcontinua invece a seguire il modello dell’agente principale. Il modello deve essere tra quelli consentiti dalla tua organizzazione, altrimenti l’impostazione viene ignorata e si usa il predefinito del team. L’impostazione vale per le nuove sessioni.
Controlli Enterprise
Gli amministratori possono gestire quale modello usano i subagent — e se i subagent vengono eseguiti o meno — tramite l’impostazione Modello predefinito del subagent nelle Settings dell’org/Enterprise. Questa impostazione controlla il modello persubagent_explore e per i subagent personalizzati che non bloccano un model: — non modifica subagent_general, che segue sempre il modello dell’agente principale.

Abilitare e disabilitare i subagent
I subagent sono abilitati per impostazione predefinita. Impostasubagents_enabled su false nel tuo file di configurazione per rimuovere gli strumenti run_subagent e read_subagent, così l’agente eseguirà tutto autonomamente:
I criteri dell’organizzazione hanno la precedenza: se un Admin ha impostato Default subagent model su None, i subagent restano disabilitati indipendentemente da questa impostazione.
Profili dei subagent
Ogni subagent opera con un profilo specifico che ne determina le capacità. Sono disponibili due profili predefiniti:L’agente sceglie automaticamente il profilo appropriato in base all’attività. I subagent di esplorazione sono ideali per la ricerca e per comprendere il codebase, mentre i subagent generali possono apportare modifiche. Vedi Quale modello usa un subagent? per capire come ogni profilo sceglie il proprio modello: i due profili non vengono eseguiti sullo stesso modello.
Autorizzazioni degli strumenti
Il modo in cui funzionano le autorizzazioni degli strumenti dipende dal fatto che il subagent sia in esecuzione in foreground o in background:- I subagent in foreground si comportano come l’agente principale: ti viene chiesto di approvare o negare le chiamate agli strumenti, come di consueto. Il prompt indica il subagent che ha richiesto l’azione, così sai chi sta chiedendo.
- I subagent in background ereditano tutte le autorizzazioni degli strumenti che hai già concesso nella sessione corrente. Qualsiasi strumento che non sia stato pre-approvato viene negato automaticamente. I subagent in background non possono chiederti nuove autorizzazioni.
Monitoraggio dei subagenti
Indicatore del subagente
Quando i subagenti in background sono attivi, sotto l’area di input compare un indicatore che ne mostra lo stato. Puoi raggiungere l’indicatore premendo ↓ dall’area di input, quindi premere Enter per aprire il pannello del subagente. Quando un subagente in primo piano è attivo, l’indicatore di caricamento mostra “Subagent in esecuzione · Ctrl+B per eseguire in background”.Pannello dei subagent
Il pannello dei subagent consente di visualizzare e gestire tutti i subagent attivi e conclusi. Mostra il profilo, il titolo, lo stato, il tempo trascorso e il numero di chiamate agli strumenti di ciascun subagent. L’attività dei subagent persiste dopo il ricaricamento di una sessione, quindi il pannello continua a mostrare i subagent dopo la ripresa.Passaggio tra foreground e background
Puoi spostare i subagenti tra foreground e background mentre sono in esecuzione:- Spostare in background un subagente in foreground: Premi Ctrl+B mentre è in esecuzione un subagente in foreground. Il subagente continua a lavorare in background e l’agente principale riprende.
- Portare in foreground un subagente in background: Apri il pannello dei subagenti e premi f su un subagente in background in esecuzione. L’output del subagente verrà visualizzato inline.
Quando sposti un subagente in background, la chiamata a uno strumento dell’agente principale è già terminata, quindi l’agente principale continua in modo indipendente. Il risultato del subagente non verrà reinserito nella pipeline corrente dell’agente principale, ma riceverai una notifica quando avrà completato l’esecuzione.
Interrompere un turno
L’interruzione dell’agente non termina i suoi subagent. I subagent in esecuzione vengono sospesi mantenendo intatto il loro stato e riprendono con il messaggio successivo, quindi interrompere l’agente principale per reindirizzarlo non comporta la perdita del lavoro in corso.Annullare i subagent
Puoi annullare un subagent in esecuzione in due modi:- Dal pannello dei subagent: Apri il pannello e premi x per un subagent in esecuzione.
- Subagent in foreground: Premi Ctrl+C con l’input vuoto, oppure Esc due volte, per annullare il subagent in foreground attualmente in esecuzione. Se la bozza non è vuota, Ctrl+C cancella prima la bozza.
Ripresa dei subagenti
I subagenti annullati, terminati con errore o completati possono essere ripresi con un nuovo prompt. Puoi chiedere all’agente di riprendere un subagente e questo continuerà da dove si era interrotto. I subagenti ripresi vengono sempre eseguiti in primo piano, così puoi approvare eventuali invocazioni degli strumenti che erano state precedentemente negate. Questo è particolarmente utile quando:- Un subagente in background è terminato con errore perché è stato negato uno strumento richiesto: riprendilo in primo piano per concedere le autorizzazioni necessarie.
- Un subagente è stato completato, ma vuoi che esegua ulteriore lavoro di follow-up in base ai risultati ottenuti.
- Un subagente è stato annullato prematuramente e vuoi che continui.
Profondità di annidamento
Per impostazione predefinita, i subagenti non possono generare altri subagenti: solo l’agente radice può farlo. Gli strumenti del subagente (run_subagent e read_subagent) sono disabilitati all’interno di un subagente per evitare un annidamento illimitato.
Tuttavia, i profili personalizzati dei subagenti possono abilitare la generazione nidificata impostando il campo max-nesting nel proprio frontmatter. Questo valore sovrascrive la profondità massima predefinita, consentendo ai subagenti di generare elementi figli finché l’albero rimane entro quel limite.
Ad esempio, max-nesting: 3 consente la seguente catena:
Subagenti personalizzati
Oltre ai profili integratisubagent_explore e subagent_general, puoi definire profili personalizzati per i tuoi subagenti. I subagenti personalizzati ti consentono di creare worker specializzati con prompt di sistema dedicati, restrizioni sugli strumenti e override del modello, pensati per attività specifiche nel tuo flusso di lavoro. Questo è anche il modo per ottenere un subagent con capacità di scrittura che non utilizzi il tuo modello primario (potenzialmente costoso): assegnagli un model: e gli strumenti di cui ha bisogno.
Creazione di un subagent personalizzato
I subagent personalizzati vengono definiti come file markdown inagents/, secondo uno di questi due layout:
- File singolo —
agents/<name>.md(la stessa convenzione usata da Claude Code, Cursor e altri strumenti). Il nome del file (senza.md) diventa l’identificatore del profilo. - Directory —
agents/<name>/AGENT.md. Il nome della directory diventa l’identificatore del profilo. Sono accettati come nome file ancheAGENTS.md,agent.mdeagents.md(se ne sono presenti più di uno,AGENT.mdha la precedenza, poiAGENTS.md,agent.md,agents.md).
name: nel frontmatter ha la precedenza sull’identificatore ricavato dal percorso.
- Specifico del progetto
- Globale
Formato del file di definizione
Un file di definizione di subagent usa lo stesso frontmatter YAML delle skill, seguito dal prompt di sistema del subagent:Campi del frontmatter
Come vengono usati i subagenti personalizzati
Una volta definiti, i profili dei subagenti personalizzati compaiono accanto a quelli predefiniti. L’agente vede una descrizione di ciascun profilo disponibile e sceglie quello più appropriato quando avvia un subagente. Puoi anche chiedere all’agente di usare un profilo specifico indicandone il nome (ad es., “esamina questo codice usando il subagente reviewer”). I profili dei subagenti personalizzati che entrano in conflitto con il nome di un profilo predefinito (ad es.,subagent_explore, subagent_general) vengono ignorati con un avviso.

