Cloudflare Sandboxes y Containers: Disponibilidad General y Novedades

¡Hola Devs! 👋 Cuando Cloudflare lanzó los Sandboxes en junio del año pasado, la premisa era simple: los agentes de IA necesitan un lugar seguro para desarrollar y ejecutar código. Como los agentes están actuando cada vez más como desarrolladores—clonando repos, compilando código, ejecutando servidores de desarrollo—necesitan una computadora completa. Muchos desarrolladores están improvisando soluciones con VMs o contenedores, pero se enfrentan a problemas difíciles como la ráfaga de demanda, restauración rápida de estado, seguridad, control y ergonomía.

Cloudflare ha resuelto estos problemas, y hoy, Sandboxes y Containers están ambos en disponibilidad general. Este artículo desglosa las nuevas funciones clave y por qué son importantes para tus flujos de trabajo con agentes de IA.

Fuente: Blog de Cloudflare - Sandbox GA

Cloudflare Sandbox dashboard showing container management and agent sessions Algorithm Concept Visual

Inmersión en las Funciones Principales

Inyección Segura de Credenciales

Uno de los problemas más difíciles en cargas de trabajo de agentes es la autenticación. Los agentes a menudo necesitan acceder a servicios privados, pero no puedes confiarles credenciales en texto plano. Los Sandboxes resuelven esto inyectando credenciales en la capa de red usando un proxy de salida programable.

class OpenCodeInABox extends Sandbox {
  static outboundByHost = {
    "my-internal-vcs.dev": (request, env, ctx) => {
      const headersWithAuth = new Headers(request.headers);
      headersWithAuth.set("x-auth-token", env.SECRET);
      return fetch(request, { headers: headersWithAuth });
    }
  }
}

Este enfoque asegura que los agentes nunca tengan acceso a las credenciales mientras permite la personalización completa de la lógica de autenticación. Para una inmersión más profunda, echa un vistazo a nuestro artículo Beyond Prototypes: How Vercel's New v0 Brings AI Coding to Production para una perspectiva sobre plataformas de codificación con IA en producción.

Terminal Real con Soporte PTY

Los sistemas antiguos de agentes modelaban el acceso al shell como un bucle de solicitud-respuesta. Cloudflare ahora ofrece soporte PTY, dando a los agentes una terminal real a través de WebSocket, compatible con xterm.js.

// Worker: actualiza una conexión WebSocket a una sesión de terminal en vivo
export default {
  async fetch(request: Request, env: Env) {
    const url = new URL(request.url);
    if (url.pathname === "/terminal") {
      const sandbox = getSandbox(env.Sandbox, "my-session");
      return sandbox.terminal(request, { cols: 80, rows: 24 });
    }
    return new Response("Not found", { status: 404 });
  },
};

Intérpretes de Código Persistentes

Los Sandboxes permiten crear contextos de ejecución persistentes donde las variables y las importaciones sobreviven entre llamadas, similar a un Jupyter notebook.

// Crea un contexto Python. El estado persiste durante toda su vida útil.
const ctx = await sandbox.createCodeContext({ language: "python" });

// Primera ejecución: carga datos
await sandbox.runCode(`
import pandas as pd
df = pd.read_csv('/workspace/sales.csv')
df['margin'] = (df['revenue'] - df['cost']) / df['revenue']
`, { context: ctx });

// Segunda ejecución: df todavía está ahí
const result = await sandbox.runCode(`
df.groupby('region')['margin'].mean().sort_values(ascending=False)
`, { context: ctx, onStdout: (line) => console.log(line.text) });

Snapshots para Inicio Rápido

Los snapshots preservan el estado completo del disco del contenedor, permitiendo restaurarlo rápidamente después. Esto es crucial para flujos de trabajo de agentes donde necesitas reanudar el trabajo sin pagar por cómputo inactivo.

class AgentDevEnvironment extends Sandbox {
  sleepAfter = "5m";
  persistAcrossSessions = {type: "disk"};
}

