Claude Agent SDK fornisce controlli di permesso per gestire come Claude utilizza gli strumenti. Utilizza modalità di permesso e regole per definire cosa è consentito automaticamente, e il callback canUseTool per gestire tutto il resto in fase di esecuzione.
Questa pagina copre le modalità di permesso e le regole. Per creare flussi di approvazione interattivi in cui gli utenti approvano o negano le richieste di strumenti in fase di esecuzione, vedi Gestisci approvazioni e input dell'utente.
Quando Claude richiede uno strumento, l'SDK controlla i permessi in questo ordine:
Hook
Esegui hook per primo, che può consentire, negare o continuare al passaggio successivo
Regole di permesso
Controlla le regole definite in settings.json in questo ordine: regole deny per prime (blocca indipendentemente da altre regole), poi regole allow (consenti se corrispondente), poi regole ask (richiedi approvazione). Queste regole dichiarative ti permettono di pre-approvare, bloccare o richiedere approvazione per strumenti specifici senza scrivere codice.
Modalità di permesso
Applica la modalità di permesso attiva (bypassPermissions, acceptEdits, dontAsk, ecc.)
callback canUseTool
Se non risolto da regole o modalità, chiama il tuo callback canUseTool per una decisione
Questa pagina si concentra sulle modalità di permesso (passaggio 3), la configurazione statica che controlla il comportamento predefinito. Per gli altri passaggi:
settings.json. Vedi Impostazioni di permesso.Le modalità di permesso forniscono un controllo globale su come Claude utilizza gli strumenti. Puoi impostare la modalità di permesso quando chiami query() o cambiarla dinamicamente durante le sessioni di streaming.
L'SDK supporta queste modalità di permesso:
| Modalità | Descrizione | Comportamento dello strumento |
|---|---|---|
default | Comportamento di permesso standard | Nessuna auto-approvazione; gli strumenti non corrispondenti attivano il tuo callback canUseTool |
acceptEdits | Auto-accetta modifiche ai file | Le modifiche ai file e le operazioni del filesystem (mkdir, rm, mv, ecc.) vengono approvate automaticamente |
bypassPermissions | Ignora tutti i controlli di permesso | Tutti gli strumenti vengono eseguiti senza prompt di permesso (usa con cautela) |
plan | Modalità di pianificazione | Nessuna esecuzione di strumenti; Claude pianifica senza apportare modifiche |
Ereditarietà dei subagent: quando si utilizza bypassPermissions, tutti i subagent ereditano questa modalità e non può essere sovrascritta. I subagent possono avere prompt di sistema diversi e comportamenti meno vincolati rispetto al tuo agente principale. L'abilitazione di bypassPermissions concede loro accesso completo e autonomo al sistema senza alcun prompt di approvazione.
Puoi impostare la modalità di permesso una volta all'inizio di una query, o cambiarla dinamicamente mentre la sessione è attiva.
acceptEdits)Auto-approva le operazioni sui file in modo che Claude possa modificare il codice senza richiedere conferma. Altri strumenti (come i comandi Bash che non sono operazioni del filesystem) richiedono comunque i permessi normali.
Operazioni auto-approvate:
mkdir, touch, rm, mv, cpUsa quando: ti fidi delle modifiche di Claude e desideri un'iterazione più veloce, ad esempio durante la prototipazione o quando lavori in una directory isolata.
bypassPermissions)Auto-approva tutti gli usi degli strumenti senza prompt. Gli hook vengono comunque eseguiti e possono bloccare le operazioni se necessario.
Usa con estrema cautela. Claude ha accesso completo al sistema in questa modalità. Usa solo in ambienti controllati in cui ti fidi di tutte le operazioni possibili.
plan)Impedisce completamente l'esecuzione degli strumenti. Claude può analizzare il codice e creare piani ma non può apportare modifiche. Claude può utilizzare AskUserQuestion per chiarire i requisiti prima di finalizzare il piano. Vedi Gestisci approvazioni e input dell'utente per gestire questi prompt.
Usa quando: desideri che Claude proponga modifiche senza eseguirle, ad esempio durante la revisione del codice o quando hai bisogno di approvare le modifiche prima che vengano apportate.
Per gli altri passaggi nel flusso di valutazione dei permessi:
settings.jsonWas this page helpful?