Saltar al contenido principal
Versión: 0.25.0

Visión general de la seguridad

Un agente actúa a través de herramientas, así que las salvaguardas del kit están en las herramientas: cuáles existen, cuáles están aprobadas y qué puede tocar cada llamada. Se aplican en las opciones del SDK y en hooks PreToolUse, que se ejecutan antes de cada llamada a una herramienta, tanto del agente principal como de sus subagentes. El modelo no puede convencer a un hook para que no deniegue; a una línea del prompt, sí.

SalvaguardaProtege contraDóndePágina
Conjunto mínimo de herramientasque el modelo use herramientas que no le corresponden al agente (la CLI tiene docenas)tools / allowedToolsOpciones de la sesión
disallowedToolsuna herramienta concreta, incluida una peligrosa de un servidor MCPel SDK, antes que cualquier otra cosaAgentSpec
Ámbito de ficherosescrituras fuera de las carpetas del agente, ediciones de originales, búsquedas por todo el proyecto, lectura de ficheros protegidoshook PreToolUseÁmbito de ficheros
Puerta de tipo de subagenteel subagente integrado general-purpose del SDK, que hereda todas las herramientashook PreToolUsePuertas de subagentes
Puerta de Bash de subagentesque el agente principal ejecute comandos de shellhook PreToolUsePuertas de subagentes
Puerta de primer plano de subagentessubagentes lanzados en segundo plano y perdidos sin avisohook PreToolUsePuertas de subagentes
Aprobación MCPnada: aprueba cada llamada mcp__* para que funcionen los servidores del proyectocanUseToolPermisos y aislamiento
Fuentes de configuración, auto-memoria, contexto de gitque la configuración personal de Claude Code de quien lo ejecuta se filtre al agenteopciones del SDKPermisos y aislamiento
Puerta de pasos, aprobacionesacciones que una persona debería ver anteshook y herramientaLa persona en el bucle
Puerta del plancambios mientras el agente solo debe planificarhook PreToolUseModos
Secretos ocultos en la transcripciónsecretos escritos en los logshook PreToolUse/PostToolUseTranscripción
Extensiones instaladas aparteque el servidor de una extensión instalada vea las credenciales del agente, o que sus ficheros cambien tras instalarlael lanzador, el hash del lockExtensiones
Confianza en el workspaceque un workspace clonado o compartido ejecute el código de sus extensiones sin que la persona lo acepteel .trust.json del agente, fuera del proyectoLas extensiones de un workspace

Lo que el kit no protege​

  • Bash. Un subagente con Bash puede llegar a cualquier ruta y ejecutar cualquier comando que pueda el usuario. El ámbito de ficheros no se le aplica. Haz que Bash sea opcional y explícito, y prefiere una herramienta dedicada.
  • Tus herramientas MCP. Una herramienta que registras se ejecuta con los permisos de tu proceso. Valida sus entradas, y pon las destructivas detrás de una aprobación o en disallowedTools.
  • El contenido web. WebFetch y WebSearch meten texto no confiable en el contexto (inyección de prompts). Las salvaguardas de arriba limitan lo que una instrucción inyectada puede hacer que haga el agente; no impiden que el agente la lea.
  • Las carpetas de las ejecuciones. Guardan conversaciones enteras y resultados de herramientas, sin ocultar los secretos. Mantenlas fuera del control de versiones y de las carpetas compartidas.
  • Los prompts. "Nunca hagas X" en un prompt es una petición. Todo lo que nunca deba ocurrir va en disallowedTools o en un hook.

Una lista de comprobación para un agente nuevo​

  1. Dale las carpetas más estrechas: la de la extensión knowledge para las notas, la de la extensión sources para los originales, nada más salvo que haga falta.
  2. Dale solo las carpetas que debe leer (la carpeta de fuentes, extraReadableDirs): no lee nada más. Pon cada fichero secreto que haya dentro en deniedPaths y cada valor secreto en secrets.
  3. Prohíbe todas las herramientas que no quieras, sobre todo las de servidores MCP de terceros.
  4. Prefiere herramientas pequeñas a Bash; si un subagente de verdad necesita Bash, que sea opcional y explícito.
  5. Arranca los agentes nuevos en modo interactive o guided.
  6. Deja settingSources en su valor por defecto (["project"]) o más restringido.
  7. Añade .env y tu carpeta de ejecuciones a .gitignore.