bypassPermissions è la modalità di permessi di Claude Code in cui l'agente non si ferma mai a chiedere: modifiche, comandi, chiamate di rete e tutto il resto vengono eseguiti non appena il modello decide di eseguirli. L'indicazione di Anthropic è di usarla solo in ambienti sandbox e usa e getta. Tale indicazione riguarda ciò a cui l'agente può accedere. C'è una seconda domanda che non affronta: chi gli sta dicendo cosa fare.
Per il tuo agente nella tua sandbox personale, bypass è un'impostazione di velocità. Per un agente a cui altre persone possono inviare richieste, bypass è la decisione di concedere a quelle persone la tua piena autorità locale senza alcun controllo umano intermedio. Questo post parla di questa differenza.
Perché bypass è allettante
I prompt sono attrito. In un lungo refactoring, cento domande del tipo “consenti questa modifica?” ti abituano a premere sì senza leggere. Disattivarle fa sembrare l'agente un collega anziché un modulo da compilare. Molti eseguono bypass su repository sotto controllo di versione e deducono, correttamente, che una modifica sbagliata è a portata di un git checkout.
Il ragionamento regge finché tre cose restano vere: la richiesta l'hai scritta tu, stai guardando e nulla di irreversibile è a portata di mano.
Cosa cambia quando a chiedere è qualcun altro
La richiesta non è tua. Un “ripulisci i vecchi branch” detto da un collega ha un significato per lui. Per l'agente significa git branch -D. Con bypass, nulla fa una pausa tra le due cose.
L'input non è affidabile. Le richieste arrivano con allegati: uno screenshot, un file di log, una issue incollata. Ognuno di essi può contenere testo simile a un'istruzione. Il prompt injection tramite input condivisi è un vettore reale, e bypass rimuove l'unico punto di controllo in grado di rilevarlo.
Non stai guardando. La condivisione esiste proprio perché l'agente lavori quando non ci sei. Un prompt a cui avresti risposto in un secondo diventa un'azione che nessuno ha visto.
L'irreversibilità è a portata di mano. Fare push su main, eliminare, spendere, leggere credenziali. Sulla tua macchina queste cose sono rare in una sessione normale, ed è per questo che bypass sembra sicuro. Sono esattamente le azioni che un'altra persona ha più probabilità di innescare per errore.
La linea
Usa bypass per agenti con cui parli solo tu, in directory in cui non si trova nulla di irreversibile. Nel momento in cui un agente si trova in una stanza con una seconda persona, la domanda non è più “quanto mi fido del modello”, ma “quanto mi fido di ogni persona e di ogni allegato che può raggiungerlo”.
Mantenere la velocità senza superarla
Una stanza ti permette di mantenere quasi tutta la velocità con due aggiunte oltre alla modalità.
Autorizzazioni per persona. Un'autorizzazione permanente consente a una persona fidata di operare senza approvazione richiesta per richiesta. La modalità dell'agente può restare permissiva per le chiamate ordinarie. Vedi le modalità di autorizzazione, spiegate.
Quattro azioni che si mettono sempre in pausa. Fare push su un branch condiviso, eliminare, spendere denaro e toccare credenziali si fermano in attesa del proprietario, anche in bypass, quando la richiesta proviene da qualcun altro. Cento modifiche ordinarie vengono eseguite senza prompt; quell'unico git push origin main aspetta te. La spiegazione si trova in quattro azioni su cui un agente dovrebbe sempre chiedere prima di procedere.
Un consiglio pratico
- Agenti che condividi:
acceptEditsper i repository,planper qualsiasi cosa sia esplorativa. Concedi l'autorizzazione alle persone di cui ti fidi. - Agenti che usi solo tu in sandbox usa e getta: bypass va benissimo.
- Qualsiasi cosa contenga credenziali di produzione nella working directory:
default, e un agente separato per le parti che non ne hanno bisogno. - Non condividere mai un agente la cui working directory contiene un file di chiavi. Sposta la chiave, non la modalità.
Domande frequenti
Una stanza cambia il significato di bypass all'interno di un'esecuzione? No. All'interno di un'esecuzione, bypass significa comunque nessun prompt a runtime. La stanza aggiunge chi può avviare un'esecuzione e quali quattro azioni si mettono in pausa a prescindere.
E per le impostazioni equivalenti di Codex? Stessa dinamica, stesso consiglio: permissivo per te in una sandbox, non per un agente condiviso.
Un prompt per ogni push non è fastidioso? I push verso branch condivisi sono rari in una normale sessione. Se non lo sono, la working directory dell'agente è probabilmente troppo ampia.
Veloce per te, cauto per tutti gli altri. È a questo che serve una stanza. Danne una al tuo agente.
Pubblicato il