
OpenClaw v2026.5.7, Sandboxes de Agents SDK y Runtime de Seguridad de Gemini CLI
OpenClaw Daily cubre OpenClaw v2026.5.7, enfocándose en recuperación de publicación en ClawHub, `openai/chat-latest`, estado JSON de cron, listado de canales, aplicación de propietario de comandos nativos, alcance de administración de Memoria Activa, actualización de instantánea de skills, autorización previa a herramientas para despacho de skills inline, credenciales de Tavily respaldadas por SecretRef, invalidación de caché de contexto, análisis de destino Discord, sujeción de tokens de compactación, reporte de fallos de entrega, sondas de voz Discord, vitalidad del polling de Telegram, enrutamiento de WhatsApp y aprobaciones de Codex. Show notes: https://tobyonfitnesstech.com/es/podcasts/episode-47/
🎧 Listen to Episode[00:00] v2026.5.7 ofrece a los operadores nuevas formas de verificar si publishing, cron, channels, auth, delivery, voice, memory y approvals realmente están funcionando. La publicación de ClawHub ahora reintenta fallos transitorios de instalación de dependencias, mantiene el avance de publicaciones de plugins que pasan la vista previa cuando una celda de preview falla de forma intermitente, y verifica cada versión de paquete esperada después de la publicación. Cron JSON ahora expone el estado calculado directamente. El listado de canales se enfoca en canales en lugar de mezclar detalles de auth del modelo. El dispatch inline skill de auto-reply ahora pasa a través de los hooks de autorización pre-tool-call. Las herramientas de Tavily resuelven credenciales respaldadas por SecretRef desde la snapshot de configuración runtime activa. Los objetivos de canal Discord con prefijo de provider se enrutan como envíos de canal en lugar de intentos engañosos de mensaje directo. Ese es el contorno del release: menos supuestos ocultos, menos cachés obsoletos, menos falsos éxitos, y más contratos de operador explícitos.
[02:30] HISTORIA 1 — OpenClaw v2026.5.7 Hace que la Publicación, Canales, Cron, Auth, Memoria, Delivery, Voz, WhatsApp y las Aprobaciones de Codex Sean Más Observables y Seguras Comencemos con la publicación y la publicación de plugins. Un release de mantenimiento no debería dejar a los operadores preguntándose si un plugin realmente se publicó en todos los lugares donde debía llegar. v2026.5.7 agrega manejo de reintentos para fallos transitorios de instalación de dependencias de CLI de ClawHub, mantiene un plugin publicable cuando una celda de preview falla de forma intermitente aunque la preview pasó, y verifica cada versión de paquete esperada de ClawHub después de la publicación. Ese paso final de verificación es el importante. Un pipeline de publicación no está completo cuando un comando sale; está completo cuando las versiones de paquete esperadas son visibles donde los installers downstream las fetchearán.
Eso importa para un ecosistema de plugins porque las publicaciones parciales son peores que los fallos limpios. Un paquete puede estar disponible en un lugar, faltar en otro, o publicado con la versión incorrecta. Los operadores entonces persiguen errores de instalación que parecen problemas de configuración local pero en realidad son problemas de distribución del release. La verificación post-publicación convierte el proceso de release en un loop de reconciliación: declara el conjunto de paquetes esperado, intenta la publicación, y verifica que el estado del registry coincida. Si no coincide, el fallo es visible en el momento del mantenimiento en lugar de ser descubierto por los usuarios.
La superficie del modelo de OpenAI recibe una adición enfocada: openai/chat-latest es soportado como un override explícito de modelo directo de API-key para probar el alias móvil de ChatGPT Instant API sin cambiar el modelo default estable. La frase clave es override explícito. Un alias móvil es útil para probar comportamiento desde el lane actual de instant-chat, pero es un mal default para agentes de producción porque su snapshot de modelo subyacente puede cambiar. Mantenerlo detrás de un id de modelo explícito permite a los builders probar el alias mientras preservan defaults estables para jobs programados, workflows de producción y evaluaciones reproducibles.
Cron se vuelve más fácil de automatizar. cron list --json y cron show --json ahora incluyen status calculado, así que herramientas externas pueden leer estado disabled, running, ok, error, skipped o idle sin reimplementar la derivación de status de OpenClaw. Este es un buen cambio de contrato de API. Si una CLI le da JSON a máquinas, el JSON debe incluir el estado que los humanos ven. De lo contrario, cada dashboard, monitor y script wrapper tiene que reverse-engineerar el status desde timestamps, campos de último error, flags de enable y marcadores de run. Eso crea automatización inconsistente y falsas alarmas.
La inspección de canales también obtiene un contrato más limpio. openclaw channels list ahora es solo de canales, agrega --all para canales bundled y catalog, renderiza estado installed, configured y enabled, y mueve los detalles de auth y uso del modelo a openclaw models auth list, openclaw status y openclaw models list. La separación es importante porque la preparación del canal y la autenticación del modelo son dominios operativos diferentes. Un canal de Slack o Discord puede estar instalado pero deshabilitado, configurado pero sin permisos, o habilitado pero no saludable actualmente. El auth del modelo pertenece a credenciales de provider y selección de runtime. Mezclar esos en un comando hace más difícil que la automatización responda preguntas simples.
Los límites de seguridad se estrechan en varios lugares. Los handlers de comandos nativos ahora honran el enforcement de owner. Active Memory requiere scope admin para toggles de memoria global. Auto-reply controla el dispatch de herramientas inline skill a través de hooks de autorización pre-tool-call. Todos son fixes de autorización alrededor de superficies que pueden cambiar el estado del sistema. Los comandos nativos pueden ejecutar paths de control privilegiados. Los toggles de memoria global pueden afectar lo que las sesiones futuras recuerdan. Los inline skills pueden trigger herramientas desde un path de auto-reply, donde el usuario puede que no esté viendo cada paso interno. El release empuja estas acciones hacia atrás a través de verificaciones de autorización explícitas.
El fix de dispatch de inline skill merece mencionarse. Los sistemas de skills son convenientes porque permiten a un agente rutear una tarea a comportamiento empaquetado. Pero si auto-reply puede dispatchar una herramienta inline skill sin pasar a través de la autorización pre-tool-call, entonces el camino conveniente se convierte en el camino más débil. El diseño correcto es que cada punto de entrada de herramienta, ya sea invocado por un chat turn visible, un inline skill, un plugin, o un auto-reply de background, fluya a través del mismo policy hook antes de la ejecución. Eso le da a los administradores un lugar para implementar comportamiento de allow, deny, prompt, log o rate-limit.
Las credenciales obtienen un fix similar de límite de runtime. Las herramientas dedicadas tavily_search y tavily_extract ahora resuelven credenciales desde la snapshot de configuración runtime activa, así que las API keys respaldadas por SecretRef de exec no llegan a las herramientas sin resolver. Los sistemas SecretRef solo funcionan si cada herramienta lee secrets a través de la misma vista de runtime resuelta. Si una herramienta recibe el marcador literal sin resolver, el fallo parece credenciales incorrectas aunque el secret exista. Peor aún, los developers pueden trabajar alrededor de esto hardcodeando una clave. Resolver desde la snapshot activa mantiene la config por-run, SecretRefs y credenciales de herramientas alineadas.
Los paths de instalación de plugins managed obtienen más robustez también. OpenClaw ahora usa el mismo shell de lifecycle npm POSIX absoluto para instalación de plugins managed, rollback, reparación y desinstalación de operaciones npm como las actualizaciones de paquetes staged. El modo de fallo aquí es sutil: un shell PATH restringido puede romper cleanup o rollback incluso si el path de instalación original funciona. Usar el mismo shell de lifecycle absoluto a través de acciones de instalación y reparación reduce el drift de entorno. Los operadores deberían poder confiar en que rollback usa las mismas asunciones de toolchain que instalación.
La corrección de sesión y contexto recibe atención. Las sesiones de Gateway limpian snapshots de skills cacheadas durante /new y sessions.reset, así que las sesiones de canal de larga vida reconstruyen listas de skills visibles después de que los skills cambian. Los context engines de agentes invalidan vistas de contexto ensambladas cacheadas cuando el historial fuente se encoge o el ensamblaje falla, evitando que historial pre-reset obsoleto sea reutilizado. Estos son bugs de invalidación de caché, pero el impacto visible para el usuario es severo. Si un reset no limpia la snapshot de skills, el agente puede publicitar capacidades obsoletas. Si una vista de contexto sobrevive a un shrinking del historial, el modelo puede ver estado de conversación antiguo después de un reset.
La compactación obtiene un guard de límite de modelo. Los tokens de reserva de resumen se fijan al límite de output de cada modelo así que la compactación de high-context ya no solicita valores max_tokens inválidos. Este es un problema práctico multi-modelo. Un context engine puede planificar una reserva de resumen grande, pero el modelo seleccionado puede que no pueda emitir tantos tokens. Si la solicitud se envía de todos modos, la compactación falla en el límite del provider. Fijar los tokens de reserva a los límites de output del modelo convierte una solicitud inválida en un plan de resumen acotado.
La semántica de delivery se vuelve más honesta. El delivery de agente ahora reporta deliverySucceeded=false cuando el delivery outbound retorna sin resultado de adapter, así que los paths de delivery claims o empty ya no se disfrazan de envíos exitosos. Los runs aislados de Cron también fallan el announce delivery implícito antes de la ejecución del modelo cuando delivery.channel=last no tiene ruta previa, así que los jobs recurrentes no gastan tokens antes de encontrar un error permanente de destino de delivery. Ambos cambios siguen el mismo principio: no ejecutar trabajo costoso si la ruta de output es imposible, y no reportar éxito cuando ningún adapter confirmó delivery.
El parsing de objetivos Discord obtiene un fix concreto para mensajes de agente cross-channel. Los objetivos con prefijo de provider como discord:channel:<id> ahora se parsean como envíos de canal en lugar de objetivos legacy de mensaje directo de Discord. Esto previene que las llamadas message(action="send") de agente cross-channel mal-enruten IDs de canal en fallos engañosos de Unknown Channel. Los namespaces importan aquí. Un objetivo de canal con prefijo de provider no es un user id, y una capa de mensajería genérica debería preservar esa intención hasta el adapter.
El hardening de Telegram abarca autorización y liveness. Telegram ahora honra accessGroup:* sender allowlists para DMs, grupos, comandos nativos y autorización de callback antes de aplicar verificaciones numéricas de sender-ID. El watchdog de polling sigue atado a la liveness de getUpdates así que llamadas Bot API outbound no relacionadas no pueden enmascarar un poller inbound trabado. Ese segundo fix es un problema clásico de health-check. Un bot todavía puede enviar mensajes mientras su loop de polling inbound está trabado. Si las llamadas outbound resetean el watchdog, el sistema se ve saludable aunque no puede recibir input del usuario.
Las operaciones de voz mejoran en Discord. channels capabilities y channels status --probe ahora auditan permisos de canal de voz Discord, incluyendo objetivos de auto-join, así que los permisos faltantes de Connect, Speak y Read Message History aparecen antes de /vc join. La captura de voz también es menos entrecortada: la gracia de silencio post-speech default se extiende a 2.5 segundos, voice.captureSilenceGraceMs está disponible para sesiones ruidosas, y el prompt de output hablado se aprieta alrededor de fragmentos STT en vivo. Los agentes de voz viven o mueren por la segmentación de turnos. Muy poca gracia de silencio recorta a los hablantes. Demasiada gracia hace al agente lento. Hacer la gracia configurable le da a los operadores una perilla de ajuste para ruido de sala y estilo de habla.
Los fixes de WhatsApp son operativamente específicos pero importantes. Los envíos proactivos de número de teléfono ahora se enrutan a través de mapeos LID forward de Baileys cuando están disponibles, así que los contactos adressados por LID reciben mensajes de agente en lugar de crear ghost chats solo de sender. Los auto-replies con caption de directiva MEDIA: ahora se envían una vez en lugar de emitir un mensaje de media vacío antes del reply de media con caption. Ambos son ejemplos de corrección de adapter. Los providers de mensajería frecuentemente tienen múltiples formas de identidad y primitivas de media. La plataforma de agente necesita mapearlas correctamente o los usuarios ven mensajes duplicados, faltantes o ghost.
El comportamiento de aprobación de Codex cambia de una manera que debería reducir la fatiga de aprobación sin bypasear la revisión. En modos de aprobación de Codex, OpenClaw deja de instalar el hook nativo PermissionRequest pre-guardian por default, permitiendo que el reviewer de Codex apruebe comandos seguros antes de que OpenClaw surface una aprobación. Recuerda decisiones allow-always para payloads idénticos de PermissionRequest nativo de Codex dentro de la ventana de sesión activa, y las solicitudes de aprobación de plugin validan y renderizan sus decisiones allow actuales así que Telegram y otras UIs de aprobación nativas no pueden ofrecer acciones obsoletas. El detalle a explicar es la secuenciación: deja que el reviewer interno maneje comandos seguros, surface aprobaciones cuando sea necesario, y asegúrate de que las acciones de UI coincidan con el conjunto de decisiones allow actuales.
La compatibilidad de provider y media también recibe reparaciones. OpenClaw normaliza uploads PNG sniffados como APNG, preserva el replay de thought-signature de llamadas a herramientas de Gemini 3 con signatures de fallback, acepta keys legacy __env__:VAR de custom-provider, y repara la sanitización de transcripts de llamadas a herramientas en snake_case. Estos son los bordes que hacen que los transcripts y herramientas sean portátiles. Si las signatures de llamadas a herramientas no se replayan, el estado del provider puede rechazar turns de seguimiento. Si la sanitización de transcript mishandla llamadas a herramientas en snake_case, las superficies de replay y audit divergen de lo que realmente pasó.
La calificación práctica del release es alta para los operadores. v2026.5.7 no es una característica llamativa; es un conjunto de contratos de confiabilidad. La publicación verifica el estado del registry. Cron expone el estado calculado. Los canales y el auth del modelo están separados. Los inline skills pasan a través de autorización. Los SecretRefs se resuelven en runtime. Los cachés de contexto se invalidan después del reset. El delivery falla antes de desperdiciar tokens. Los permisos de voz y el timing de captura son visibles. Las aprobaciones de Codex se alinean con decisiones actuales. Estos son los cambios que hacen que un sistema de agente sea menos misterioso cuando corre todo el día.
[28:00] HISTORIA 2 — OpenAI Agents JS v0.9 a v0.11 Convierte los Sandboxes en Manifiestos de Espacio de Trabajo, Límites de Runtime, Programación de Herramientas y Límites de Artefactos
El Agents SDK de OpenAI para JavaScript ha avanzado rápidamente esta semana, y el cambio más importante es la superficie del agente sandbox. Los agentes sandbox se construyen sobre el Agent, Runner y flujo de ejecución existentes, pero añaden espacios de trabajo persistentes, manifiestos de espacio de trabajo, sesiones de sandbox, capacidades, instantáneas, memoria y soporte para retomar. En términos prácticos, esto es la diferencia entre un agente que puede llamar una función y un agente que puede trabajar en un entorno de computadora controlado a lo largo del tiempo.
La abstracción central es el Manifest. Un manifiesto describe lo que contiene el espacio de trabajo del agente: archivos y directorios sintéticos, archivos y directorios locales, repositorios Git, variables de entorno, usuarios, grupos, permisos, monturas y ubicaciones de salida. Eso convierte la configuración del sandbox en un contrato de espacio de trabajo declarativo. En lugar de que una tarea diga "de alguna manera darle a este agente un repositorio y un lugar para escribir artefactos", el manifiesto dice exactamente qué está montado, dónde aparece, qué archivos son editables y qué rutas externas están permitidas.
Eso importa porque los agentes de archivos y comandos necesitan límites. Si un agente puede inspeccionar archivos, ejecutar comandos, aplicar parches y generar artefactos, el sandbox tiene que definir qué está en scope. Un espacio de trabajo persistente es poderoso para tareas de largo horizonte porque el agente puede continuar desde el estado previo, pero la persistencia también significa que el estado puede acumularse. Las instantáneas y el comportamiento de retomar permiten a los builders decidir cuándo preservar, restaurar o descartar ese estado. La pregunta operativa se convierte en: qué archivos son entradas de la tarea, cuáles son salidas generadas y cuáles son memoria persistente entre ejecuciones.
v0.11.0 añade un cambio en el límite de artefactos que es fácil de pasar por alto pero importante. La materialización de código fuente local del sandbox ahora mantiene LocalFile.src y LocalDir.src dentro del baseDir de materialización a menos que la ruta de origen esté cubierta por Manifest.extraPathGrants. El directorio base es el directorio de trabajo actual del proceso del SDK cuando se aplica el manifiesto. Los orígenes relativos se resuelven desde ese directorio. Los orígenes absolutos ya deben estar dentro de él o bajo una grant explícita. Esto cierra un problema de límite de artefactos local.
La implicación de la migración es directa. Si una aplicación copia intencionalmente archivos confiables del host desde fuera del directorio base hacia un espacio de trabajo sandbox, ahora tiene que declararlo con una grant de ruta extra. Ese es un mejor contrato. Hace la diferencia entre "el agente puede leer rutas arbitrarias del host porque una ruta de origen apuntaba ahí" y "la aplicación dio grant explícitamente a este directorio externo, posiblemente de solo lectura, con una descripción." Para sistemas de agentes que manejan datos de clientes, repositorios propietarios o archivos cercanos a credenciales, los grants explícitos son el default correcto.
El modelo default del SDK cambió en v0.10.0 de gpt-4.1 a gpt-5.4-mini cuando no se establece ningún modelo. Eso afecta a los agentes y ejecuciones que dependían de defaults implícitos. Porque el nuevo default es un modelo GPT-5, los settings de modelo default implícitos ahora incluyen defaults de GPT-5 como reasoning.effort="none" y verbosity="low". La recomendación del builder es simple: los agentes de producción deben establecer el modelo explícitamente. Los defaults son útiles para ejemplos y prototipos, pero el comportamiento del agente, costo, latencia, esfuerzo de razonamiento y verbosidad no deberían cambiar solo porque una dependencia fue actualizada.
Los límites de turnos se vuelven explícitos. maxTurns=null puede deshabilitar el límite de turnos de ejecución del Agents SDK, mientras se mantiene el default en DEFAULT_MAX_TURNS, actualmente diez, cuando el setting se omite. Esta es una válvula de seguridad en runtime. Un límite duro de turnos previene bucles descontrolados y costos sorpresa. Deshabilitar el límite puede ser necesario para flujos de trabajo de largo horizonte, pero debería combinarse con otros controles: timeouts de reloj de pared, listas blancas de herramientas, límites de presupuesto, checkpointing y visibilidad de progreso. La distinción útil es: omitido significa default seguro; null significa que el desarrollador intencionalmente eliminó el límite.
La programación de herramientas también se vuelve más controlable. toolExecution.maxFunctionToolConcurrency en RunConfig controla la concurrencia de ejecución de herramientas de función local del lado del SDK. Esto es separado del ModelSettings.parallelToolCalls del lado del provider. Esa separación importa. El modelo puede estar permitido proponer múltiples llamadas de herramientas en paralelo, pero el runtime local aún necesita decidir cuántas ejecutar a la vez. Una herramienta de filesystem, herramienta de base de datos, herramienta de shell y herramienta HTTP tienen diferentes efectos secundarios y perfiles de recursos. La concurrencia local es una política de programación de runtime, no solo una preferencia de generación del modelo.
El naming de herramientas MCP obtiene una opción de evitar colisiones. El SDK puede incluir el nombre del servidor MCP en los nombres de herramientas, alineándose con el Python SDK. Esto previene conflictos cuando múltiples servidores MCP exponen herramientas con el mismo nombre local. Sin prefijos de servidor, dos servidores diferentes podrían ambos exponer search, read o query. El agente entonces ve nombres de herramientas ambiguos, y los logs se vuelven más difíciles de auditar. El naming con prefijo de servidor hace el namespace de herramientas más explícito, lo cual es especialmente importante cuando los agentes se conectan a múltiples servidores de herramientas internos y externos.
v0.11.0 también cambia el modelo default de RealtimeAgent a gpt-realtime-2. Los defaults de realtime no son cosméticos. Un modelo de realtime afecta la latencia de audio, la toma de turnos, el comportamiento de transcripción, las expectativas de barge-in y la calidad de interacción de voz. Si un producto usa RealtimeAgent sin fijar un modelo, actualizar el SDK puede cambiar el comportamiento subyacente de realtime. Una vez más, la recomendación es fijar los defaults de producción y probar nuevos modelos de realtime bajo condiciones de audio representativas antes de moverlos a sesiones面向 clientes.
La serie de releases también incluye fixes que muestran dónde fallan los runtimes de agentes. v0.9.1 preserva la identidad de agentes con nombres duplicados en la serialización de estado de ejecución, reconcilia las llamadas de función transmitidas cuando las ejecuciones administradas por el servidor se abortan, y evita reproducir IDs de elementos de conversación del asistente. v0.10.1 restaura el historial de sesión cuando falla el reemplazo de compactación de respuestas y valida las políticas de aprobación de MCP hosted. Estos son fixes de máquina de estados. Los sistemas de agentes tienen estado local, estado del servidor, deltas transmitidos, reemplazo de compactación y política de aprobación. Si esos se desincronizan, el siguiente turno puede reproducir el elemento equivocado, perder historial o aprobar la acción equivocada.
La conclusión práctica para los builders de JavaScript es tratar el Agents SDK como un runtime, no solo como un wrapper alrededor de llamadas al modelo. Definir los manifiestos de espacio de trabajo estrechamente. Usar extraPathGrants para rutas del host a propósito. Fijar modelos de producción. Decidir si los límites de turnos deben mantenerse en el default, aumentarse o deshabilitarse con otros guardrails. Establecer la concurrencia de herramientas locales basada en efectos secundarios. Prefijar nombres de herramientas MCP cuando hay múltiples servidores conectados. Probar cambios de modelos de realtime como cambios de comportamiento de producto, no solo como actualizaciones de dependencias.
[40:00] HISTORIA 3 — Gemini CLI v0.42 Nightlies Refuerza los Bordes del Runtime de Agentes: Evals de Seguridad de Shell, Carreras de Aprobación, Colas de Compresión, Bloqueos de OAuth y Parches de Auto Memory
Las nightlies del 6 y 7 de mayo de Gemini CLI son útiles porque muestran el trabajo de runtime poco glamoroso requerido para agentes de línea de comandos. Los cambios no son un solo lanzamiento de modelo; son una lista de casos edge alrededor de aprobación, seguridad de shell, compresión de contexto, fallos de streaming, OAuth, naming de sandbox, Auto Memory y salida no interactiva. Esos son exactamente los lugares donde los agentes CLI se vuelven frágiles.
Comenzar con las aprobaciones. Los fixes del servidor A2A resuelven una condición de carrera en la aprobación de herramientas, mejoran el reporte de status y resuelven una carrera en la espera de completado de herramientas. En un runtime de agente, la aprobación es una máquina de estados. Una llamada de herramienta es propuesta, se solicita aprobación, llega una decisión humana o de política, la herramienta se ejecuta o se denied, y el runtime reporta completado. Si el sistema reporta status antes de que el resultado de la aprobación esté comprometido, o espera la señal de completado equivocada, la UI puede mostrar una herramienta como completada mientras aún está pendiente, o ejecutar después de que un camino de denegación debería haberlo detenido.
Los evals de seguridad de comandos de shell son una adición fuerte. Las herramientas de shell son poderosas porque permiten a los agentes inspeccionar archivos, ejecutar tests, instalar dependencias y operar flujos de trabajo de desarrolladores. Son peligrosas por la misma razón. Un suite de evals de seguridad de shell da a los mantenedores una forma de probar si el modelo y runtime identifican correctamente comandos riesgosos, redirecciones, operaciones destructivas de archivos, exposición de credenciales y intentos de escape del sandbox. La parte importante es que la seguridad se evalúa como comportamiento, no solo se documenta como política.
Las nightlies también añaden salida JSON para AgentExecutionStopped en modo no interactivo. Eso importa para CI y scripts wrapper. Una TUI humana puede mostrar un estado detenido en prosa; la automatización necesita un objeto estructurado. Si las ejecuciones no interactivas se detienen por una política, límite, error o estado de aprobación, la salida JSON permite a los sistemas llamadores distinguir una parada limpia de un crash o timeout. Los agentes CLI cada vez más se ejecutan dentro de jobs programados y sistemas de orquestación, así que la semántica de terminal estructurada es parte de la superficie del producto.
La compresión de contexto obtiene un fix de queueing: los mensajes pueden ser encolados durante la compresión. La compresión es necesaria porque las sesiones de agentes largas exceden los límites de contexto, pero también es un peligro de concurrencia. Si un usuario envía un mensaje mientras el runtime está comprimiendo el historial, el sistema tiene que decidir si bloquear la entrada, descartarla, appenderla al contexto antiguo, o encolarla para el contexto comprimido. El queueing preserva la intención del usuario mientras permite que el manager de contexto termine una reescritura coherente. Sin eso, la corrupción del chat o turnos perdidos se vuelven probables.
El CLI también reintenta errores ERR_STREAM_PREMATURE_CLOSE. Las ejecuciones de agentes con streaming dependen de conexiones de larga vida a través de la salida del modelo, el progreso de herramientas y el renderizado del terminal. Un cierre prematuro puede ser un fallo transitorio de red o transporte en lugar de un fallo lógico. Reintentar cuidadosamente puede hacer el sistema más robusto, pero el runtime debe evitar duplicar efectos secundarios. El patrón seguro es reintentar paths de stream idempotentes o pre-ejecución y ser más conservador una vez que una herramienta ha mutado estado.
Varios fixes son sobre entornos headless y no estándar. El CLI previene un bloqueo silencioso durante auth de OAuth en Linux headless. Rechaza IDs de proyecto numéricos en GOOGLE_CLOUD_PROJECT. Mejora el UX de lista de MCP en carpetas no confiables. Estos son fixes de calidad del operador. Muchos agentes corren en máquinas remotas, contenedores, workers de CI o servidores sin navegador. Los fallos de autenticación y resolución de proyecto necesitan fallar con status accionable, no bloquear esperando una UI que no existe.
El comportamiento del sandbox obtiene cambios más pequeños pero importantes. El CLI randomiza los nombres de contenedores de sandbox, y permite redirección en modos YOLO y AUTO_EDIT sin sandboxing. Los nombres de contenedores randomizados reducen colisiones cuando múltiples ejecuciones ocurren en el mismo host. El comportamiento de redirección importa porque la sintaxis de shell es parte del trabajo normal del desarrollador: redirigir salida a archivos, pipear logs y escribir parches. Pero cualquier cambio alrededor de la redirección también necesita evaluación de seguridad porque la redirección puede sobrescribir archivos o exfiltrar contenido. Es por eso que los evals de seguridad de shell y los cambios de comportamiento de shell pertenecen a la misma discusión.
Auto Memory obtiene un endurecimiento de la lista de permitidos para parches privados y documentación más clara, ya que Auto Memory propone actualizaciones de memoria y skills. La memoria persistente es útil solo si las actualizaciones están delimitadas y son revisables. Una lista de permitidos para parches de memoria controla qué tipos de actualizaciones de memoria privada pueden aplicarse automáticamente. Sin ese límite, un agente podría persistir datos sensibles, incorrectos o excesivamente amplios. Con un límite demasiado estricto, la memoria se vuelve inútil. El modelo de operador correcto es: propuesta, delimitación, lista de permitidos y revisión.
El lanzamiento del 7 de mayo también mueve la explicación de herramientas del flujo de pensamientos al contenido de la llamada de herramienta. Puede sonar como limpieza de UI, pero afecta la privacidad y la observabilidad. Los flujos de pensamientos y el contenido de llamadas de herramientas tienen diferentes audiencias y reglas de retención en muchos sistemas. Si una explicación de herramienta pertenece a la llamada de herramienta, colocarla ahí hace que los registros de auditoría sean más claros y evita mezclar la lógica de herramientas visible para el usuario con canales de razonamiento interno. Los runtimes de agentes necesitan estos límites de contenido para mantenerse consistentes.
La recomendación práctica para operadores de Gemini CLI es observar estos nightlies como señales de endurecimiento del runtime. Las máquinas de estados de aprobación necesitan pruebas de carrera. Las herramientas de shell necesitan evaluaciones de seguridad. La compresión necesita encolamiento de entrada. El streaming necesita reglas de reintento que eviten efectos secundarios duplicados. OAuth necesita modos de falla headless. Los parches de memoria necesitan listas de permitidos. Las ejecuciones no interactivas necesitan estados JSON. Estos no son pulido opcional para un agente CLI; son la diferencia entre una terminal demo y una superficie de automatización confiable.
[50:00] Cierre
La conclusión práctica del EP047 es operativa: OpenClaw v2026.5.7 hace que el estado del sistema sea más visible y seguro en publicación, cron, canales, memoria, entrega, voz, mensajería y aprobaciones. OpenAI Agents JS muestra cómo los agentes en sandbox se están convirtiendo en runtimes de manifesto de workspace con grants de ruta explícitos, límites de turnos, concurrencia de herramientas y espacios de nombres de MCP. Gemini CLI muestra los bordes del runtime que importan cuando los agentes de línea de comandos se ejecutan en flujos de trabajo reales: carreras de aprobación, seguridad de shell, colas de compresión, reintentos de transporte, latencia de OAuth y alcance de parches de memoria. Para los constructores, la pregunta no es solo qué puede hacer el agente; es cuáles son los límites, estados y rutas de recuperación que existen cuando este hace el trabajo.