6 6
7> Controlla come il tuo agente utilizza gli strumenti con modalità di permesso, hook e regole dichiarative di consentimento/negazione.7> Controlla come il tuo agente utilizza gli strumenti con modalità di permesso, hook e regole dichiarative di consentimento/negazione.
8 8
9Claude Agent SDK fornisce controlli di permesso per gestire come Claude utilizza gli strumenti. Utilizza modalità di permesso e regole per definire ciò che è consentito automaticamente, e il callback [`canUseTool`](/docs/it/agent-sdk/user-input) per gestire tutto il resto in fase di esecuzione.9Claude Agent SDK fornisce controlli di permesso per gestire come Claude utilizza gli strumenti. Utilizza modalità di permesso e regole per definire ciò che è consentito automaticamente, e il callback [`canUseTool`](https://code.claude.com/docs/it/agent-sdk/user-input) per gestire tutto il resto in fase di esecuzione.
10 10
11## Come vengono valutate le autorizzazioni11## Come vengono valutate le autorizzazioni
12 12
14 14
15**1. Hook**15**1. Hook**
16 16
17Eseguire prima gli [hook](/docs/it/agent-sdk/hooks.md). Un hook può negare la chiamata completamente o lasciarla passare. Un hook che restituisce `allow` non salta le regole deny e ask riportate di seguito; quelle vengono valutate indipendentemente dal risultato dell'hook.17Eseguire prima gli [hook](https://code.claude.com/docs/it/agent-sdk/hooks.md). Un hook può negare la chiamata completamente o lasciarla passare. Un hook che restituisce `allow` non salta le regole deny e ask riportate di seguito; quelle vengono valutate indipendentemente dal risultato dell'hook.
18 18
19Un hook `PreToolUse` che restituisce `allow` inoltre non può approvare un comando `rm` o `rmdir` la cui destinazione Claude Code riconosce come un [percorso critico](/docs/it/permission-modes.md#critical-paths), come `rm -rf ~`. Per sapere cosa fa quell'`allow` nel plan mode, consulta [Approvazioni degli hook nel plan mode](/docs/it/permissions.md#hook-approvals-in-plan-mode).19Un hook `PreToolUse` che restituisce `allow` inoltre non può approvare un comando `rm` o `rmdir` la cui destinazione Claude Code riconosce come un [percorso critico](https://code.claude.com/docs/it/permission-modes.md#critical-paths), come `rm -rf ~`. Per sapere cosa fa quell'`allow` nel plan mode, consulta [Approvazioni degli hook nel plan mode](https://code.claude.com/docs/it/permissions.md#hook-approvals-in-plan-mode).
20 20
21**2. Regole deny**21**2. Regole deny**
22 22
23Controllare le regole `deny` (da `disallowed_tools` e [settings.json](/docs/it/settings-reference.md#permission-settings)). Se una regola deny corrisponde, lo strumento viene bloccato, anche in modalità `bypassPermissions`. Le regole deny con nome semplice come `Bash` rimuovono lo strumento dal contesto di Claude prima che questa valutazione inizi, quindi solo le regole con ambito come `Bash(rm *)` vengono controllate in questo passaggio.23Controllare le regole `deny` (da `disallowed_tools` e [settings.json](https://code.claude.com/docs/it/settings-reference.md#permission-settings)). Se una regola deny corrisponde, lo strumento viene bloccato, anche in modalità `bypassPermissions`. Le regole deny con nome semplice come `Bash` rimuovono lo strumento dal contesto di Claude prima che questa valutazione inizi, quindi solo le regole con ambito come `Bash(rm *)` vengono controllate in questo passaggio.
24 24
25**3. Regole ask**25**3. Regole ask**
26 26
27Controllare le regole `ask` da [settings.json](/docs/it/settings-reference.md#permission-settings). Se una regola ask corrisponde, la chiamata passa al tuo [callback `canUseTool`](/docs/it/agent-sdk/user-input) per la conferma, anche in modalità `bypassPermissions`.27Controllare le regole `ask` da [settings.json](https://code.claude.com/docs/it/settings-reference.md#permission-settings). Se una regola ask corrisponde, la chiamata passa al tuo [callback `canUseTool`](https://code.claude.com/docs/it/agent-sdk/user-input) per la conferma, anche in modalità `bypassPermissions`.
28 28
29Gli strumenti che richiedono l'interazione dell'utente si comportano allo stesso modo: `AskUserQuestion` e gli strumenti MCP il cui server imposta [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool) passano sempre al callback, anche quando una regola allow corrisponde. In modalità `dontAsk` entrambi i casi vengono negati, perché quella modalità non richiede mai. L'annotazione MCP richiede Claude Code v2.1.199 o successivo.29Gli strumenti che richiedono l'interazione dell'utente si comportano allo stesso modo: `AskUserQuestion` e gli strumenti MCP il cui server imposta [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/it/mcp#require-approval-for-a-specific-tool) passano sempre al callback, anche quando una regola allow corrisponde. In modalità `dontAsk` entrambi i casi vengono negati, perché quella modalità non richiede mai. L'annotazione MCP richiede Claude Code v2.1.199 o successivo.
30 30
31Gli strumenti del connettore [claude.ai](/docs/it/mcp.md#organization-controls-on-connector-tools) che la vostra organizzazione ha impostato su `ask` lasciano anche il flusso in questo passaggio. Ogni chiamata passa al callback, anche in modalità `bypassPermissions` e anche quando una regola allow corrisponde. Il callback riceve il motivo `Your organization requires approval for this tool`. In modalità `dontAsk` la chiamata viene negata, perché quella modalità non richiede mai.31Gli strumenti del connettore [claude.ai](https://code.claude.com/docs/it/mcp.md#organization-controls-on-connector-tools) che la vostra organizzazione ha impostato su `ask` lasciano anche il flusso in questo passaggio. Ogni chiamata passa al callback, anche in modalità `bypassPermissions` e anche quando una regola allow corrisponde. Il callback riceve il motivo `Your organization requires approval for this tool`. In modalità `dontAsk` la chiamata viene negata, perché quella modalità non richiede mai.
32 32
33**4. Modalità di autorizzazione**33**4. Modalità di autorizzazione**
34 34
35Applicare la [modalità di autorizzazione](#permission-modes) attiva:35Applicare la [modalità di autorizzazione](#permission-modes) attiva:
36 36
37* In modalità `bypassPermissions`, Claude Code approva tutto ciò che raggiunge questo passaggio tranne le [rimozioni di percorsi critici](/docs/it/permission-modes.md#critical-paths) riconosciute, che passano invece oltre.37* In modalità `bypassPermissions`, Claude Code approva tutto ciò che raggiunge questo passaggio tranne le [rimozioni di percorsi critici](https://code.claude.com/docs/it/permission-modes.md#critical-paths) riconosciute, che passano invece oltre.
38* In modalità `acceptEdits`, Claude Code approva le operazioni su file elencate in [Modalità accetta modifiche](#accept-edits-mode-acceptedits).38* In modalità `acceptEdits`, Claude Code approva le operazioni su file elencate in [Modalità accetta modifiche](#accept-edits-mode-acceptedits).
39* In modalità `plan`, Claude Code invia gli strumenti di modifica file e scrittura shell al tuo callback `canUseTool` indipendentemente dalle regole allow, in modo che le operazioni di scrittura non possano essere approvate automaticamente durante la pianificazione.39* In modalità `plan`, Claude Code invia gli strumenti di modifica file e scrittura shell al tuo callback `canUseTool` indipendentemente dalle regole allow, in modo che le operazioni di scrittura non possano essere approvate automaticamente durante la pianificazione.
40* In altre modalità, la richiesta passa oltre.40* In altre modalità, la richiesta passa oltre.
41 41
42**5. Regole allow**42**5. Regole allow**
43 43
44Controllare le regole `allow` (da `allowed_tools` e settings.json). Se una regola corrisponde, lo strumento viene approvato. Anche una chiamata che lo strumento approva da solo viene risolta in questo passaggio, senza alcuna regola necessaria: ad esempio una lettura di file all'interno delle tue directory di lavoro o un [comando Bash di sola lettura](/docs/it/permissions.md#read-only-commands).44Controllare le regole `allow` (da `allowed_tools` e settings.json). Se una regola corrisponde, lo strumento viene approvato. Anche una chiamata che lo strumento approva da solo viene risolta in questo passaggio, senza alcuna regola necessaria: ad esempio una lettura di file all'interno delle tue directory di lavoro o un [comando Bash di sola lettura](https://code.claude.com/docs/it/permissions.md#read-only-commands).
45 45
46Le [rimozioni di percorsi critici](/docs/it/permission-modes.md#critical-paths) riconosciute non vengono approvate da una regola allow. Se poi raggiungano il tuo callback dipende dalla modalità di permesso: in una sessione Agent SDK in modalità `auto`, ad esempio, Claude Code le nega per impostazione predefinita senza chiamarlo. La [tabella delle modalità per i percorsi critici](/docs/it/permission-modes.md#critical-path-removals-in-each-permission-mode) elenca cosa fa ogni modalità con esse.46Le [rimozioni di percorsi critici](https://code.claude.com/docs/it/permission-modes.md#critical-paths) riconosciute non vengono approvate da una regola allow. Se poi raggiungano il tuo callback dipende dalla modalità di permesso: in una sessione Agent SDK in modalità `auto`, ad esempio, Claude Code le nega per impostazione predefinita senza chiamarlo. La [tabella delle modalità per i percorsi critici](https://code.claude.com/docs/it/permission-modes.md#critical-path-removals-in-each-permission-mode) elenca cosa fa ogni modalità con esse.
47 47
48Una regola allow non approva una lettura da un [percorso di rete](/docs/it/permissions.md#network-paths).48Una regola allow non approva una lettura da un [percorso di rete](https://code.claude.com/docs/it/permissions.md#network-paths).
49 49
50**6. Callback canUseTool**50**6. Callback canUseTool**
51 51
52Se la chiamata non è stata risolta da nessuno dei passaggi precedenti, chiamare il tuo [callback `canUseTool`](/docs/it/agent-sdk/user-input) per una decisione. In modalità `dontAsk`, questo passaggio viene saltato e lo strumento viene negato, anche se un [mod](/docs/it/plugins/mods/overview.md) che hai installato può comunque approvare [alcune di queste chiamate](/docs/it/permissions.md#precedence-among-rules-hooks-and-mods).52Se la chiamata non è stata risolta da nessuno dei passaggi precedenti, chiamare il tuo [callback `canUseTool`](https://code.claude.com/docs/it/agent-sdk/user-input) per una decisione. In modalità `dontAsk`, questo passaggio viene saltato e lo strumento viene negato, anche se un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che hai installato può comunque approvare [alcune di queste chiamate](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods).
53 53
54Nell'SDK TypeScript, se impostate [`permissionPrompts: 'none'`](/docs/it/agent-sdk/typescript#options), il vostro callback non viene chiamato in questo passaggio. Un hook [`PermissionRequest`](/docs/it/hooks#permissionrequest) ha ancora la possibilità di decidere, e se non lo fa, Claude Code nega la chiamata. L'opzione richiede Claude Code v2.1.259 o successivo.54Nell'SDK TypeScript, se impostate [`permissionPrompts: 'none'`](https://code.claude.com/docs/it/agent-sdk/typescript#options), il vostro callback non viene chiamato in questo passaggio. Un hook [`PermissionRequest`](https://code.claude.com/docs/it/hooks#permissionrequest) ha ancora la possibilità di decidere, e se non lo fa, Claude Code nega la chiamata. L'opzione richiede Claude Code v2.1.259 o successivo.
55 55
5656
57 57
58Se passate un callback `canUseTool` in una configurazione in cui l'SDK TypeScript si aspetta che l'ordine di valutazione approvi automaticamente le chiamate prima che il callback sia consultato, l'SDK emette un avviso di processo Node.js una volta quando la query viene costruita. Il codice dell'avviso è `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Due configurazioni lo attivano:58Se passate un callback `canUseTool` in una configurazione in cui l'SDK TypeScript si aspetta che l'ordine di valutazione approvi automaticamente le chiamate prima che il callback sia consultato, l'SDK emette un avviso di processo Node.js una volta quando la query viene costruita. Il codice dell'avviso è `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Due configurazioni lo attivano:
59 59
60* `permissionMode: 'bypassPermissions'`, che approva automaticamente ogni chiamata che raggiunge il passaggio della modalità di autorizzazione a parte le [azioni che nessuna modalità approva automaticamente](/docs/it/permission-modes.md#actions-no-mode-auto-approves)60* `permissionMode: 'bypassPermissions'`, che approva automaticamente ogni chiamata che raggiunge il passaggio della modalità di autorizzazione a parte le [azioni che nessuna modalità approva automaticamente](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves)
61* Ogni voce `allowedTools` semplice come `"Read"`, che approva automaticamente l'intero strumento prima che il callback venga consultato, a parte le [azioni che nessuna modalità approva automaticamente](/docs/it/permission-modes.md#actions-no-mode-auto-approves) e le [letture da percorsi di rete](/docs/it/permissions.md#network-paths)61* Ogni voce `allowedTools` semplice come `"Read"`, che approva automaticamente l'intero strumento prima che il callback venga consultato, a parte le [azioni che nessuna modalità approva automaticamente](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves) e le [letture da percorsi di rete](https://code.claude.com/docs/it/permissions.md#network-paths)
62 62
63Le voci con uno specificatore come `Bash(ls *)` e la modalità `acceptEdits` non lo attivano, e le regole allow provenienti da file di impostazioni non sono visibili al controllo.63Le voci con uno specificatore come `Bash(ls *)` e la modalità `acceptEdits` non lo attivano, e le regole allow provenienti da file di impostazioni non sono visibili al controllo.
64 64
65Ascoltate con `process.on('warning', ...)` e abbinate il codice per registrarlo o sopprimerlo. Per controllare ogni chiamata di strumento indipendentemente dalla modalità e dalle regole, utilizzate invece un [hook `PreToolUse`](/docs/it/agent-sdk/hooks).65Ascoltate con `process.on('warning', ...)` e abbinate il codice per registrarlo o sopprimerlo. Per controllare ogni chiamata di strumento indipendentemente dalla modalità e dalle regole, utilizzate invece un [hook `PreToolUse`](https://code.claude.com/docs/it/agent-sdk/hooks).
66 66
67Questa pagina si concentra su **regole allow e deny** e **modalità di autorizzazione**. Per gli altri passaggi:67Questa pagina si concentra su **regole allow e deny** e **modalità di autorizzazione**. Per gli altri passaggi:
68 68
69* **Hooks:** eseguire codice personalizzato per consentire, negare o modificare le richieste di strumenti. Vedere [Controllare l'esecuzione con gli hook](/docs/it/agent-sdk/hooks.md).69* **Hooks:** eseguire codice personalizzato per consentire, negare o modificare le richieste di strumenti. Vedere [Controllare l'esecuzione con gli hook](https://code.claude.com/docs/it/agent-sdk/hooks.md).
70* **Callback canUseTool:** richiedere l'approvazione degli utenti in fase di esecuzione, quando nessun passaggio precedente risolve la chiamata. Vedere [Gestire le approvazioni e l'input dell'utente](/docs/it/agent-sdk/user-input.md).70* **Callback canUseTool:** richiedere l'approvazione degli utenti in fase di esecuzione, quando nessun passaggio precedente risolve la chiamata. Vedere [Gestire le approvazioni e l'input dell'utente](https://code.claude.com/docs/it/agent-sdk/user-input.md).
71 71
72## Regole allow e deny72## Regole allow e deny
73 73
74`allowed_tools` e `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) aggiungono voci agli elenchi di regole allow e deny nel flusso di valutazione sopra descritto. Se nominate uno degli [strumenti di tracciamento delle attività](/docs/it/agent-sdk/todo-tracking.md#model-availability) in `allowed_tools`, Claude Code abilita anche quegli strumenti per la sessione. Qualsiasi altro strumento non elencato in `allowed_tools` è ancora disponibile per Claude, e una chiamata ad esso che necessita di approvazione passa attraverso la modalità di autorizzazione. Le regole deny si comportano diversamente a seconda che nominino uno strumento o limitino un modello all'interno di uno.74`allowed_tools` e `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) aggiungono voci agli elenchi di regole allow e deny nel flusso di valutazione sopra descritto. Se nominate uno degli [strumenti di tracciamento delle attività](https://code.claude.com/docs/it/agent-sdk/todo-tracking.md#model-availability) in `allowed_tools`, Claude Code abilita anche quegli strumenti per la sessione. Qualsiasi altro strumento non elencato in `allowed_tools` è ancora disponibile per Claude, e una chiamata ad esso che necessita di approvazione passa attraverso la modalità di autorizzazione. Le regole deny si comportano diversamente a seconda che nominino uno strumento o limitino un modello all'interno di uno.
75 75
76| Opzione | Effetto |76| Opzione | Effetto |
77| :- | :- |77| :- | :- |
78| `allowed_tools=["Read", "Grep"]` | `Read` e `Grep` sono approvati automaticamente, a parte le [letture da percorsi di rete](/docs/it/permissions.md#network-paths). Gli altri strumenti non elencati qui esistono ancora, e le chiamate ad essi che necessitano di approvazione passano alla modalità di permesso e a `canUseTool`. |78| `allowed_tools=["Read", "Grep"]` | `Read` e `Grep` sono approvati automaticamente, a parte le [letture da percorsi di rete](https://code.claude.com/docs/it/permissions.md#network-paths). Gli altri strumenti non elencati qui esistono ancora, e le chiamate ad essi che necessitano di approvazione passano alla modalità di permesso e a `canUseTool`. |
79| `disallowed_tools=["Bash"]` | La definizione dello strumento `Bash` viene rimossa dalla richiesta. Claude non vede lo strumento e non può tentarlo. |79| `disallowed_tools=["Bash"]` | La definizione dello strumento `Bash` viene rimossa dalla richiesta. Claude non vede lo strumento e non può tentarlo. |
80| `disallowed_tools=["Bash(rm *)"]` | `Bash` rimane disponibile. Le chiamate che corrispondono a `rm *` [come scritto](/docs/it/permissions.md#bash-rule-limits) vengono negate in ogni modalità di autorizzazione, inclusa `bypassPermissions`. Le altre chiamate `Bash`, incluso `/bin/rm`, passano attraverso la modalità di autorizzazione. |80| `disallowed_tools=["Bash(rm *)"]` | `Bash` rimane disponibile. Le chiamate che corrispondono a `rm *` [come scritto](https://code.claude.com/docs/it/permissions.md#bash-rule-limits) vengono negate in ogni modalità di autorizzazione, inclusa `bypassPermissions`. Le altre chiamate `Bash`, incluso `/bin/rm`, passano attraverso la modalità di autorizzazione. |
81| `disallowed_tools=["*"]` | Ogni definizione di strumento viene rimossa dalla richiesta. I glob dei nomi degli strumenti sono supportati nelle regole deny: `"*"` corrisponde a ogni strumento e `"mcp__*"` corrisponde a ogni strumento MCP su tutti i server. |81| `disallowed_tools=["*"]` | Ogni definizione di strumento viene rimossa dalla richiesta. I glob dei nomi degli strumenti sono supportati nelle regole deny: `"*"` corrisponde a ogni strumento e `"mcp__*"` corrisponde a ogni strumento MCP su tutti i server. |
82 82
83Le regole allow accettano glob dei nomi degli strumenti solo dopo un prefisso letterale `mcp__<server>__`. Il segmento del server deve essere privo di glob in modo che la regola nomini un server specifico che hai configurato: `mcp__puppeteer__*` corrisponde a ogni strumento dal server `puppeteer`, e `mcp__github__get_*` corrisponde ai suoi strumenti `get_`. Una voce non ancorata come `allowed_tools=["*"]` o `allowed_tools=["mcp__*"]` viene ignorata e non approva automaticamente nulla.83Le regole allow accettano glob dei nomi degli strumenti solo dopo un prefisso letterale `mcp__<server>__`. Il segmento del server deve essere privo di glob in modo che la regola nomini un server specifico che hai configurato: `mcp__puppeteer__*` corrisponde a ogni strumento dal server `puppeteer`, e `mcp__github__get_*` corrisponde ai suoi strumenti `get_`. Una voce non ancorata come `allowed_tools=["*"]` o `allowed_tools=["mcp__*"]` viene ignorata e non approva automaticamente nulla.
84 84
85Le regole limitate per `Read` e `Edit` accettano un modello di percorso. Le regole `Edit(path)` governano tutti gli strumenti integrati che scrivono file, inclusi `Write` e `NotebookEdit`; una regola `Write(path)` non viene mai abbinata dai controlli di autorizzazione dei file.85Le regole limitate per `Read` e `Edit` accettano un modello di percorso. Le regole `Edit(path)` governano tutti gli strumenti integrati che scrivono file, inclusi `Write` e `NotebookEdit`; una regola `Write(path)` non viene mai abbinata dai controlli di autorizzazione dei file.
86 86
87Utilizzate `//path` per un percorso del filesystem assoluto: una regola deny `Edit(//secrets/**)` blocca le scritture ovunque sotto `/secrets` su disco. Con una singola barra iniziale, `Edit(/secrets/**)` si ancora alla fonte della regola. Per le regole passate attraverso `allowed_tools` o `disallowed_tools`, ciò significa la directory di lavoro della sessione, quindi la regola non blocca `/secrets` su disco. Consultate [Regole Read e Edit](/docs/it/permissions.md#read-and-edit) per i quattro moduli di ancoraggio e come le regole dai file di impostazioni si risolvono.87Utilizzate `//path` per un percorso del filesystem assoluto: una regola deny `Edit(//secrets/**)` blocca le scritture ovunque sotto `/secrets` su disco. Con una singola barra iniziale, `Edit(/secrets/**)` si ancora alla fonte della regola. Per le regole passate attraverso `allowed_tools` o `disallowed_tools`, ciò significa la directory di lavoro della sessione, quindi la regola non blocca `/secrets` su disco. Consultate [Regole Read e Edit](https://code.claude.com/docs/it/permissions.md#read-and-edit) per i quattro moduli di ancoraggio e come le regole dai file di impostazioni si risolvono.
88 88
89> [!WARNING]89> [!WARNING]
90>90>
91> **Gli strumenti approvati automaticamente non raggiungono mai `canUseTool`.** Una chiamata a uno strumento approvata in qualsiasi fase precedente, da `acceptEdits` o `bypassPermissions`, o da una regola allow, salta il callback `canUseTool`, quindi i controlli di autorizzazione che inserite lì vengono silenziosamente ignorati per quello strumento.91> **Gli strumenti approvati automaticamente non raggiungono mai `canUseTool`.** Una chiamata a uno strumento approvata in qualsiasi fase precedente, da `acceptEdits` o `bypassPermissions`, o da una regola allow, salta il callback `canUseTool`, quindi i controlli di autorizzazione che inserite lì vengono silenziosamente ignorati per quello strumento.
92>92>
93> Nessuna regola allow approva automaticamente `AskUserQuestion`, gli strumenti MCP contrassegnati [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool), gli strumenti dei connettori [che la tua organizzazione ha impostato su `ask`](/docs/it/mcp#organization-controls-on-connector-tools), o le [rimozioni di percorsi critici](/docs/it/permission-modes.md#critical-paths) riconosciute con `rm` e `rmdir`. In modalità `dontAsk` Claude Code nega queste chiamate senza invocare il callback. In altre modalità le prime tre raggiungono il callback. La [tabella delle modalità per i percorsi critici](/docs/it/permission-modes.md#critical-path-removals-in-each-permission-mode) elenca cosa fa ciascuna modalità con una rimozione di percorso critico. Il controllo che riconosce queste rimozioni [può non rilevare alcuni comandi](/docs/it/permission-modes.md#critical-paths).93> Nessuna regola allow approva automaticamente `AskUserQuestion`, gli strumenti MCP contrassegnati [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/it/mcp#require-approval-for-a-specific-tool), gli strumenti dei connettori [che la tua organizzazione ha impostato su `ask`](https://code.claude.com/docs/it/mcp#organization-controls-on-connector-tools), o le [rimozioni di percorsi critici](https://code.claude.com/docs/it/permission-modes.md#critical-paths) riconosciute con `rm` e `rmdir`. In modalità `dontAsk` Claude Code nega queste chiamate senza invocare il callback. In altre modalità le prime tre raggiungono il callback. La [tabella delle modalità per i percorsi critici](https://code.claude.com/docs/it/permission-modes.md#critical-path-removals-in-each-permission-mode) elenca cosa fa ciascuna modalità con una rimozione di percorso critico. Il controllo che riconosce queste rimozioni [può non rilevare alcuni comandi](https://code.claude.com/docs/it/permission-modes.md#critical-paths).
94>94>
95> La copertura dipende dalla forma della voce: un nome semplice come `Read` o `mcp__github__get_issue` approva automaticamente ogni chiamata a quello strumento a parte tali eccezioni e le [letture da percorsi di rete](/docs/it/permissions.md#network-paths), mentre una regola limitata come `Bash(npm test *)` approva automaticamente solo le chiamate corrispondenti, e le altre chiamate `Bash` che necessitano di approvazione passano comunque al callback. Per i controlli che devono essere eseguiti su ogni chiamata a uno strumento, usa un [hook `PreToolUse`](/docs/it/agent-sdk/hooks): gli hook vengono eseguiti prima di ogni altro passaggio, e una negazione da parte di un hook si applica anche in modalità `bypassPermissions`.95> La copertura dipende dalla forma della voce: un nome semplice come `Read` o `mcp__github__get_issue` approva automaticamente ogni chiamata a quello strumento a parte tali eccezioni e le [letture da percorsi di rete](https://code.claude.com/docs/it/permissions.md#network-paths), mentre una regola limitata come `Bash(npm test *)` approva automaticamente solo le chiamate corrispondenti, e le altre chiamate `Bash` che necessitano di approvazione passano comunque al callback. Per i controlli che devono essere eseguiti su ogni chiamata a uno strumento, usa un [hook `PreToolUse`](https://code.claude.com/docs/it/agent-sdk/hooks): gli hook vengono eseguiti prima di ogni altro passaggio, e una negazione da parte di un hook si applica anche in modalità `bypassPermissions`.
96 96
97Per un agente bloccato, abbinate `allowedTools` con `permissionMode: "dontAsk"`:97Per un agente bloccato, abbinate `allowedTools` con `permissionMode: "dontAsk"`:
98 98
103};103};
104```104```
105 105
106Gli strumenti elencati sono approvati, a parte le [azioni che nessuna modalità approva automaticamente](/docs/it/permission-modes.md#actions-no-mode-auto-approves) e le [letture da percorsi di rete](/docs/it/permissions.md#network-paths). Ogni altra chiamata che comporterebbe una richiesta di permesso viene invece negata, anche se un [mod](/docs/it/plugins/mods/overview.md) che hai installato può comunque approvare [alcune di queste chiamate](/docs/it/permissions.md#precedence-among-rules-hooks-and-mods).106Gli strumenti elencati sono approvati, a parte le [azioni che nessuna modalità approva automaticamente](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves) e le [letture da percorsi di rete](https://code.claude.com/docs/it/permissions.md#network-paths). Ogni altra chiamata che comporterebbe una richiesta di permesso viene invece negata, anche se un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che hai installato può comunque approvare [alcune di queste chiamate](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods).
107 107
108Le chiamate che non necessitano di approvazione in modalità `default` vengono eseguite indipendentemente dal fatto che tu le elenchi. Includono i [comandi Bash di sola lettura](/docs/it/permissions.md#read-only-commands), strumenti come `Agent` che non chiedono prima di essere eseguiti, e letture di file all'interno delle tue directory di lavoro. Per rimuovere completamente uno strumento dalla richiesta, aggiungi il suo nome semplice a `disallowedTools`.108Le chiamate che non necessitano di approvazione in modalità `default` vengono eseguite indipendentemente dal fatto che tu le elenchi. Includono i [comandi Bash di sola lettura](https://code.claude.com/docs/it/permissions.md#read-only-commands), strumenti come `Agent` che non chiedono prima di essere eseguiti, e letture di file all'interno delle tue directory di lavoro. Per rimuovere completamente uno strumento dalla richiesta, aggiungi il suo nome semplice a `disallowedTools`.
109 109
110> [!WARNING]110> [!WARNING]
111>111>
112> **`allowed_tools` non vincola `bypassPermissions`.** `allowed_tools` pre-approva gli strumenti che elencate. Gli altri strumenti non elencati non vengono abbinati da alcuna regola allow e passano attraverso la modalità di autorizzazione, dove `bypassPermissions` li approva. L'impostazione di `allowed_tools=["Read"]` insieme a `permission_mode="bypassPermissions"` approva comunque ogni strumento, inclusi `Bash`, `Write` e `Edit`. Se avete bisogno di `bypassPermissions` ma volete che strumenti specifici siano bloccati, utilizzate `disallowed_tools`.112> **`allowed_tools` non vincola `bypassPermissions`.** `allowed_tools` pre-approva gli strumenti che elencate. Gli altri strumenti non elencati non vengono abbinati da alcuna regola allow e passano attraverso la modalità di autorizzazione, dove `bypassPermissions` li approva. L'impostazione di `allowed_tools=["Read"]` insieme a `permission_mode="bypassPermissions"` approva comunque ogni strumento, inclusi `Bash`, `Write` e `Edit`. Se avete bisogno di `bypassPermissions` ma volete che strumenti specifici siano bloccati, utilizzate `disallowed_tools`.
113 113
114Potete anche configurare le regole allow, deny e ask in modo dichiarativo in `.claude/settings.json`. Queste regole vengono lette quando la fonte di impostazione `project` è abilitata, il che avviene per le opzioni predefinite di `query()`. Se impostate esplicitamente `setting_sources` (TypeScript: `settingSources`), includete `"project"` affinché si applichino. Consultate [Impostazioni di autorizzazione](/docs/it/settings-reference.md#permission-settings) per la sintassi delle regole.114Potete anche configurare le regole allow, deny e ask in modo dichiarativo in `.claude/settings.json`. Queste regole vengono lette quando la fonte di impostazione `project` è abilitata, il che avviene per le opzioni predefinite di `query()`. Se impostate esplicitamente `setting_sources` (TypeScript: `settingSources`), includete `"project"` affinché si applichino. Consultate [Impostazioni di autorizzazione](https://code.claude.com/docs/it/settings-reference.md#permission-settings) per la sintassi delle regole.
115 115
116## Modalità di autorizzazione116## Modalità di autorizzazione
117 117
118Le modalità di autorizzazione forniscono un controllo globale su come Claude utilizza gli strumenti. È possibile impostare la modalità di autorizzazione quando si chiama `query()` o modificarla dinamicamente durante le sessioni di streaming.118Le modalità di autorizzazione forniscono un controllo globale su come Claude utilizza gli strumenti. È possibile impostare la modalità di autorizzazione quando si chiama `query()` o modificarla dinamicamente durante le sessioni di streaming.
119 119
120Con Claude Code v2.1.302 o successivo, la tua app si avvia in modalità `default` a meno che tu non imposti una modalità di permesso o che non ne riceva una da [`permissions.defaultMode`](/docs/it/settings-reference#permissions-defaultmode) nei suoi file di impostazioni. In modalità `default`, Claude Code nega qualsiasi chiamata a uno strumento che richieda approvazione, a meno che tu non la approvi tramite una regola allow, un hook, un callback `canUseTool` o uno strumento per le richieste di permesso. Se le chiamate agli strumenti vengono negate, consulta [Chiamate agli strumenti negate in `claude -p` e nelle esecuzioni dell'Agent SDK](/docs/it/permission-modes#which-mode-a-non-interactive-run-starts-in).120Con Claude Code v2.1.302 o successivo, la tua app si avvia in modalità `default` a meno che tu non imposti una modalità di permesso o che non ne riceva una da [`permissions.defaultMode`](https://code.claude.com/docs/it/settings-reference#permissions-defaultmode) nei suoi file di impostazioni. In modalità `default`, Claude Code nega qualsiasi chiamata a uno strumento che richieda approvazione, a meno che tu non la approvi tramite una regola allow, un hook, un callback `canUseTool` o uno strumento per le richieste di permesso. Se le chiamate agli strumenti vengono negate, consulta [Chiamate agli strumenti negate in `claude -p` e nelle esecuzioni dell'Agent SDK](https://code.claude.com/docs/it/permission-modes#which-mode-a-non-interactive-run-starts-in).
121 121
122### Modalità disponibili122### Modalità disponibili
123 123
126| Modalità | Descrizione | Comportamento dello strumento |126| Modalità | Descrizione | Comportamento dello strumento |
127| :- | :- | :- |127| :- | :- | :- |
128| `default` | Comportamento di autorizzazione standard | Nessuna approvazione automatica basata sulla modalità; le chiamate che richiedono approvazione e non corrispondono a nessuna regola allow attivano il callback `canUseTool` |128| `default` | Comportamento di autorizzazione standard | Nessuna approvazione automatica basata sulla modalità; le chiamate che richiedono approvazione e non corrispondono a nessuna regola allow attivano il callback `canUseTool` |
129| `dontAsk` | Nega invece di chiedere | Qualsiasi chiamata che altrimenti genererebbe una richiesta di conferma viene negata senza chiamare `canUseTool`, anche se un [mod](/docs/it/plugins/mods/overview.md) che hai installato può comunque approvare [alcune di queste chiamate](/docs/it/permissions.md#precedence-among-rules-hooks-and-mods). Le chiamate approvate da `allowed_tools` o da regole allow in `settings.json` vengono eseguite, così come le chiamate che non richiedono approvazione in modalità `default`. Alcune chiamate, come le [letture da percorsi di rete](/docs/it/permissions.md#network-paths), vengono negate anche quando `allowed_tools` o una regola allow corrisponde. Per l'elenco, consulta [Modalità non chiedere](#don’t-ask-mode-dontask) |129| `dontAsk` | Nega invece di chiedere | Qualsiasi chiamata che altrimenti genererebbe una richiesta di conferma viene negata senza chiamare `canUseTool`, anche se un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che hai installato può comunque approvare [alcune di queste chiamate](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods). Le chiamate approvate da `allowed_tools` o da regole allow in `settings.json` vengono eseguite, così come le chiamate che non richiedono approvazione in modalità `default`. Alcune chiamate, come le [letture da percorsi di rete](https://code.claude.com/docs/it/permissions.md#network-paths), vengono negate anche quando `allowed_tools` o una regola allow corrisponde. Per l'elenco, consulta [Modalità non chiedere](#don’t-ask-mode-dontask) |
130| `acceptEdits` | Accetta automaticamente le modifiche ai file | Le modifiche ai file e le [operazioni del filesystem](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, ecc.) vengono approvate automaticamente |130| `acceptEdits` | Accetta automaticamente le modifiche ai file | Le modifiche ai file e le [operazioni del filesystem](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, ecc.) vengono approvate automaticamente |
131| `bypassPermissions` | Ignora i controlli di autorizzazione | Gli strumenti vengono eseguiti senza richieste di autorizzazione, ad eccezione delle [azioni che nessuna modalità approva automaticamente](/docs/it/permission-modes.md#actions-no-mode-auto-approves). Utilizzare con cautela |131| `bypassPermissions` | Ignora i controlli di autorizzazione | Gli strumenti vengono eseguiti senza richieste di autorizzazione, ad eccezione delle [azioni che nessuna modalità approva automaticamente](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves). Utilizzare con cautela |
132| `plan` | Modalità di pianificazione | Claude esplora e pianifica senza modificare i file sorgente; le modifiche ai file non vengono mai approvate automaticamente e richiedono il callback `canUseTool` |132| `plan` | Modalità di pianificazione | Claude esplora e pianifica senza modificare i file sorgente; le modifiche ai file non vengono mai approvate automaticamente e richiedono il callback `canUseTool` |
133| `auto` | Approvazioni classificate dal modello | Un classificatore del modello esamina azioni come comandi shell e richieste di rete, consentendo o bloccando ciascuna che esamina. Vedere [Modalità Auto](/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode) per la disponibilità e l'ordine di decisione |133| `auto` | Approvazioni classificate dal modello | Un classificatore del modello esamina azioni come comandi shell e richieste di rete, consentendo o bloccando ciascuna che esamina. Vedere [Modalità Auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode) per la disponibilità e l'ordine di decisione |
134 134
135> [!WARNING]135> [!WARNING]
136>136>
137> **Ereditarietà dei subagent:** Un subagent viene eseguito nella modalità di permesso della sessione padre a meno che tu non imposti `permissionMode` sulla sua [`AgentDefinition`](/docs/it/agent-sdk/typescript#agentdefinition) e la sessione padre sia in modalità `default`, `dontAsk` o `plan`. Anche in questo caso, Claude Code non applica mai un valore `"bypassPermissions"` e applica un valore `"auto"` solo quando la [modalità auto è disponibile](/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode) per quel subagent. Un subagent viene eseguito in modalità `bypassPermissions` solo quando lo è la sessione padre stessa. L'eccezione `bypassPermissions` richiede Claude Code v2.1.267 o successivo.137> **Ereditarietà dei subagent:** Se la tua sessione principale è in [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode), un subagent la cui [`AgentDefinition`](https://code.claude.com/docs/it/agent-sdk/typescript#agentdefinition) imposta `permissionMode: "acceptEdits"` viene comunque eseguito in plan mode. Le chiamate `Edit` e `Write` di quel subagent sui tuoi file sorgente passano comunque al tuo callback `canUseTool`. Il plan mode vale anche per i subagent che definisci, così che affidare il lavoro a uno di essi non permetta di aggirare la revisione preliminare del piano.
138>138>
139> I subagent possono avere prompt di sistema diversi e comportamenti meno vincolati rispetto all'agente principale, quindi ereditare `bypassPermissions` concede loro accesso completo e autonomo al sistema. Le [azioni che nessuna modalità approva automaticamente](/docs/it/permission-modes.md#actions-no-mode-auto-approves) si applicano comunque.139> Il subagent eredita `plan`, `acceptEdits`, `auto` o `bypassPermissions` dalla sessione principale e, con una sessione principale in modalità `default` o `dontAsk`, viene eseguito nella modalità che imposti. Anche in questo caso, Claude Code non applica mai un valore `"bypassPermissions"` e applica un valore `"auto"` solo quando la [modalità auto è disponibile](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode) per quel subagent. L'eccezione `bypassPermissions` richiede Claude Code v2.1.267 o successivo.
140>
141> I subagent possono avere prompt di sistema diversi e comportamenti meno vincolati rispetto all'agente principale, quindi ereditare `bypassPermissions` concede loro accesso completo e autonomo al sistema. Le [azioni che nessuna modalità approva automaticamente](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves) si applicano comunque.
140 142
141### Impostare la modalità di autorizzazione143### Impostare la modalità di autorizzazione
142 144
253 255
254* Lavora su un percorso al di fuori di tale ambito256* Lavora su un percorso al di fuori di tale ambito
255* Scrive in un percorso protetto257* Scrive in un percorso protetto
256* Rimuove con `rm` o `rmdir` un percorso che Claude Code riconosce come [percorso critico](/docs/it/permission-modes.md#critical-paths)258* Rimuove con `rm` o `rmdir` un percorso che Claude Code riconosce come [percorso critico](https://code.claude.com/docs/it/permission-modes.md#critical-paths)
257 259
258**Utilizzare quando:** si confida nelle modifiche di Claude e si desidera un'iterazione più veloce, ad esempio durante la prototipazione o quando si lavora in una directory isolata.260**Utilizzare quando:** si confida nelle modifiche di Claude e si desidera un'iterazione più veloce, ad esempio durante la prototipazione o quando si lavora in una directory isolata.
259 261
260#### Modalità non chiedere (`dontAsk`)262#### Modalità non chiedere (`dontAsk`)
261 263
262Converte qualsiasi richiesta di permesso in una negazione, senza chiamare `canUseTool`, anche se un [mod](/docs/it/plugins/mods/overview.md) che hai installato può comunque approvare [alcune di queste chiamate](/docs/it/permissions.md#precedence-among-rules-hooks-and-mods). Gli strumenti pre-approvati da `allowed_tools`, da regole allow in `settings.json` o da un hook vengono eseguiti normalmente. Vengono eseguite anche le chiamate che non richiedono approvazione in modalità `default`, come le letture di file all'interno delle tue directory di lavoro e le chiamate a `Agent`.264Converte qualsiasi richiesta di permesso in una negazione, senza chiamare `canUseTool`, anche se un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che hai installato può comunque approvare [alcune di queste chiamate](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods). Gli strumenti pre-approvati da `allowed_tools`, da regole allow in `settings.json` o da un hook vengono eseguiti normalmente. Vengono eseguite anche le chiamate che non richiedono approvazione in modalità `default`, come le letture di file all'interno delle tue directory di lavoro e le chiamate a `Agent`.
263 265
264Gli strumenti connettore [che la tua organizzazione ha impostato su `ask`](/docs/it/mcp#organization-controls-on-connector-tools), gli strumenti che richiedono interazione dell'utente, le [letture da percorsi di rete](/docs/it/permissions.md#network-paths) e le [rimozioni di percorsi critici](/docs/it/permission-modes.md#critical-paths) riconosciute vengono negati anche quando una regola allow corrisponde. Nemmeno un'approvazione da parte di un hook `PreToolUse` sblocca una rimozione riconosciuta di un percorso critico o una lettura da un percorso di rete. Il controllo che riconosce queste rimozioni [può non individuare alcuni comandi](/docs/it/permission-modes.md#critical-paths).266Gli strumenti connettore [che la tua organizzazione ha impostato su `ask`](https://code.claude.com/docs/it/mcp#organization-controls-on-connector-tools), gli strumenti che richiedono interazione dell'utente, le [letture da percorsi di rete](https://code.claude.com/docs/it/permissions.md#network-paths) e le [rimozioni di percorsi critici](https://code.claude.com/docs/it/permission-modes.md#critical-paths) riconosciute vengono negati anche quando una regola allow corrisponde. Nemmeno un'approvazione da parte di un hook `PreToolUse` sblocca una rimozione riconosciuta di un percorso critico o una lettura da un percorso di rete. Il controllo che riconosce queste rimozioni [può non individuare alcuni comandi](https://code.claude.com/docs/it/permission-modes.md#critical-paths).
265 267
266**Utilizzare quando:** si desidera una superficie di strumenti fissa ed esplicita per un agente headless e si preferisce un rifiuto netto rispetto all'affidamento silenzioso all'assenza di `canUseTool`.268**Utilizzare quando:** si desidera una superficie di strumenti fissa ed esplicita per un agente headless e si preferisce un rifiuto netto rispetto all'affidamento silenzioso all'assenza di `canUseTool`.
267 269
268#### Modalità ignora autorizzazioni (`bypassPermissions`)270#### Modalità ignora autorizzazioni (`bypassPermissions`)
269 271
270Approva automaticamente gli usi degli strumenti senza richiedere conferma, ad eccezione dei casi elencati nell'avviso di seguito. I hook vengono comunque eseguiti e possono bloccare le operazioni se necessario. Su Linux e macOS, Claude Code rifiuta di avviarsi in questa modalità come root o sotto `sudo` al di fuori di una [sandbox riconosciuta](/docs/it/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), e la query non riesce prima del primo turno.272Approva automaticamente gli usi degli strumenti senza richiedere conferma, ad eccezione dei casi elencati nell'avviso di seguito. I hook vengono comunque eseguiti e possono bloccare le operazioni se necessario. Su Linux e macOS, Claude Code rifiuta di avviarsi in questa modalità come root o sotto `sudo` al di fuori di una [sandbox riconosciuta](https://code.claude.com/docs/it/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), e la query non riesce prima del primo turno.
271 273
272> [!WARNING]274> [!WARNING]
273>275>
276> `allowed_tools` non vincola questa modalità. Ogni strumento è approvato, non solo quelli che avete elencato. Questi controlli si applicano comunque:278> `allowed_tools` non vincola questa modalità. Ogni strumento è approvato, non solo quelli che avete elencato. Questi controlli si applicano comunque:
277>279>
278> * Le regole deny, le regole esplicite `ask` e gli hook vengono valutati prima del controllo della modalità e possono comunque bloccare uno strumento.280> * Le regole deny, le regole esplicite `ask` e gli hook vengono valutati prima del controllo della modalità e possono comunque bloccare uno strumento.
279> * Gli strumenti connettore [che la tua organizzazione ha impostato su `ask`](/docs/it/mcp#organization-controls-on-connector-tools), gli strumenti che richiedono interazione dell'utente e le [rimozioni di percorsi critici](/docs/it/permission-modes.md#critical-paths) riconosciute continuano a passare al tuo callback `canUseTool`. Il controllo che riconosce queste rimozioni [può non individuare alcuni comandi](/docs/it/permission-modes.md#critical-paths).281> * Gli strumenti connettore [che la tua organizzazione ha impostato su `ask`](https://code.claude.com/docs/it/mcp#organization-controls-on-connector-tools), gli strumenti che richiedono interazione dell'utente e le [rimozioni di percorsi critici](https://code.claude.com/docs/it/permission-modes.md#critical-paths) riconosciute continuano a passare al tuo callback `canUseTool`. Il controllo che riconosce queste rimozioni [può non individuare alcuni comandi](https://code.claude.com/docs/it/permission-modes.md#critical-paths).
280> * Le [protezioni della messaggistica tra sessioni](/docs/it/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) si applicano comunque.282> * Le [protezioni della messaggistica tra sessioni](https://code.claude.com/docs/it/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) si applicano comunque.
281 283
282#### Modalità pianificazione (`plan`)284#### Modalità pianificazione (`plan`)
283 285
287 289
288Nell'SDK TypeScript, se si imposta `allowDangerouslySkipPermissions: true` insieme a `permissionMode: 'plan'`, le modifiche ai file e i comandi shell che modificano i file raggiungono comunque il callback `canUseTool`. L'opzione consente di passare a `bypassPermissions` in seguito con `setPermissionMode()`.290Nell'SDK TypeScript, se si imposta `allowDangerouslySkipPermissions: true` insieme a `permissionMode: 'plan'`, le modifiche ai file e i comandi shell che modificano i file raggiungono comunque il callback `canUseTool`. L'opzione consente di passare a `bypassPermissions` in seguito con `setPermissionMode()`.
289 291
290Claude può utilizzare `AskUserQuestion` per chiarire i requisiti prima di finalizzare il piano. Vedere [Gestire approvazioni e input dell'utente](/docs/it/agent-sdk/user-input.md#handle-clarifying-questions) per la gestione di queste richieste.292Claude può utilizzare `AskUserQuestion` per chiarire i requisiti prima di finalizzare il piano. Vedere [Gestire approvazioni e input dell'utente](https://code.claude.com/docs/it/agent-sdk/user-input.md#handle-clarifying-questions) per la gestione di queste richieste.
291 293
292**Utilizzare quando:** si desidera che Claude proponga modifiche senza eseguirle, ad esempio durante la revisione del codice o quando è necessario approvare le modifiche prima che vengano apportate.294**Utilizzare quando:** si desidera che Claude proponga modifiche senza eseguirle, ad esempio durante la revisione del codice o quando è necessario approvare le modifiche prima che vengano apportate.
293 295
294#### Modalità auto (`auto`)296#### Modalità auto (`auto`)
295 297
296Un modello classificatore esamina azioni come comandi shell e richieste di rete prima che vengano eseguite, e consente o blocca ciascuna di quelle che esamina. Per i modelli e i provider richiesti dalla modalità auto e l'ordine in cui valuta le azioni, consulta [Eliminare le richieste di permesso con la modalità auto](/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode).298Un modello classificatore esamina azioni come comandi shell e richieste di rete prima che vengano eseguite, e consente o blocca ciascuna di quelle che esamina. Per i modelli e i provider richiesti dalla modalità auto e l'ordine in cui valuta le azioni, consulta [Eliminare le richieste di permesso con la modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode).
297 299
298Se passi una sessione in modalità auto a un modello che la modalità auto non supporta, usando [`set_model()`](/docs/it/agent-sdk/python#claudesdkclient), [`setModel()`](/docs/it/agent-sdk/typescript#query-object) o [`applyFlagSettings()`](/docs/it/agent-sdk/typescript#applyflagsettings), la sessione passa alla modalità `default`:300Se passi una sessione in modalità auto a un modello che la modalità auto non supporta, usando [`set_model()`](https://code.claude.com/docs/it/agent-sdk/python#claudesdkclient), [`setModel()`](https://code.claude.com/docs/it/agent-sdk/typescript#query-object) o [`applyFlagSettings()`](https://code.claude.com/docs/it/agent-sdk/typescript#applyflagsettings), la sessione passa alla modalità `default`:
299 301
300* **Cosa vedi**: un messaggio `system` con sottotipo `status` e `permissionMode` impostato su `"default"`, che il TypeScript SDK tipizza come [`SDKStatusMessage`](/docs/it/agent-sdk/typescript#sdkstatusmessage). Da quel momento, le chiamate che richiedono approvazione e non corrispondono a nessuna regola allow raggiungono il tuo callback `canUseTool`.302* **Cosa vedi**: un messaggio `system` con sottotipo `status` e `permissionMode` impostato su `"default"`, che il TypeScript SDK tipizza come [`SDKStatusMessage`](https://code.claude.com/docs/it/agent-sdk/typescript#sdkstatusmessage). Da quel momento, le chiamate che richiedono approvazione e non corrispondono a nessuna regola allow raggiungono il tuo callback `canUseTool`.
301* **Per tornare alla modalità auto**: passa a un modello supportato, quindi chiama `set_permission_mode("auto")` o `setPermissionMode("auto")`. Se ripristini il modello senza effettuare quella chiamata, la sessione rimane in modalità `default`. Mentre il modello non supportato è attivo, la chiamata non riesce con `Cannot set permission mode to auto: auto mode unavailable for this model`.303* **Per tornare alla modalità auto**: passa a un modello supportato, quindi chiama `set_permission_mode("auto")` o `setPermissionMode("auto")`. Se ripristini il modello senza effettuare quella chiamata, la sessione rimane in modalità `default`. Mentre il modello non supportato è attivo, la chiamata non riesce con `Cannot set permission mode to auto: auto mode unavailable for this model`.
302 304
303Il passaggio alla modalità `default` dopo una chiamata a `set_model()`, `setModel()` o `applyFlagSettings()` richiede Claude Code v2.1.299 o successivo.305Il passaggio alla modalità `default` dopo una chiamata a `set_model()`, `setModel()` o `applyFlagSettings()` richiede Claude Code v2.1.299 o successivo.
306 308
307Per gli altri passaggi nel flusso di valutazione delle autorizzazioni:309Per gli altri passaggi nel flusso di valutazione delle autorizzazioni:
308 310
309* [Gestire approvazioni e input dell'utente](/docs/it/agent-sdk/user-input.md): prompt di approvazione interattivi e domande di chiarimento311* [Gestire approvazioni e input dell'utente](https://code.claude.com/docs/it/agent-sdk/user-input.md): prompt di approvazione interattivi e domande di chiarimento
310* [Guida hooks](/docs/it/agent-sdk/hooks.md): eseguire codice personalizzato nei punti chiave del ciclo di vita dell'agente312* [Guida hooks](https://code.claude.com/docs/it/agent-sdk/hooks.md): eseguire codice personalizzato nei punti chiave del ciclo di vita dell'agente
311* [Regole di autorizzazione](/docs/it/settings-reference.md#permission-settings): regole dichiarative di consentimento/negazione in `settings.json`313* [Regole di autorizzazione](https://code.claude.com/docs/it/settings-reference.md#permission-settings): regole dichiarative di consentimento/negazione in `settings.json`