Saltar al contenido
Capítulo 06 · 9 min

Barandillas y la configuración para copiar y pegar

Varios agentes en paralelo significan varias cosas que pueden salir mal al mismo tiempo. Los permisos son la forma de mantener pequeño el radio de la explosión. Aquí van las reglas, y luego un único bloque que puedes pegar para configurarlo todo.

Más manos moviéndose a la vez son más formas de tirar algo al suelo. Atornilla los cajones peligrosos antes de que llegue la cuadrilla.

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

Cierra los permisos

En `settings.json`, permite las herramientas que el equipo necesita y deniega las que causan daños irreversibles. `defaultMode: "acceptEdits"` deja que los agentes editen sin una confirmación por cambio para que el equipo no se detenga; la lista de denegación es lo que hace que eso sea seguro.

jsonCopiar el 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"
  }
}

Los patrones son `Tool(glob)`: un solo `*` coincide con un segmento, `**` recorre en profundidad. `defaultMode` también acepta otros valores (`default`, `plan` y más), pero `acceptEdits` es el que le va bien a un equipo en marcha.

La configuración para copiar y pegar

Variables de entorno para tu perfil de shell:

bashCopiar el 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 bloque mínimo de barandillas para `settings.json`:

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

Antes y después

  • Antes (solo): una tarea cada vez; escribes, revisas, pruebas y commiteas en secuencia; una feature de cuatro partes lleva un día; el contexto se hincha con cada cambio de tarea.
  • Después (equipo): backend, frontend, tests y revisión corren a la vez; la misma feature está lista en horas; cada agente tiene un contexto limpio y enfocado; tú revisas y mergeas.

Una línea por cada uno

  • Permite las herramientas que el equipo necesita; deniega las irreversibles (rm -rf, git push, leer secretos).
  • defaultMode: acceptEdits mantiene al equipo en movimiento; la lista de denegación es lo que hace que eso sea seguro.
  • La configuración es un bloque de variables de entorno más un bloque de permisos; nada más cambia en tu plan ni en tus herramientas.
Barandillas y la configuración para copiar y pegar · Cours d'IA · SDEN