Entorno aislado
Entorno aislado
Cómo funciona el aislamiento en los clientes de ChatGPT y Codex
El entorno aislado es el límite que permite al agente actuar de forma autónoma sin darle acceso sin restricciones a su equipo. Cuando un chat local ejecuta comandos en la aplicación de escritorio ChatGPT, Codex CLI o la extensión para IDE, esos comandos se ejecutan dentro de un entorno restringido en lugar de ejecutarse con acceso completo de forma predeterminada.
Ese entorno define lo que el agente puede hacer por sí solo, como qué archivos puede modificar y si los comandos pueden usar la red. Cuando una tarea se mantiene dentro de esos límites, el agente puede seguir avanzando sin detenerse para pedir confirmación. Cuando necesita superarlos, entra en acción el flujo de aprobación.
Qué hace el entorno aislado
El entorno aislado se aplica a los comandos iniciados, no solo a las operaciones de archivos
integradas. Si el agente ejecuta herramientas como git, gestores de paquetes o ejecutores de pruebas,
esos comandos heredan los mismos límites del entorno aislado.
Codex utiliza mecanismos de control nativos de la plataforma en cada sistema operativo. La implementación varía entre macOS, Linux, WSL2 y Windows nativo, pero la idea es la misma en todas las interfaces: proporcionar al agente un espacio delimitado en el que trabajar para que las tareas rutinarias puedan ejecutarse de forma autónoma dentro de límites claros.
Por qué es importante
El entorno aislado reduce la fatiga causada por las aprobaciones. En lugar de pedirle que confirme cada comando de bajo riesgo, el agente puede leer archivos, realizar cambios y ejecutar comandos rutinarios del proyecto dentro del límite que ya haya aprobado.
También le proporciona un modelo de confianza más claro para el trabajo de agentes. No solo confía en las intenciones del agente, sino también en que este opera dentro de límites impuestos. Esto facilita que el agente trabaje de forma independiente sin dejar de saber cuándo se detendrá y pedirá ayuda.
Primeros pasos
El modo de permisos predeterminado aplica el aislamiento automáticamente.
Requisitos previos
En macOS, el aislamiento funciona de forma inmediata mediante el framework Seatbelt integrado.
En Windows, Codex usa el entorno aislado de Windows nativo cuando trabajas en PowerShell y la implementación del entorno aislado de Linux cuando trabajas en WSL2.
En Linux y WSL2, instale primero bubblewrap con su gestor de paquetes:
sudo apt install bubblewrapsudo dnf install bubblewrapCodex utiliza el primer ejecutable bwrap que encuentra en PATH. Si no hay ningún ejecutable bwrap
disponible, Codex recurre a una herramienta auxiliar incluida, pero esta
requiere compatibilidad con la creación de espacios de nombres de usuario sin privilegios. Instalar el
paquete de la distribución que proporciona bwrap mantiene esta configuración fiable.
Codex muestra una advertencia al iniciarse cuando falta bwrap o cuando la herramienta auxiliar
no puede crear el espacio de nombres de usuario necesario. En distribuciones que restringen esta
opción de AppArmor, es preferible cargar el perfil de AppArmor bwrap para que bwrap pueda
seguir funcionando sin desactivar globalmente la restricción.
Cómo funcionan los permisos
Utilice el control de permisos de su interfaz para cambiar cómo gestiona Codex las acciones locales.
Las aprobaciones determinan cuándo se pausa Codex antes de una acción, mientras que el entorno aislado determina a qué archivos y recursos de red pueden acceder los comandos. Cuando una aprobación ofrezca distintos ámbitos, como aprobar una sola vez o durante la sesión, elija el ámbito más limitado que permita continuar con la tarea. Mantenga el límite del proyecto como opción predeterminada; utilice proyectos o árboles de trabajo separados en lugar de ampliar el acceso a repositorios no relacionados.
ChatGPT Work ejecuta código y comandos de shell en un entorno administrado y aislado. La política del espacio de trabajo y los controles específicos de cada herramienta determinan qué capacidades están disponibles. Cuando la opción esté disponible, usa Configuración > Controles de datos > Acceso a la red de Work para administrar el acceso a la red de los comandos de código y shell. Activa Permitir el acceso a Internet público para permitir que esos comandos accedan a la Internet pública. Cuando esté desactivado, los comandos solo podrán acceder a los nombres de host necesarios de una lista de permitidos administrada.
La búsqueda web, los plugins y el navegador remoto tienen controles independientes. Los cambios entran en vigor después de que finaliza la ejecución actual de código o shell y Work actualiza su entorno de ejecución. La versión web de ChatGPT no expone el selector local del entorno aislado ni del modo de aprobación de Codex.
En la aplicación de escritorio ChatGPT, utilice el control de permisos situado debajo del cuadro de redacción. Según su configuración, el menú puede incluir Solicitar aprobación, Aprobar por mí para las solicitudes de aprobación aptas, Acceso completo y perfiles de permisos personalizados o con nombre.
En la CLI, introduce
/permissions
para abrir el selector de permisos y cambiar el perfil de permisos activo.
En la extensión del IDE, usa el control de permisos situado debajo del cuadro de redacción. Según tu configuración, el menú puede incluir Solicitar aprobación, Aprobar por mí para las solicitudes de aprobación que cumplan los requisitos, Acceso completo y perfiles de permisos personalizados o con nombre.
Configurar los valores predeterminados
Para comenzar siempre con el mismo comportamiento, configura los valores predeterminados en config.toml.
Conceptos básicos de configuración explica cómo funciona, y la
Referencia de configuración documenta las claves exactas de
sandbox_mode, approval_policy, approvals_reviewer y
sandbox_workspace_write.writable_roots. Usa esos ajustes para decidir cuánta
autonomía obtiene el agente de forma predeterminada, en qué directorios puede escribir, cuándo debe
detenerse para solicitar aprobación y quién revisa las solicitudes de aprobación que cumplen los requisitos.
En términos generales, los modos habituales del entorno aislado son:
read-only: El agente puede inspeccionar archivos, pero no puede editarlos ni ejecutar comandos sin aprobación.workspace-write: El agente puede leer archivos, editarlos dentro del espacio de trabajo y ejecutar comandos locales rutinarios dentro de ese límite. Este es el modo predeterminado con menos interrupciones para el trabajo local.danger-full-access: El agente se ejecuta sin las restricciones del entorno aislado. Esto elimina los límites del sistema de archivos y de la red, y solo debe utilizarse cuando quiera que el agente actúe con acceso completo.
Las políticas de aprobación habituales son:
untrusted: El agente pregunta antes de ejecutar comandos que no pertenecen a su conjunto de confianza.on-request: El agente trabaja dentro del entorno aislado de forma predeterminada y pregunta cuando necesita superar ese límite.never: El agente no se detiene para mostrar solicitudes de aprobación.
Cuando las aprobaciones son interactivas, también puede elegir quién las revisa mediante
approvals_reviewer:
user: las solicitudes de aprobación se muestran al usuario. Esta es la opción predeterminada.auto_review: las solicitudes de aprobación aptas se envían a un agente revisor (consulta revisión automática).
El acceso completo implica utilizar sandbox_mode = "danger-full-access" junto con
approval_policy = "never". En cambio, la configuración preestablecida de automatización local de menor riesgo
combina sandbox_mode = "workspace-write" con
approval_policy = "on-request", o utiliza las opciones equivalentes de CLI
--sandbox workspace-write --ask-for-approval on-request. Después puede mantener
approvals_reviewer = "user" para las aprobaciones manuales o establecer
approvals_reviewer = "auto_review" para la revisión automática de aprobaciones.
Si necesita que el agente trabaje en más de un directorio, las raíces con permisos de escritura le permiten ampliar los lugares que puede modificar sin eliminar por completo el entorno aislado. Si necesita un límite de confianza más amplio o más restringido, ajuste el modo predeterminado del entorno aislado y la política de aprobación en lugar de depender de excepciones puntuales.
Cuando un flujo de trabajo necesite una excepción específica, usa reglas. Las reglas te permiten autorizar, solicitar aprobación o prohibir prefijos de comandos fuera del entorno aislado, lo que suele ser más adecuado que ampliar el acceso de forma general. Para conocer los puntos de acceso a la configuración específica del IDE, consulta Configuración de la extensión de Codex para IDE.
La revisión automática, cuando está disponible, no cambia los límites del entorno aislado. Es
una de las opciones posibles de approvals_reviewer para las solicitudes de aprobación en esos límites, como
las elevaciones de privilegios del entorno aislado, el acceso a la red bloqueado o las llamadas a herramientas con efectos secundarios
que aún requieren aprobación. Las acciones ya permitidas dentro del entorno aislado se ejecutan
sin revisión adicional. Para obtener información sobre el ciclo de vida del revisor, los tipos de activadores, la semántica
de las denegaciones y los detalles de configuración, consulta
revisión automática.
Los detalles de cada plataforma se encuentran en la documentación específica de esa plataforma. Para obtener información sobre la configuración nativa de Windows, el comportamiento y la solución de problemas, consulta Windows. Para conocer los requisitos de administración y las restricciones de la organización sobre los entornos aislados y las aprobaciones, consulta Aprobaciones y seguridad de agentes.