El SDK del Agente Claude proporciona controles de permiso para gestionar cómo Claude utiliza las herramientas. Utiliza modos de permiso y reglas para definir qué está permitido automáticamente, y el callback canUseTool para manejar todo lo demás en tiempo de ejecución.
Esta página cubre modos de permiso y reglas. Para crear flujos de aprobación interactivos donde los usuarios aprueban o deniegan solicitudes de herramientas en tiempo de ejecución, consulta Manejar aprobaciones e entrada del usuario.
Cuando Claude solicita una herramienta, el SDK verifica los permisos en este orden:
Hooks
Ejecuta hooks primero, que pueden permitir, denegar o continuar al siguiente paso
Reglas de permiso
Verifica las reglas definidas en settings.json en este orden: primero las reglas deny (bloquean independientemente de otras reglas), luego las reglas allow (permiten si coinciden), luego las reglas ask (solicitan aprobación). Estas reglas declarativas te permiten pre-aprobar, bloquear o requerir aprobación para herramientas específicas sin escribir código.
Modo de permiso
Aplica el modo de permiso activo (bypassPermissions, acceptEdits, dontAsk, etc.)
Callback canUseTool
Si no se resuelve mediante reglas o modos, llama a tu callback canUseTool para una decisión
Esta página se enfoca en modos de permiso (paso 3), la configuración estática que controla el comportamiento predeterminado. Para los otros pasos:
settings.json. Consulta Configuración de permisos.Los modos de permiso proporcionan control global sobre cómo Claude utiliza las herramientas. Puedes establecer el modo de permiso al llamar a query() o cambiarlo dinámicamente durante sesiones de streaming.
El SDK admite estos modos de permiso:
| Modo | Descripción | Comportamiento de herramientas |
|---|---|---|
default | Comportamiento de permiso estándar | Sin aprobaciones automáticas; las herramientas no coincidentes activan tu callback canUseTool |
acceptEdits | Auto-aceptar ediciones de archivos | Las ediciones de archivos y operaciones del sistema de archivos (mkdir, rm, mv, etc.) se aprueban automáticamente |
bypassPermissions | Omitir todas las verificaciones de permiso | Todas las herramientas se ejecutan sin solicitudes de permiso (usar con precaución) |
plan | Modo de planificación | Sin ejecución de herramientas; Claude planifica sin hacer cambios |
Herencia de subagenetes: Al usar bypassPermissions, todos los subagenetes heredan este modo y no se puede anular. Los subagenetes pueden tener diferentes indicaciones del sistema y comportamiento menos restringido que tu agente principal. Habilitar bypassPermissions les otorga acceso completo y autónomo al sistema sin solicitudes de aprobación.
Puedes establecer el modo de permiso una vez al iniciar una consulta, o cambiarlo dinámicamente mientras la sesión está activa.
acceptEdits)Auto-aprueba operaciones de archivo para que Claude pueda editar código sin solicitar. Otras herramientas (como comandos Bash que no son operaciones del sistema de archivos) aún requieren permisos normales.
Operaciones auto-aprobadas:
mkdir, touch, rm, mv, cpUsar cuando: confías en las ediciones de Claude y deseas una iteración más rápida, como durante la creación de prototipos o cuando trabajas en un directorio aislado.
bypassPermissions)Auto-aprueba todos los usos de herramientas sin solicitudes. Los hooks aún se ejecutan y pueden bloquear operaciones si es necesario.
Usar con extrema precaución. Claude tiene acceso completo al sistema en este modo. Solo usa en entornos controlados donde confías en todas las operaciones posibles.
plan)Previene la ejecución de herramientas por completo. Claude puede analizar código y crear planes pero no puede hacer cambios. Claude puede usar AskUserQuestion para aclarar requisitos antes de finalizar el plan. Consulta Manejar aprobaciones e entrada del usuario para manejar estas solicitudes.
Usar cuando: deseas que Claude proponga cambios sin ejecutarlos, como durante la revisión de código o cuando necesitas aprobar cambios antes de que se realicen.
Para los otros pasos en el flujo de evaluación de permisos:
settings.jsonWas this page helpful?