Cloudflare publicó el 9 de noviembre de 2026 un ejemplo experimental para ejecutar el bucle de un agente basado en Codex dentro de un Durable Object, su componente con almacenamiento persistente en Workers. Su interés está en recuperar trabajo después de una interrupción: conserva conversaciones, archivos y resultados completados. Esa recuperación tiene una frontera decisiva: un paso interrumpido puede volver a ejecutarse, incluidas las llamadas al modelo.

El anuncio de Cloudflare adapta código de procesamiento de turnos escrito en Rust a WebAssembly, un formato ejecutable en el entorno de Workers. La documentación del ejemplo aclara que usa interfaces internas del SDK de agentes y que CodexHarness es código del ejemplo, no un componente exportado del SDK.

Qué conserva y cómo lo recupera

Cloudflare combina cuatro capacidades. Tasks registra los pasos de llamadas al modelo y ejecución de herramientas; tras un reinicio, los pasos completados reutilizan sus resultados guardados. Sessions almacena la conversación y compacta el contexto que recibe el modelo. Streams conserva eventos ordenados para volver a entregarlos al cliente cuando se reconecta. Workspace mantiene archivos en el almacenamiento SQLite del Durable Object.

Estas piezas resuelven problemas distintos. Recuperar los eventos permite que una interfaz vuelva a mostrar lo ocurrido. Conservar el historial permite continuar la conversación. Registrar resultados evita repetir pasos que ya constan como terminados. Ninguna de esas propiedades demuestra por sí sola que un servicio externo haya aplicado una operación una única vez.

El ejemplo ofrece herramientas para leer texto por rangos de bytes y escribir archivos de texto. La escritura sustituye el contenido si el archivo ya existe, un comportamiento que conviene tener en cuenta al conceder acceso al agente.

Una interrupción con resultado incierto

Consideremos un ejemplo hipotético, no ejecutado por Puntoes. Un agente prepara un README y una integración propia abre después un ticket en un sistema externo. El ticket se crea, pero el proceso cae antes de registrar que la herramienta terminó. Al recuperar el flujo, repetir ese paso podría abrir otro ticket.

La documentación advierte expresamente que las herramientas con efectos externos necesitan su propia estrategia de reintento y eliminación de duplicados. Como criterio de diseño, proponemos conservar una identidad estable para cada operación y usar las garantías de idempotencia del destino, cuando existan: repetir una operación lógica no debería producir otra acción. Una respuesta incierta también puede exigir consultar el estado antes de reenviar.

Nuestro laboratorio sobre reintentos e idempotencia muestra esa diferencia en un ensayo local con SQLite. Sus resultados no son una prueba de este ejemplo de Cloudflare ni de una API externa.

Requisitos, costes y permisos antes de probarlo

La documentación exige Git, Node.js 24 o posterior, pnpm, rustup y una cuenta de Cloudflare. Las llamadas al modelo utilizan Workers AI remoto también durante el desarrollo local. Por tanto, ejecutar el servidor en el ordenador no convierte la prueba en inferencia local ni permite asumir que no habrá consumo facturable.

El ejemplo configura GPT-6.1 Sol mediante AI Gateway y requiere preparar la facturación unificada o una clave de OpenAI almacenada en el gateway. No hemos ejecutado llamadas ni desplegado este ejemplo.

Hay además límites funcionales: el adaptador admite texto, razonamiento y herramientas de función, pero no respuestas de archivos, herramientas ejecutadas por el proveedor ni solicitudes de aprobación de herramientas. Para el Codex CLI completo, con shell Linux y herramientas de repositorio, Cloudflare remite a sus opciones de contenedor o sandbox.

Las rutas del ejemplo carecen de autenticación. La propia documentación exige añadirla antes de exponer sesiones de usuarios. Antes de un piloto, comprobaríamos autenticación, permisos de archivos, presupuesto y recuperación ante interrupciones en distintos momentos, verificando también el estado del servicio externo. Esa es una propuesta de validación, no una evaluación ya realizada.

Fuentes

Sigue explorando