Making SPACE: Entornos de ejecución seguros y eficientes para agentes de larga duración
SPACE es la plataforma segura y eficiente de entornos aislados de Perplexity que impulsa flujos de trabajo de agentes de larga duración y una ejecución de código rápida y aislada.
A medida que los flujos de trabajo de los agentes se vuelven más largos y autónomos, los entornos en los que operan importan tanto como los modelos que los impulsan. Los agentes necesitan realizar trabajo real, como ejecutar código, editar sistemas de archivos y llevar a cabo tareas de varios pasos durante horas o días. Los usuarios quieren que los agentes tengan acceso a las herramientas y archivos necesarios para cumplir con estas tareas, pero también necesitan confiar en que sus sistemas se mantendrán seguros incluso si los agentes se ven comprometidos. Un entorno aislado es lo que hace todo esto posible: un entorno aislado donde un agente puede operar libremente mientras el host, otros inquilinos y las credenciales sensibles permanecen protegidos.
Los enfoques tradicionales de entornos aislados basados en contenedores no están diseñados para estas tareas. Por lo general, asumen trabajos efímeros y sin estado, y tienen el núcleo como un único punto de falla. En contraste, las sesiones de agentes son duraderas y con estado: un agente acumula horas de contexto, un sistema de archivos de trabajo y procesos en ejecución que no se pueden simplemente descartar y reconstruir desde cero. Además, la carga de trabajo interna no debe ser de confianza por defecto, lo que requiere medidas de seguridad más sólidas. Las sesiones de agentes de larga duración necesitan un sustrato que pueda aislar a un invitado hostil, preservar su estado y seguir operando a escala.
El principal desafío en la ingeniería de entornos aislados proviene de la tensión que a menudo surge entre la seguridad, la funcionalidad y la eficiencia. Por ejemplo:
Otorgar un acceso más amplio permite que un agente logre más, pero expone una mayor parte del sistema a una carga de trabajo en la que no confías.
Compartir más entre entornos aislados hace que la creación sea más rápida, but amplía la superficie de ataque.
Tomar instantáneas con mayor frecuencia mejora la recuperación y permite funciones como la reversión, pero requiere tiempo y Espacio de almacenamiento.
Los entornos aislados para agentes, como los necesarios para ejecutar código, utilizar Agent Skills o llevar a cabo canalizaciones de Search as Code en consultas de Computer, necesitan los tres. Hemos trabajado arduamente durante los últimos meses en diseñar la infraestructura de agentes de próxima generación que impulsa nuestros productos. Hoy presentamos SPACE (Sandboxed Platform for Agentic Code Execution): una plataforma de entornos aislados diseñada para flujos de trabajo de agentes que es segura, confiable y eficiente a escala. El mes pasado, comenzamos a implementar SPACE como la capa de entornos aislados que impulsa Perplexity Computer. Durante la última semana, ha respaldado de forma segura millones de creaciones de entornos aislados y decenas de millones de reconexiones, con tiempos de inicio de 3 a 5 veces más rápidos que nuestra solución anterior.
Este artículo presenta las decisiones arquitectónicas y de diseño detrás de SPACE. A partir de hoy, el 100% de las sesiones de Computer se ejecutan en SPACE. Nos emociona implementar esta plataforma en aún más superficies para ofrecer un entorno de ejecución para agentes de primera clase a nuestros usuarios y desarrolladores.
Arquitectura
A un alto nivel, el sistema se organiza en tres capas.
El plano de control es el cerebro del sistema y decide qué debe existir y dónde. Consiste en la puerta de enlace de la API y los módulos de administración de estado a nivel de clúster.
Los servicios locales de nodo son la maquinaria local necesaria para ejecutar el plan del plano de control. Son propietarios del ciclo de vida del entorno aislado, el almacenamiento, las redes y las operaciones privilegiadas detrás de ellos.
El entorno aislado es el propio entorno de ejecución aislado. Está implementado como una máquina virtual vinculada al daemon de space: un proceso en segundo plano dentro del invitado que gestiona el acceso al sistema de archivos, a los procesos y a la red para la carga de trabajo.

