A continuaciónSiguiente guía
Diseño de herramientas para agentes LLM
Técnico
GUÍA Técnica
Un entorno limitado de ejecución de código es un entorno aislado donde un agente de IA puede ejecutar el código que escribe sin poder dañar la máquina host, acceder a datos que no debería ver o utilizar recursos ilimitados.
Escuche esta guíaNarrado por IA · ~3 min
Es importante porque un agente que puede ejecutar código es mucho más capaz (puede calcular, analizar archivos y probar su propio trabajo), pero el código escrito en modelo no es confiable por defecto y puede tener errores, ser un desperdicio o manipularse mediante inyección rápida.
Cuando un agente genera código, algo tiene que ejecutarlo. Ejecutar ese código directamente en una computadora portátil de desarrollador o en un servidor de producción es riesgoso: el código podría eliminar archivos, leer credenciales de variables de entorno, instalar software, extraer criptomonedas o abrir conexiones de red. Un sandbox pone un límite entre el código y todo lo demás. Hay varios niveles de aislamiento, con diferentes compensaciones. Los contenedores estándar (por ejemplo, Docker) utilizan espacios de nombres y cgroups de Linux para darle al código su propia visión de los procesos, archivos y redes, y para limitar la CPU y la memoria. Comienzan rápidamente, pero cada contenedor comparte el kernel del host, por lo que una vulnerabilidad del kernel puede permitir que el código escape. gVisor, un proyecto de código abierto de Google, agrega un kernel de espacio de usuario que intercepta llamadas al sistema, reduciendo lo que el código no confiable puede tocar en el kernel real. MicroVM como Firecracker, creado originalmente por AWS para Lambda y Fargate, brindan a cada carga de trabajo su propia máquina virtual y kernel livianos y al mismo tiempo arrancan en una fracción de segundo. Los servicios de espacio aislado alojados para agentes, como E2B, se basan en este enfoque de microVM. En el extremo más ligero, los tiempos de ejecución de WebAssembly y herramientas como Pyodide pueden ejecutar Python en un navegador o en un entorno de pruebas Wasm sin acceso directo al sistema. La tecnología de aislamiento es sólo la mitad del diseño. Los buenos entornos sandbox también restringen la red (a menudo denegada de forma predeterminada con una lista de permitidos), montan el sistema de archivos en modo de solo lectura excepto en un directorio temporal, mantienen los secretos fuera del entorno por completo y aplican límites de tiempo, memoria, recuento de procesos y disco. Suelen ser efímeros: se crean por tarea y se destruyen posteriormente. Un error común es creer que un sandbox hace que un agente sea seguro. Limita el daño causado por el código en sí, pero no impide que un agente produzca respuestas incorrectas, y cualquier herramienta o credencial que pase a la zona de pruebas se vuelve accesible para cualquier código que se ejecute allí, incluido el código escrito en respuesta a instrucciones inyectadas.
Un asistente de análisis de datos recibe un CSV cargado, escribe código pandas para limpiarlo y trazar tendencias, y ejecuta ese código en una zona de pruebas desechable que se elimina cuando finaliza la sesión.
Un agente de codificación ejecuta el conjunto de pruebas de un repositorio dentro de un contenedor sin acceso a la red saliente, por lo que un script de dependencia malicioso no puede enviar código fuente o secretos a un servidor externo.
Una plataforma educativa permite a los estudiantes pedirle a un tutor de IA que ejecute ejemplos Python, con cada ejecución limitada a unos pocos segundos de CPU y un límite de memoria fijo para que un bucle infinito accidental no pueda detener el servicio.
Un equipo de investigación le proporciona a un agente una microVM con una copia de solo lectura de un conjunto de datos y una única carpeta de salida grabable, para que el agente pueda producir resultados sin modificar ni eliminar los datos originales.
La ejecución de código se está convirtiendo en una capacidad estándar para los asistentes y agentes de IA, por lo que es probable que el sandboxing se convierta más en un servicio básico con valores predeterminados sensatos en lugar de algo que cada equipo construya desde cero. Espere un trabajo continuo para un inicio, una instantánea y una reanudación más rápidos, y políticas más detalladas para el acceso a la red y a los archivos que se pueden ajustar por tarea. El problema abierto más difícil es la política más que el aislamiento: decidir a qué se le debe permitir llegar a un agente y mantener informados a los usuarios, cuando los agentes toman acciones autónomas más largas. El aislamiento seguirá siendo una capa entre varias, junto con los permisos, el registro y la revisión humana.
Boletín gratuito
Tres noticias verificadas sobre IA cada mañana de lunes a viernes, explicadas con claridad. Gratis para siempre y sin anuncios.
Un correo cada día laborable. Date de baja con un clic. Nunca vendemos ni compartimos tu dirección.
Ponte a prueba
Corrección inmediata en cada respuesta y un certificado para compartir, con un ID verificable, cuando apruebas un curso.
Apoya la educación gratuita sobre IA. AI Understanding es una organización sin fines de lucro 501(c)(3): sin anuncios ni muros de pago, nunca. Hacer una donación
Un entorno limitado de ejecución de código es un entorno aislado donde un agente de IA puede ejecutar el código que escribe sin poder dañar la máquina host, acceder a datos que no debería ver o utilizar recursos ilimitados. Es importante porque un agente que puede ejecutar código es mucho más capaz (puede calcular, analizar archivos y probar su propio trabajo), pero el código escrito en modelo no es confiable por defecto y puede tener errores, ser un desperdicio o manipularse mediante inyección rápida.
La guía explica que el código escrito en modelo puede contener errores, consumir recursos excesivos o seguir instrucciones inyectadas, por lo que debe ejecutarse dentro de un límite en lugar de directamente en un host.
Los contenedores utilizan espacios de nombres y grupos c, pero todos comparten el kernel host, por lo que una vulnerabilidad del kernel puede permitir un escape. Las MicroVM le dan a cada carga de trabajo su propio núcleo.
gVisor, de Google, ejecuta un kernel de espacio de usuario que maneja las llamadas al sistema, reduciendo la cantidad de código no confiable del kernel del host real que puede alcanzar.
Firecracker se creó para cargas de trabajo sin servidor AWS como Lambda y Fargate, donde muchas cargas de trabajo aisladas deben iniciarse rápidamente.
Si las instrucciones inyectadas hacen que el agente escriba código malicioso, una red de denegación predeterminada impide que ese código extraiga datos.
sigue aprendiendo
Más guías seleccionadas para este tema.
A continuaciónSiguiente guía
Diseño de herramientas para agentes LLM
Técnico