Permessi SDK
Il Claude Agent SDK fornisce potenti controlli dei permessi che ti permettono di gestire come Claude utilizza gli strumenti nella tua applicazione. Questa guida copre come implementare sistemi di permessi utilizzando il callbackcanUseTool, gli hook e le regole di permesso di settings.json. Per la documentazione completa dell’API, consulta il riferimento TypeScript SDK.
Panoramica
Il Claude Agent SDK fornisce quattro modi complementari per controllare l’uso degli strumenti:- Modalità di Permesso - Impostazioni globali del comportamento dei permessi che influenzano tutti gli strumenti
- callback canUseTool - Gestore di permessi runtime per casi non coperti da altre regole
- Hook - Controllo granulare su ogni esecuzione di strumento con logica personalizzata
- Regole di permesso (settings.json) - Regole dichiarative di permesso/negazione con parsing integrato dei comandi bash
- Modalità di permesso - Imposta il comportamento generale dei permessi (pianificazione, accettazione automatica delle modifiche, bypass dei controlli)
canUseTool- Approvazione dinamica per casi non coperti, richiede il permesso all’utente- Hook - Controllo programmatico su tutte le esecuzioni degli strumenti
- Regole di permesso - Politiche statiche con parsing intelligente dei comandi bash
Diagramma del Flusso dei Permessi
Ordine di Elaborazione: Hook PreToolUse → Regole di Negazione → Regole di Permesso → Regole di Richiesta → Controllo Modalità Permesso → Callback canUseTool → Hook PostToolUseModalità di Permesso
Le modalità di permesso forniscono controllo globale su come Claude utilizza gli strumenti. Puoi impostare la modalità di permesso quando chiamiquery() o cambiarla dinamicamente durante le sessioni di streaming.
Modalità Disponibili
L’SDK supporta quattro modalità di permesso, ognuna con comportamento diverso:| Modalità | Descrizione | Comportamento Strumento |
|---|---|---|
default | Comportamento standard dei permessi | Si applicano i controlli normali dei permessi |
plan | Modalità pianificazione - nessuna esecuzione | Claude può utilizzare solo strumenti di sola lettura; presenta un piano prima dell’esecuzione (Attualmente non supportato nell’SDK) |
acceptEdits | Accetta automaticamente le modifiche ai file | Le modifiche ai file e le operazioni del filesystem vengono approvate automaticamente |
bypassPermissions | Bypassa tutti i controlli dei permessi | Tutti gli strumenti vengono eseguiti senza richieste di permesso (usa con cautela) |
Impostazione della Modalità di Permesso
Puoi impostare la modalità di permesso in due modi:1. Configurazione Iniziale
Imposta la modalità quando crei una query:2. Cambiamenti Dinamici della Modalità (Solo Streaming)
Cambia la modalità durante una sessione di streaming:Comportamenti Specifici delle Modalità
Modalità Accetta Modifiche (acceptEdits)
In modalità accetta modifiche:
- Tutte le modifiche ai file vengono approvate automaticamente
- Le operazioni del filesystem (mkdir, touch, rm, ecc.) vengono auto-approvate
- Altri strumenti richiedono ancora permessi normali
- Accelera lo sviluppo quando ti fidi delle modifiche di Claude
- Utile per prototipazione rapida e iterazioni
- Modifiche ai file (strumenti Edit, Write)
- Comandi bash del filesystem (mkdir, touch, rm, mv, cp)
- Creazione ed eliminazione di file
Modalità Bypassa Permessi (bypassPermissions)
In modalità bypassa permessi:
- TUTTI gli usi degli strumenti vengono approvati automaticamente
- Non appaiono richieste di permesso
- Gli hook vengono ancora eseguiti (possono ancora bloccare le operazioni)
- Usa con estrema cautela - Claude ha accesso completo al sistema
- Raccomandato solo per ambienti controllati
Priorità della Modalità nel Flusso dei Permessi
Le modalità di permesso vengono valutate in un punto specifico del flusso dei permessi:- Gli hook vengono eseguiti per primi - Possono consentire, negare, chiedere o continuare
- Le regole di negazione vengono controllate - Bloccano gli strumenti indipendentemente dalla modalità
- Le regole di permesso vengono controllate - Permettono gli strumenti se corrispondenti
- Le regole di richiesta vengono controllate - Richiedono permesso se corrispondenti
- La modalità di permesso viene valutata:
- Modalità
bypassPermissions- Se attiva, consente tutti gli strumenti rimanenti - Altre modalità - Delegano al callback
canUseTool
- Modalità
- Callback
canUseTool- Gestisce i casi rimanenti
- Gli hook possono sempre controllare l’uso degli strumenti, anche in modalità
bypassPermissions - Le regole di negazione esplicite sovrascrivono tutte le modalità di permesso
- Le regole di richiesta vengono valutate prima delle modalità di permesso
- La modalità
bypassPermissionssovrascrive il callbackcanUseToolper gli strumenti non corrispondenti
Migliori Pratiche
- Usa la modalità predefinita per l’esecuzione controllata con controlli normali dei permessi
- Usa la modalità acceptEdits quando lavori su file o directory isolate
- Evita bypassPermissions in produzione o su sistemi con dati sensibili
- Combina le modalità con gli hook per un controllo granulare
- Cambia le modalità dinamicamente in base al progresso del compito e alla fiducia
canUseTool
Il callbackcanUseTool viene passato come opzione quando si chiama la funzione query. Riceve il nome dello strumento e i parametri di input, e deve restituire una decisione - consentire o negare.
canUseTool si attiva ogni volta che Claude Code mostrerebbe una richiesta di permesso a un utente, ad esempio gli hook e le regole di permesso non lo coprono e non è in modalità acceptEdits.
Ecco un esempio completo che mostra come implementare l’approvazione interattiva degli strumenti:
Risorse Correlate
- Guida agli Hook - Impara come implementare gli hook per un controllo granulare sull’esecuzione degli strumenti
- Impostazioni: Regole di Permesso - Configura regole dichiarative di permesso/negazione con parsing dei comandi bash