El Problema de Autenticación para Agentes de IA
¡Hola Devs! Los agentes de IA — ya sea con LLMs como Claude o modelos personalizados — se están usando cada vez más para automatizar tareas: responder chats, actualizar tableros Kanban, comentar en issues de GitHub, y más. Pero cuando ejecutas estos agentes en un sandbox (una microVM para seguridad y aislamiento), te enfrentas a un desafío fundamental: ¿cómo autenticas al agente sin exponer secretos?
Los métodos tradicionales tienen desventajas:
- Tokens de API inyectados vía variables de entorno son simples pero inseguros — un sandbox comprometido podría filtrar el token. Necesitas rotación y expiración, lo que añade carga operativa.
- Tokens de identidad de workload (OIDC) mejoran la seguridad atestando la identidad del agente, pero muchos servicios no tienen soporte OIDC de primera clase, forzándote a construir servicios personalizados de intercambio de tokens.
- Proxies personalizados ofrecen máxima flexibilidad, pero son difíciles de configurar — interceptar todo el tráfico de salida, escribir reglas dinámicas y mantener el rendimiento no es trivial.
Los nuevos outbound Workers de Cloudflare para Sandboxes y Containers resuelven esto de forma elegante. Son proxies de salida programáticos que corren en la misma máquina que el sandbox, se escriben en JavaScript simple y se integran perfectamente con el ecosistema Workers.
Vamos a ver cómo funcionan y por qué son importantes para el desarrollo asistido por IA. Para contexto sobre la tendencia más amplia de codificación asistida por IA, checa nuestro análisis sobre Vibe Coding y sus trampas.
![]()
Cómo Funcionan los Outbound Workers: Ejemplos de Código
Los outbound Workers interceptan todas las solicitudes HTTP(S) que salen del sandbox. Defines un handler — una simple función JavaScript — que puede registrar, modificar o bloquear solicitudes. Aquí está el patrón básico:
class MySandboxedApp extends Sandbox {
static outbound = (req, env, ctx) => {
// Registra todas las solicitudes salientes
console.log(`Solicitud saliente: ${req.method} ${req.url}`);
// Bloquea solicitudes que no sean GET
if (req.method !== 'GET') {
return new Response('No Permitido', { status: 405 });
}
// Continúa con la solicitud
return fetch(req);
};
}
Inyección de Credenciales Zero Trust
La función clave: inyectar secretos sin que el agente los vea jamás. Usa outboundByHost para apuntar a dominios específicos:
class OpenCodeInABox extends Sandbox {
static outboundByHost = {
"mi-vcs-interno.dev": (request, env, ctx) => {
const headersWithAuth = new Headers(request.headers);
headersWithAuth.set("x-auth-token", env.SECRET);
return fetch(request, { headers: headersWithAuth });
}
};
}
El agente en el sandbox nunca tiene acceso a env.SECRET — el proxy agrega el token en tiempo real. Esto es zero trust: ningún token se concede a la workload no confiable.
También puedes tomar decisiones por contenedor usando el ID del contenedor:
static outboundByHost = {
"mi-vcs-interno.dev": async (request, env, ctx) => {
// KV está encriptado en reposo y en tránsito
const authKey = await env.KEYS.get(ctx.containerId);
const requestWithAuth = new Request(request);
requestWithAuth.headers.set("x-auth-token", authKey);
return fetch(requestWithAuth);
}
};
Cambios Dinámicos de Política
Los outbound Workers se pueden cambiar en tiempo de ejecución. Por ejemplo, permite NPM y GitHub solo durante la instalación de dependencias, luego bloquea la salida:
class MySandboxedApp extends Sandbox {
static outboundHandlers = {
async allowHosts(req, env, { params }) {
const url = new URL(request.url);
const permitido = params.allowedHostnames.includes(url.hostname);
if (permitido) {
return await fetch(newRequest);
} else {
return new Response(null, { status: 403 });
}
},
async noHttp(req) {
return new Response(null, { status: 403 });
}
};
}
async function configurarSandboxes(req, env) {
const sandbox = await env.SANDBOX.getByName(userId);
// Paso 1: Permitir solo GitHub y NPM
await sandbox.setOutboundHandler("allowHosts", {
allowedHostnames: ["github.com", "npmjs.org"]
});
await sandbox.gitClone(userRepoURL);
await sandbox.exec("npm install");
// Paso 2: Bloquear completamente
await sandbox.setOutboundHandler("noHttp");
}
Este patrón minimiza la superficie de ataque — abre la red solo para lo necesario, luego ciérrala.

Limitaciones y Consideraciones
Aunque los outbound Workers son poderosos, no son una bala de plata:
- Complejidad del MITM TLS: Para inspeccionar cuerpos de solicitudes HTTPS (para logging o modificación), necesitas interceptación TLS. Cloudflare lo maneja con CAs efímeras por sandbox, pero añade overhead y requiere configuración adecuada de confianza de certificado.
- Overhead de rendimiento: Aunque el proxy corre en la misma máquina, cada solicitud saliente ahora pasa por un handler JavaScript. Para escenarios de alto throughput, haz benchmarks cuidadosos.
- Vendor lock-in: Esta funcionalidad es específica de la plataforma Cloudflare. Si necesitas portabilidad, considera abstraer la capa de proxy.
- Complejidad de depuración: Cuando las solicitudes fallan, rastrear el problema a través del proxy puede ser más difícil que depurar una llamada directa.
Próximos Pasos para Aprendizaje
- Manos a la obra: Prueba la Guía de Introducción a Sandboxes de Cloudflare para construir tu primer outbound Worker.
- Profundiza: Explora los paquetes
@cloudflare/sandboxy@cloudflare/workers-sandboxpara funciones avanzadas como cambio dinámico de handlers. - Lectura relacionada: Si eres nuevo en patrones de desarrollo asistido por IA, nuestro preview de Python 3.15 Alpha 3 cubre mejoras en el lenguaje que pueden simplificar herramientas de agentes.

Conclusión
Los outbound Workers para Sandboxes de Cloudflare ofrecen una solución pragmática al desafío de autenticación en el desarrollo de agentes de IA. Combinando principios de zero trust (sin exposición de tokens), flexibilidad (handlers JavaScript) e integración profunda con el ecosistema Workers (KV, R2, Durable Objects), permiten a los desarrolladores construir salida segura, observable y dinámicamente controlable para workloads en sandbox.
A medida que los agentes de IA se vuelven más autónomos, patrones de seguridad como este se volverán esenciales. ¡Empieza a experimentar con outbound Workers hoy! Tu futuro agente te lo agradecerá.