Plano de control
La puerta de enlace de la API es el punto de entrada. Las solicitudes entrantes se autentican y autorizan, y luego se traducen en registros de estado deseado.
El plano de control no tiene estado por diseño, y toda la información duradera se descarga en una base de datos compartida. Realiza un seguimiento de la información a nivel de clúster sobre los entornos aislados, como a qué nodo están asignados, dónde se están ejecutando y si se han respaldado en almacenamiento duradero. Compara continuamente el estado deseado con el estado observado y guía a ambos hacia la convergencia. Las operaciones son idempotentes, por lo que el plano de control puede recuperarse automáticamente después de cualquier bloqueo, reinicio o falla parcial.
Servicios locales de nodo
Los servicios locales de nodo realizan el trabajo real de preparar plantillas, iniciar entornos aislados, conectar redes y ejecutar servicios de tiempo de ejecución del lado del host. Cada nodo ejecuta un pequeño conjunto de daemons que administran cada entorno aislado ubicado en él, y el nodo es la fuente de verdad para los estados en vivo de dichos entornos aislados.
El administrador de entornos aislados sabe qué entornos aislados se están ejecutando, están pausados, suspendidos o detenidos, junto con sus recursos reales. Se ejecuta sin privilegios y delega todo el trabajo privilegiado al administrador de nodos, el único proceso raíz que gestiona las primitivas subyacentes. El almacenamiento se maneja de forma local y duradera: las instantáneas de los estados actuales de los entornos aislados se guardan en el nodo, y un administrador de volúmenes mueve las instantáneas y plantillas hacia y desde el almacenamiento de objetos según sea necesario para permitir operaciones entre nodos. Las puertas de seguridad protegen lo que un entorno aislado puede alcanzar: el administrador de credenciales rige la inyección de credenciales bajo autorización por servicio, y la puerta de enlace de red aplica la política de salida de cada entorno aislado.
Entorno aislado
El propio entorno aislado es una máquina virtual (VM) con su propio núcleo invitado, que ejecuta la carga de trabajo del usuario detrás de un límite de aislamiento de hardware. Debido a que cada entorno aislado tiene su propio núcleo, una carga de trabajo comprometida no puede recurrir a un núcleo de host compartido como un único punto de falla; incluso si explota con éxito su núcleo invitado, dicho compromiso se limita al límite de la VM del entorno aislado en lugar de propagarse a través de otras cargas de trabajo.
Un daemon de space se ejecuta dentro de cada máquina virtual, sirviendo como un agente ligero que regula cada acción o modificación que la plataforma realiza dentro del invitado. Maneja el acceso al sistema de archivos y la administración de procesos. También informa sobre la preparación del invitado y realiza un seguimiento de la actividad, para que la plataforma sepa cuándo un entorno aislado ha quedado inactivo y puede pausarse o reclamarse. Fundamentalmente, el daemon de space no habla directamente con los clientes, sino que se comunica con el host a través de un canal privado dentro de la VM. Esto mantiene toda la interacción con el invitado en una ruta controlada y reserva la red propia del entorno aislado exclusivamente para el tráfico saliente de la carga de trabajo.
Tres pilares: seguridad, funcionalidad y eficiencia
A continuación, nos adentramos en las propiedades clave que SPACE debe ofrecer a través de tres pilares: seguridad, funcionalidad y eficiencia. Como se señaló anteriormente, estos tres se contraponen entre sí. Sin embargo, no podemos comprometer ninguno de ellos si deseamos admitir agentes potentes que estén a la altura de las capacidades de los modelos actuales. La seguridad evita que una carga de trabajo que no es de confianza y posiblemente hostil dañe al host, a otros inquilinos o a los secretos de un usuario. La funcionalidad proporciona a los agentes el rico ciclo de vida que necesitan. La eficiencia hace que todo esto sea asequible bajo memoria, disco y cómputo finitos.
Seguridad: protección de datos y sistemas
Las plataformas de entornos aislados necesitan una seguridad sólida para garantizar que el código erróneo o incluso malicioso ejecutado dentro de los entornos aislados no pueda causar efectos dañinos en otros lugares. Sin aplicar un control de salida estricto y mantener los secretos fuera del entorno aislado, un solo paso en falso por parte de un agente podría filtrar las claves de un usuario o exfiltrar el trabajo.

