Vai al contenuto
Capitolo 06 · 9 min

Guardrail e la configurazione da copiare e incollare

Diversi agenti in parallelo significano diverse cose che possono andare storte nello stesso momento. I permessi sono il modo per contenere il raggio del danno. Ecco le regole, poi un unico blocco da incollare per configurare tutto.

Più mani che si muovono insieme significano più modi di far cadere qualcosa. Chiudi a chiave i cassetti pericolosi prima che arrivi la squadra.

directsbounded byshipsAn orchestratorWorker agentsGuardrailsA result
An orchestrator directs worker agents within guardrails to ship a result.

Blinda i permessi

In `settings.json`, consenti gli strumenti di cui il team ha bisogno e nega quelli che fanno danni irreversibili. `defaultMode: "acceptEdits"` lascia gli agenti modificare senza una richiesta di conferma per ogni cambiamento, così il team non si ferma; la lista di deny è ciò che rende sicuro tutto questo.

jsonCopia il prompt
{
  "permissions": {
    "allow": [
      "Read", "Glob", "Grep", "Edit",
      "Write(src/**)", "Write(tests/**)",
      "Bash(npm test *)", "Bash(npx tsc *)",
      "Bash(git add *)", "Bash(git commit *)"
    ],
    "deny": [
      "Read(**/.env*)", "Read(**/.ssh/**)",
      "Bash(rm -rf *)", "Bash(sudo *)",
      "Bash(git push *)", "Bash(npm publish *)"
    ],
    "defaultMode": "acceptEdits"
  }
}

I pattern sono `Tool(glob)`: un singolo `*` corrisponde a un segmento, `**` è ricorsivo. `defaultMode` accetta anche altri valori (`default`, `plan` e altri), ma `acceptEdits` è quello adatto a un team in funzione.

La configurazione da copiare e incollare

Variabili d'ambiente per il profilo della tua shell:

bashCopia il prompt
# Add to ~/.zshrc or ~/.bashrc
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-6"
export CLAUDE_CODE_EFFORT_LEVEL=high
export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1

Un blocco minimo di guardrail per `settings.json`:

jsonCopia il prompt
{
  "permissions": {
    "allow": ["Read", "Glob", "Grep", "Edit", "Write(src/**)", "Write(tests/**)"],
    "deny": ["Read(**/.env*)", "Bash(rm -rf *)", "Bash(git push *)"],
    "defaultMode": "acceptEdits"
  }
}

Prima e dopo

  • Prima (da solo): un'attività alla volta; scrivi, revisioni, testi e fai commit in sequenza; una funzionalità in quattro parti richiede una giornata; il contesto si gonfia mentre cambi attività.
  • Dopo (con il team): backend, frontend, test e revisione corrono insieme; la stessa funzionalità è pronta in poche ore; ogni agente ha un contesto pulito e mirato; tu revisioni e fai merge.

Una riga per ciascuno

  • Consenti gli strumenti di cui il team ha bisogno; nega quelli irreversibili (rm -rf, git push, lettura dei segreti).
  • defaultMode: acceptEdits tiene il team in movimento; la lista di deny è ciò che lo rende sicuro.
  • La configurazione è un blocco di variabili d'ambiente più un blocco di permessi; nient'altro cambia nel tuo piano o nei tuoi strumenti.
Guardrail e la configurazione da copiare e incollare · Cours d'IA · SDEN