async function forkDevEnvironment(baseId: string, numberOfForks: number) {
  const baseInstance = await getSandbox(baseId);
  const snapshotId = await baseInstance.snapshot();
  const forks = Array.from({ length: numberOfForks }, async (_, i) => {
    const newInstance = await getSandbox(`${baseId}-fork-${i}`);
    return newInstance.start({ snapshot: snapshotId });
  });
  await Promise.all(forks);
}

Precios Basados en CPU Activa

Los Sandboxes ahora solo cobran por los ciclos de CPU activamente utilizados. Esto significa que no pagas por CPU inactiva mientras tu agente espera la respuesta de un LLM—un gran ahorro de costos para cargas de trabajo en producción.

Limitaciones y Consideraciones

  • Estado de memoria del snapshot: La captura de estado de memoria en vivo aún no está disponible (llegará en versiones futuras). Actualmente, solo se persiste el estado del disco.
  • Inicios en frío: Aunque los snapshots mejoran el tiempo de inicio en caliente, el primer inicio aún toma tiempo. Iniciar un sandbox, clonar un repositorio e instalar dependencias toma alrededor de 30 segundos.
  • Complejidad: El proxy de salida programable y la inyección de credenciales requieren configuración inicial y comprensión de los bindings de Cloudflare Workers.

Próximos Pasos para Aprender

  1. Experimenta con el SDK: Instala @cloudflare/sandbox@latest y prueba los ejemplos de este artículo.
  2. Explora backup/restore: Si necesitas persistencia de estado de sesión antes de que los snapshots estén completamente disponibles, usa los métodos backup y restore.
  3. Escala gradualmente: Comienza con algunas instancias concurrentes y monitorea los costos usando el modelo de precios de CPU activa.
  4. Lee la documentación oficial: Consulta la documentación de Cloudflare para configuración avanzada y mejores prácticas.

Conclusión

Los Cloudflare Sandboxes han evolucionado de un simple ejecutor de comandos a un entorno de desarrollo completo para agentes de IA. Con funciones como inyección segura de credenciales, soporte PTY, intérpretes de código persistentes, snapshots y precios de CPU activa, ahora es una plataforma lista para producción para ejecutar agentes a escala. El ciclo de retroalimentación ajustado que hace efectivos a los ingenieros humanos ahora está disponible para tus agentes.

Developer using Cloudflare Containers for AI agent sandbox environment IT Technology Image

Comparación de Funciones: Sandboxes vs. Contenedores Tradicionales

FunciónCloudflare SandboxContenedor Tradicional
Ráfaga de demandaSueño/despertar automático, sin costo inactivoEscalamiento manual, costo inactivo
Restauración de estadoSnapshots (disco), backup/restoreReconstruir desde la imagen
SeguridadInyección de credenciales en capa de redVariables de entorno manuales, gestión de secretos
TerminalPTY vía WebSocket, compatible con xterm.jsSolo SSH o exec
Intérprete de códigoContexto persistente (Python, JS, TS)Sin estado por invocación
Observación de archivosInotify nativo vía SSEPolling o observadores personalizados
PreciosSolo ciclos de CPU activosSiempre encendido, costo inactivo
Máx. instancias (estándar)15.000 (lite), 6.000 (básico), 1.000+ (grande)Varía por proveedor

Secure credential injection diagram for Cloudflare Sandbox egress proxy Coding Session Visual

Consideraciones Finales

Cloudflare Sandboxes no son solo otro servicio de contenedores—están construidos a medida para la era de los agentes de IA. Al resolver los problemas difíciles de ráfaga de demanda, seguridad y gestión de estado, te permiten enfocarte en construir agentes inteligentes en lugar de infraestructura.

Si estás construyendo agentes de IA que necesitan escribir código, ejecutar pruebas o interactuar con servidores de desarrollo, prueba Cloudflare Sandboxes. El SDK está en la versión 0.8.9, y puedes comenzar con un simple npm install.

Además, echa un vistazo a nuestro artículo sobre Python 3.15 Alpha 3: Un Vistazo a las Próximas Funcionalidades para ver cómo el último lanzamiento de Python complementa estas capacidades de contenedor.

Este contenido fue redactado con la asistencia de herramientas de IA, basándose en fuentes confiables, y fue revisado por nuestro equipo editorial antes de su publicación. No reemplaza el asesoramiento de un profesional especializado.