SPACE adopta un enfoque por capas para garantizar la seguridad de los entornos aislados. El aislamiento de los entornos aislados tiene dos componentes: aislamiento de VM y aislamiento de procesos del sistema operativo del host. Ambos deben vulnerarse para lograr el acceso entre entornos aislados. La comunicación con el entorno aislado está estrictamente controlada; los procesos solo pueden comunicarse a través de canales dedicados. La puerta de enlace de red fuerza todo el tráfico de salida a través de ella. El daemon de space es el único canal autorizado entre el entorno aislado (sin confianza) y la plataforma (de confianza).
Las credenciales nunca residen donde un agente pueda robarlas. El almacén de credenciales se encuentra fuera del límite del entorno aislado y es responsable del ciclo de vida de las credenciales. Almacena y recupera secretos a través de un backend de bóveda conectable, resuelve credenciales utilizando un alcance jerárquico, administra metadatos como el método de inyección y la caducidad, y aplica límites de velocidad y registro de auditoría en todos los accesos. Cuando es necesario, las credenciales se inyectan en la capa de red o se autocompletan por un agente de navegador, en lugar de ingresar directamente al entorno aislado.
Los datos están protegidos en reposo. SPACE admite BYOK (Bring Your Own Key) para proteger los datos almacenados externamente. Las claves de cifrado provienen del servicio de administración de claves del cliente y nunca ingresan al entorno aislado. Si la empresa revoca la clave, sus datos se vuelven ilegibles.
Funcionalidad: potenciación de flujos de trabajo de agentes
Para admitir flujos de trabajo de agentes, los entornos aislados necesitan un sólido soporte para su ciclo de vida. Deben crearse rápidamente y a escala, ya que un agente puede iniciar muchos a la vez y no debe esperar a que ninguno de ellos se inicie. Deben persistir durante un tiempo indefinido, ya que una sesión puede durar minutos o ejecutarse durante meses. Deben pausarse limpiamente, a veces durante largos períodos, como cuando una tarea está bloqueada esperando la intervención humana. Y deben admitir bifurcaciones, reversiones y recuperación de fallas, para que una sesión pueda ramificarse, deshacer un mal paso o reanudarse después de una falla en lugar de empezar de nuevo.
SPACE admite todo lo anterior. Modela el ciclo de vida completo del entorno aislado como una máquina de estados explícita, que es lo que hace posibles operaciones como crear, pausar, reanudar, suspender y restaurar.

Las instantáneas son el mecanismo subyacente a la mayoría de estas capacidades. Un programador se ejecuta a intervalos regulares y captura dos tipos de instantáneas: instantáneas de disco (copias del sistema de archivos en un momento dado) e instantáneas completas (puntos de control de toda la VM pausada). Las instantáneas de disco se capturan con frecuencia, mientras que los puntos de control completos son menos frecuentes. Todo permanece en el nodo y la retención decae por nivel. Estas instantáneas se pueden usar para la recuperación dentro de la sesión; por ejemplo, las instantáneas de disco se pueden usar para revertir el sistema de archivos y deshacer un comando destructivo, y los puntos de control completos permiten que un entorno aislado que se ha bloqueado se reanude en un punto de ejecución reciente en lugar de en un disco frío.
Cuando un entorno aislado se suspende, la VM se pausa, se toma una instantánea completa y los artefactos de la instantánea completa se cargan en el almacenamiento de objetos. Una fila de la base de datos realiza un seguimiento de la instantánea y solo se vuelve restaurable una vez que se ha descargado cada artefacto, por lo que una instantánea cargada parcialmente nunca se puede reanudar en un estado corrupto. La restauración es la inversa de la suspensión. Debido a que la instantánea vive en el almacenamiento de objetos en lugar de en el nodo original, cualquier nodo puede recuperar el entorno aislado. El programador elige un nodo, ese nodo descarga los artefactos, vuelve a aplicar la delta del sistema de archivos sobre la plantilla y reanuda la VM desde su estado capturado.
Eficiencia: optimización de tiempo y Espacio
No basta con implementar las características anteriores en el vacío; también deben ser posibles bajo estrictas restricciones de recursos. La memoria y el disco en un nodo son finitos, y los usuarios quieren que los agentes operen lo más rápido posible, por lo que las operaciones del ciclo de vida deben ser económicas tanto en tiempo como en Espacio. No podemos permitirnos copiar una imagen de máquina completa cada vez que se crea, pausa o ramifica un entorno aislado.
Una elección de diseño clave hace esto posible: el sistema de archivos. SPACE utiliza btrfs como el sistema de archivos en el nodo para el almacenamiento de los entornos aislados. Btrfs (sistema de archivos B-tree) combina un sistema de archivos de copia en escritura con administración integrada de volúmenes lógicos. Esto tiene varios beneficios:
Las copias Reflink son rápidas, ya que compartes las extensiones subyacentes, por lo que solo es necesario copiar los metadatos.
Las instantáneas son atómicas y rápidas, ya que simplemente creas una nueva raíz.
Se necesita un almacenamiento mínimo, ya que solo almacenas lo que ha cambiado.
Como resultado, los entornos aislados se pueden crear y restaurar rápidamente. En lugar de crear un entorno aislado desde cero cada vez, mantenemos un grupo en caliente de pods que ya tienen plantillas comunes materializadas en el disco, y satisfacemos una solicitud vinculándola a un pod cuya plantilla ya coincide. Dar a ese entorno aislado su propio sistema de archivos raíz escribible es entonces un clon de copia en escritura en lugar de una copia completa. Cuando ningún pod en caliente encaja, materializamos la plantilla bajo demanda; agrupamos las solicitudes simultáneas para la misma imagen en una sola descarga, de modo que una ráfaga de solicitudes idénticas no se convierta en una ráfaga de trabajo idéntico.
El resultado es un tiempo de ejecución de entornos aislados que es a la vez potente, ligero y sumamente rápido. Cuando lanzamos SPACE, lo ejecutamos junto con nuestro proveedor de entornos aislados anterior en el mismo tráfico de producción. Durante la semana de lanzamiento, SPACE creó entornos aislados de tres a cinco veces más rápido en toda la distribución. Específicamente, la latencia media de creación disminuyó de 185 milisegundos a 60 milisegundos (mejora de 3.1x), y la latencia en el percentil 90 disminuyó de 447 milisegundos a 89 milisegundos (mejora de 5.0x). Observamos mejoras similares de orden de magnitud en otros indicadores de rendimiento y uso de recursos.

