Comportamento predefinito delle autorizzazioni
In modalità Normal (quella predefinita), le operazioni in sola lettura vengono approvate automaticamente, mentre le scritture e i comandi shell richiedono la tua approvazione esplicita. Ogni volta che approvi un’azione, puoi scegliere di consentirla una sola volta, per la sessione oppure in modo permanente per il progetto.
In modalità Accept Edits, le modifiche ai file all’interno del workspace vengono approvate automaticamente, ma i comandi shell e le scritture al di fuori del workspace continuano a mostrare un prompt.
In modalità Smart, le modifiche nel workspace vengono approvate automaticamente come in Accept Edits, mentre ogni altra azione viene valutata da un modello veloce che la esegue automaticamente solo quando è chiaramente sicura. Tutto il resto mostra un prompt come di consueto. Vedi Modalità Smart di seguito.
In modalità Bypass, tutte le chiamate agli strumenti vengono approvate automaticamente senza prompt di conferma.
In modalità Autonomous, i comandi shell e i fetch di rete vengono approvati automaticamente perché il sandbox a livello di sistema operativo limita ciò con cui possono interagire. Le modifiche dirette ai file tramite gli strumenti
edit/write continuano a mostrare un prompt, perché questi strumenti operano al di fuori del sandbox. La modalità Autonomous è disponibile solo quando il sandbox a livello di sistema operativo è attivo.
Modalità Smart
Shift+Tab, selezionarla nel selettore della modalità o avviarla:
- Installazione di pacchetti (
npm install,pip install,cargo install,brew install, …) - Operazioni
gitche modificano lo stato (i sottocomandi di sola lettura comegit statusrestano idonei) rm,sudoe altri comandi distruttivi o di escalation dei privilegikubectl deletee operazioni distruttive delle CLI cloud (aws,gcloud,az,terraform, …)- Qualsiasi operazione che legge o scrive file dotenv, materiale delle chiavi, configurazione Git o la configurazione dell’agent stesso
Le tue regole hanno comunque la precedenza. Il giudizio di Smart si applica solo quando nessuna regola determina già l’esito: una regola
deny blocca quindi l’azione e una regola ask richiede sempre conferma, esattamente come descritto in Come funzionano le autorizzazioni. Anche le regole deny e ask a livello di organizzazione non sono interessate.La modalità Smart viene distribuita gradualmente, quindi potrebbe non essere ancora disponibile nel selettore delle modalità o nel ciclo
Shift+Tab.Modalità Autonomous
--sandbox. In pratica, corrisponde più o meno a “Accept Edits nel workspace corrente” con in più la possibilità di eseguire qualsiasi comando shell, il tutto confinato nel sandbox a livello di sistema operativo. Quando il sandbox è attivo:
- È l’unica modalità di autorizzazione disponibile. Nelle sessioni sandbox, Normal, Accept Edits, Smart e Bypass sono nascosti. La modalità Plan rimane disponibile.
- I comandi shell e i fetch vengono approvati automaticamente invece di richiedere conferma, perché il sandbox limita ciò che possono leggere, scrivere e raggiungere tramite la rete.
- Le modifiche dirette ai file tramite gli strumenti
editewritecontinuano a richiedere conferma. Questi strumenti vengono eseguiti all’interno del processo CLI anziché nel sandbox, quindi non possono esserne vincolati. Concedere un ambitoWrite(...)al prompt espande dinamicamente il sandbox, così i comandi shell successivi possono scrivere in quella posizione. - Gli ambiti
Write(...)concessi nel corso della sessione espandono dinamicamente il sandbox per i comandi successivi. Le approvazioniRead(...)nel corso della sessione influenzano solo gli strumenti dell’agente; i percorsi nascosti dalle regole denyRead(...)rimangono nascosti per l’intera sessione.
--sandbox (che seleziona Autonomous) quando vuoi un’esecuzione senza supervisione con limiti imposti dal sistema operativo sull’accesso al filesystem e alla rete. Consulta il riferimento della configurazione della sandbox per i dettagli sulle radici scrivibili, sulle regole deny e sul filtraggio dei domini, e Team Settings → Applicazione sandbox per i controlli Enterprise.
Come funzionano le autorizzazioni
- Regole di deny — Se c’è una corrispondenza, l’azione viene bloccata immediatamente.
- Regole di ask — Se c’è una corrispondenza, ti viene chiesta conferma, a meno che non corrisponda anche una regola di autorizzazione per comandi o MCP altrettanto o più specifica.
- Regole di autorizzazione — Se c’è una corrispondenza, l’azione procede senza chiedere conferma.
- Predefinito — Se nessuna regola corrisponde, ti viene chiesta l’approvazione.
Una regola di deny ha sempre la precedenza. Una regola di autorizzazione non prevale mai su una regola di deny corrispondente, indipendentemente da quanto sia specifica.
Regole di autorizzazione specifiche
git status viene eseguito senza richiedere conferma, mentre gli altri comandi continuano a richiederla. Lo stesso vale quando entrambe le regole usano ambiti di comando: un comando esatto è più specifico di un prefix e un prefix più lungo è più specifico di uno più corto.
Le regole MCP seguono lo stesso principio: uno strumento specifico è più specifico di una regola valida per l’intero server, che a sua volta è più specifica di una regola che copre tutti gli strumenti MCP.
Questa eccezione si applica solo all’interno dello stesso livello di configurazione. Un allow di livello inferiore non può fare override di un ask proveniente da un livello con precedenza maggiore, come le Settings dell’organizzazione. Inoltre non si applica ai glob di percorso di Read() o Write(): se un percorso corrisponde a una regola ask, Devin chiede conferma anche quando corrisponde anche un allow su un percorso più ristretto.
Configurazione
permissions del file di configurazione:
Su Windows, il percorso del file di configurazione dell’utente è
%APPDATA%\devin\config.json (in genere C:\Users\<you>\AppData\Roaming\devin\config.json) anziché ~/.config/devin/config.json. Per maggiori dettagli, consulta File di configurazione.- Configurazione del progetto
- Configurazione utente
- Override locale
Sintassi delle autorizzazioni
Autorizzazioni basate sull’ambito
Read(glob)
Read(glob)
Controlla l’accesso in lettura ai file. Il pattern glob corrisponde ai percorsi dei file.I percorsi di directory corrispondono automaticamente a tutti i file al loro interno.
Write(glob)
Write(glob)
Controlla l’accesso in scrittura e modifica dei file.
Exec(prefix)
Exec(prefix)
Controlla l’esecuzione dei comandi shell. Corrisponde ai comandi che iniziano con il prefisso specificato.
Exec(git) corrisponde a “git”, “git status”, “git commit -m ‘msg’” ma NON a “gitk” o “github-cli”. Il prefisso deve corrispondere a una parola completa.Fetch(pattern)
Fetch(pattern)
Controlla l’accesso HTTP fetch tramite pattern URL.I pattern URL seguono lo standard WHATWG URL Pattern. La forma abbreviata
domain: corrisponde a qualsiasi percorso sul dominio esatto.Autorizzazioni per strumento
read, edit, grep, glob, exec
Autorizzazioni per gli strumenti MCP
Pattern di percorso
Read() e Write() supportano:
Esempi:
Usa un prefisso di percorso assoluto (ad es.
Read(/**)) quando vuoi includere tutti i file del sistema. Un semplice Read(**) senza una / iniziale viene interpretato in relazione alla directory di lavoro corrente, quindi corrisponde solo ai file in quella directory, non ai file accessibili altrove tramite percorsi assoluti.Opzioni di persistenza
I prompt di Command offrono esplicitamente entrambi gli ambiti: “Sì, consenti sempre i comandi
<cmd> in <project>” salva l’autorizzazione per il progetto corrente, mentre “Sì, consenti sempre i comandi <cmd> in tutti i progetti” la salva nella configurazione utente affinché si applichi ovunque. I prompt di recupero web per un URL o dominio specifico aggiungono un’opzione equivalente “Sì, consenti sempre tutti i recuperi web” che inserisce il recupero web nella whitelist in un unico passaggio.
Modificare un Command prima dell’approvazione
Autorizzazioni a livello di server MCP
list_issues sul server Figma), il prompt di autorizzazione offre anche opzioni più ampie a livello di server:
Questo ti consente di concedere rapidamente l’accesso completo a un server MCP attendibile senza dover approvare ogni singolo strumento.
Precedenza
- Settings dell’organizzazione/del team (se Enterprise)
- Autorizzazioni concesse a livello di sessione (approvazioni interattive)
- Configurazione locale del progetto (
.devin/config.local.json) - Configurazione del progetto (
.devin/config.json) - Configurazione utente (
~/.config/devin/config.json;%APPDATA%\devin\config.jsonsu Windows)