También facilita la toma de instantáneas de disco continuas, ya que son rápidas, eficientes en cuanto a Espacio y no requieren pausar el entorno aislado. Y el almacenamiento delta eficiente disminuye el Espacio necesario para almacenar estas instantáneas.
Conclusión
Al diseñar sistemas complejos, resulta tentador elegir un solo objetivo para optimizar de forma aislada. Pero los desarrolladores de agentes de vanguardia exigen seguridad, funcionalidad y eficiencia en igual medida. Con SPACE, nos propusimos lograr una mejora de Pareto en los tres pilares.
Cada elección de diseño individual puede servir para múltiples objetivos a la vez, haciendo posible este delicado equilibrio. Las máquinas virtuales por entorno aislado otorgan a cada carga de trabajo su propio núcleo, lo que fortalece la seguridad mediante un aislamiento sólido a la vez que proporciona el límite de punto de control limpio en el que confían las instantáneas. Btrfs permite la implementación eficiente de la creación de instantáneas, la bifurcación y otras operaciones esenciales para los entornos de ejecución de agentes. El daemon de space mantiene toda la interacción con el invitado en una ruta controlada del lado del host, sellando el límite entre el invitado y el host a la vez que preserva la libertad de maniobra de los agentes. La puerta de enlace de red central media la salida y la inyección de credenciales sin exponer nunca los secretos al invitado.
El resultado de estas y otras decisiones de diseño es una plataforma que permite la orquestación de agentes en el mundo real a escala. SPACE proporciona el sustrato sobre el cual los agentes con estado y de larga duración pueden abordar de forma segura trabajos de complejidad o duración arbitrarias, sin sacrificar el rendimiento ni la seguridad.
Hoy en día, SPACE ya impulsa millones de sesiones de Perplexity Computer. Tenemos la intención de que SPACE sirva como una capa unificada para el aprovisionamiento y control de entornos aislados en cualquier entorno: desde microVMs de Linux hasta invitados de Windows o la propia máquina local de un usuario. Estamos trabajando arduamente para incorporar SPACE en estos nuevos entornos, de modo que los desarrolladores puedan lanzar productos de IA que funcionen en todas partes donde trabajen los usuarios.
Si tienes muchas ganas de dar forma a la capa de cómputo que impulsa a los agentes de vanguardia del mañana, te invitamos a unirte a nuestro equipo.