[NOVA]: Soy NOVA. [ALLOY]: Soy ALLOY, y esto es AgentStack Daily... [NOVA]: Hoy nos mantenemos en una sola línea todo el tiempo: superficies de control. No estamos hablando de vibras, no de "la IA se está volviendo más inteligente," sino de las palancas prácticas que决定an lo que un agente puede hacer, dónde puede hacerlo, y cómo puedes supervisarlo cuando una ejecución sale mal. [ALLOY]: Las noticias de lanzamiento y producto al inicio son de alcance reducido pero operativamente importantes. Claude Code en su versión más reciente agrega soporte de modo automático en proveedores de nube administrados—Bedrock, Vertex y Foundry—cuando lo habilitas explícitamente con una variable de entorno. La actualización de la app Codex de OpenAI agrega uso de computadora en Windows y supervisión remota desde móvil o Mac mientras el host de Windows mantiene tu repositorio y runtime local, además de comportamiento más rápido del navegador en la app y una nueva superficie de Codex Profiles para uso y actividad de tokens. [NOVA]: Luego pasamos a un cambio de API orientado a desarrolladores de Anthropic que es silenciosamente poderoso: la Messages API ahora acepta entradas del sistema dentro del array de mensajes, lo que significa que tu harness puede actualizar instrucciones de runtime a mitad de la ejecución sin hacerse pasar por el usuario, y sin convertir tu prompt en un blob que crece constantemente. [ALLOY]: Y el radar de proyectos es un solo tema con cuatro ángulos: memoria arquitectural que puedes consultar, memoria de agente que decae para que no se convierta en autoridad obsoleta, agentes de código locales que hacen la iteración privada económica, y loops de reparación respaldados por grafos que fuerzan evidencia en la corrección. Entremos en materia... [NOVA]: El hilo conductor en EP060 es que la "capacidad del agente" está empezando a parecer menos una elección de modelo único y más una pila de contratos explícitos. [ALLOY]: El primer contrato es la ubicación de ejecución. Si el agente está actuando dentro de un entorno de proveedor de nube administrado, eso cambia la identidad, el logging, la residencia de datos y el rastro de auditoría que puedes obtener después. El segundo contrato son los límites del host. Si el agente está controlando un escritorio Windows, necesitas saber si los archivos y el shell viven en el host remoto o fueron copiados a algún otro entorno. El tercer contrato es la propiedad de las instrucciones. Si tu harness no puede actualizar el contrato del sistema a mitad de la ejecución, el modelo termina adivinando qué cambió. [NOVA]: Y el cuarto contrato es la memoria. Muchos equipos hablan de "memoria del agente" como si la respuesta fuera guardar cada transcripción para siempre y reinyectarla. En la práctica, ese enfoque tiende a crear un nuevo modo de falla: orientación obsoleta se trata como política actual, y detalles irrelevantes desplazan los pocos hechos que realmente necesitabas. [ALLOY]: Así que el punto del set de hoy es mostrar que la pila se vuelve más explícita. El modo automático está detrás de una variable de entorno para que pueda ser probado deliberadamente. El uso de computadora en Windows mantiene el contexto local en el host mientras la supervisión se vuelve móvil. Las entradas del sistema dentro de arrays de mensajes separan "lo que el usuario quiere" de "lo que el runtime permite ahora mismo." Y las herramientas de memoria que cubrimos son principalmente sobre estructura y frescura en lugar de acumulación bruta. [NOVA]: Si has tenido un fallo de agente en el último mes, probablemente no perdiste porque el modelo no podía escribir código. Perdiste porque la ejecución no tenía los guardrails correctos, la evidencia correcta, o la capacidad correcta para actualizar suposiciones cuando algo cambió. [ALLOY]: Con ese marco, empecemos con el bloque de lanzamiento y producto al inicio del episodio... [NOVA]: Primer punto: Claude Code en su versión más reciente agrega soporte de modo automático en Bedrock, Vertex y Foundry para Opus 4.7 y Opus 4.8, pero solo cuando configuras CLAUDE_CODE_ENABLE_AUTO_MODE=1. [ALLOY]: Dos detalles importantes se esconden dentro de esa oración aparentemente pequeña. Uno es que no es "el modo automático está ahora en todas partes." Es "el modo automático existe en más líneas de proveedores, y debes habilitarlo." El otro es que las líneas de proveedores importan tanto como la característica en sí, porque el modo automático es fundamentalmente una superficie de permisos y enrutamiento. [NOVA]: Desglosemos el modo automático en términos prácticos. En un agente de código, hay un espectro de acciones: leer archivos, buscar, ejecutar pruebas, instalar dependencias, iniciar un servidor de desarrollo, editar código, hacer commits, abrir PRs, y así sucesivamente. "Modo automático" es la etiqueta para el sistema decidiendo que ciertos pasos pueden ejecutarse automáticamente sin detenerse para una confirmación humana en cada paso. [ALLOY]: Eso no es solo un interruptor de conveniencia. Cambia el perfil de riesgo de la ejecución del agente. Si tu agente puede ejecutar comandos automáticamente, el "límite de seguridad" ya no es solo el modelo. Es la combinación del comportamiento del modelo, la política del harness, los permisos de herramientas, el sandbox, y el entorno del proveedor donde suceden esas llamadas a herramientas. [NOVA]: Y ahí es donde entran las líneas de nube administrada. Bedrock, Vertex y Foundry son rutas comunes cuando un equipo quiere acceso al modelo con identidad y cumplimiento nativo de la nube. En esos entornos, a menudo hay una fuerte preferencia de que las solicitudes y logs permanezcan dentro de un límite particular de la nube, vinculados a credenciales organizacionales, con políticas de acceso que puedes hacer cumplir centralmente. [ALLOY]: Así que el hecho de que el modo automático sea compatible allí significa que puedes evaluar el comportamiento de acción automática bajo la misma realidad de IAM y auditoría que producción. Si pruebas el modo automático solo en un flujo de estación de trabajo de desarrollador local y luego despliegas en un contexto de nube administrada, estás cambiando mucho del sistema circundante al mismo tiempo—identidad, networking, logging, y a veces incluso patrones de acceso al sistema de archivos. [NOVA]: la variable de entorno explícita es el otro punto clave. Si estás operando una toolchain de equipo, generalmente no quieres una sorpresa donde una actualización cambia el comportamiento de "pregunta antes de hacer cosas" a "haz cosas." La habilitación forzada fuerza un punto de activación intencional. [ALLOY]: Esa habilitación también te da una estrategia de prueba limpia. Puedes ejecutar las mismas tareas con y sin modo automático y comparar resultados: número de llamadas a herramientas, número de acciones destructivas intentadas, si el agente escala apropiadamente cuando está incierto, y si obedece las restricciones de "sin escrituras" o "sin red" cuando están vigentes. [NOVA]: Aquí hay una forma concreta de probar esto sin convertir tu repo en el experimento. Elige un proyecto pequeño y descartable o una rama segura conocida. Define tres categorías de tareas. [ALLOY]: Categoría uno: tareas de solo lectura. Pide al agente que produzca un resumen arquitectónico, identifique puntos de entrada, liste las pruebas de integración y señale cualquier riesgo obvio de dependencias. En modo automático, quieres ver que hace lecturas de archivos y búsquedas eficientemente sin inventar llamadas a herramientas que no necesita. [NOVA]: Categoría dos: tareas de ejecución segura. Deja que ejecute el conjunto de pruebas, inicie el servidor de desarrollo, o ejecute un linter—cosas que son mayormente reversibles y no mutan mucho. Tu verificación aquí es si el agente elige comandos apropiados para el proyecto y el entorno. Por ejemplo, ¿intenta npm test en un repositorio que claramente es de Python? ¿Nota la presencia de pnpm-lock y usa pnpm? ¿Ejecuta el subconjunto mínimo de pruebas para un cambio estrecho? [ALLOY]: Categoría tres: tareas de escritura con protecciones estrictas. Dale un cambio pequeño, como actualizar una firma de función y actualizar los sitios de llamada, o agregar una validación de null faltante. Tu harness todavía debería prevenir cualquier cosa que consideres de alto riesgo—como hacer push, publicar paquetes, cambiar archivos de secretos, o modificar manifiestos de deployment—a menos que apruebes explícitamente. [NOVA]: El punto es medir si el modo automático reduce la fricción en las tareas que quieres que acelere, sin aumentar silenciosamente el riesgo. La variable de entorno hace que sea fácil ejecutar pruebas A/B y mantener el comportamiento de producción bloqueado hasta que estés satisfecho. [ALLOY]: Ahora, la historia más grande del producto: la actualización del 29 de mayo de la app Codex de OpenAI. Hay cuatro cambios prácticos mencionados en las notas que estamos usando: uso de computadora en Windows, control remoto desde móvil o Mac mientras Windows permanece como host, mejoras en la velocidad y estabilidad del navegador integrado, y Codex Profiles con identidad, actividad, estadísticas de uso y actividad de tokens. [NOVA]: Empecemos con el uso de computadora en Windows. "Uso de computadora" es la categoría donde el agente puede ver una interfaz de escritorio e interactuar con ella: hacer clic en botones, escribir en campos, cambiar ventanas y navegar aplicaciones que no están neatly envueltas en una API. [ALLOY]: En Windows específicamente, eso importa para muchos flujos de trabajo reales de desarrollo. Hay stacks de aplicaciones nativas de Windows, herramientas internas empresariales, y una enorme cantidad de trabajo tipo "la única forma de hacer esto es hacer clic a través de la GUI". Piensa en installers, consolas administrativas propietarias, administradores de credenciales y ciertos flujos de IDE o debugger. [NOVA]: Pero la pregunta operativa central con cualquier producto de uso de computadora es: ¿dónde sucede la ejecución y dónde están los archivos? El límite de la actualización es explícito. Puedes supervisar desde iOS, Android o Mac, pero la máquina Windows permanece como host para los archivos del proyecto, shell, servidor de aplicaciones y contexto local. [ALLOY]: Ese límite tiene algunas consecuencias que vale la pena mencionar. Primero, reduce la duplicación de datos. El repositorio no tiene que ser copiado a un entorno remoto solo para que el agente pueda ejecutarse. Segundo, reduce la latencia en el ciclo de "ejecutar el servidor, verificar en el navegador, ajustar código, rerunear pruebas" porque el runtime es local a los archivos. [NOVA]: Tercero, cambia el modelo de confianza. Tu dispositivo de supervisión es más como una superficie de control remoto y monitoreo, no el lugar donde el trabajo realmente se ejecuta. Eso es útil porque significa que puedes alejarte del escritorio y aún así dirigir la sesión, pero no estás moviendo accidentalmente toda la operación a un límite de seguridad diferente. [ALLOY]: El riesgo a entender es que el uso de computadora es, por diseño, autoridad amplia. Si el agente puede hacer clic y escribir, potencialmente puede hacer cualquier cosa que tú puedas hacer en ese entorno, incluyendo acciones que son difíciles de revertir. Así que el enfoque recomendado es: pruébalo en una aplicación de bajo riesgo antes de depender de él para trabajo importante. [NOVA]: Bajo riesgo aquí significa un proyecto que puede ser reiniciado, no toca credenciales de producción, y no causará daño si ejecuta un comando inesperado. Un buen objetivo inicial es una aplicación web de ejemplo, un servicio demo solo local, o un repositorio que puedas descartar. [ALLOY]: La primera prueba es simplemente confiabilidad: ¿puede interactuar consistentemente con estados comunes de la UI del desarrollador? Cosas como: una ventana de terminal que necesita foco, un prompt de UAC, un navegador con múltiples pestañas, un editor que muestra "archivo cambiado en disco", un test runner que requiere desplazamiento para ver los fallos. [NOVA]: La segunda prueba es intención delimitada. Dale una tarea que tenga una condición final clara, como "ejecuta las pruebas y dime el nombre del primer test que falla y el error". Quieres ver si el agente se mantiene en la tarea o se distrae por caminos laterales, como actualizar dependencias o reformatear código que no se solicitó. [ALLOY]: La tercera prueba es recuperación. Crea intencionalmente pequeñas interrupciones: mata el servidor de desarrollo, desconecta la red brevemente, causa un fallo de build cambiando una config, o abre un modal. Luego observa si el agente nota que está atascado, reporta el problema y pide orientación cuando llega a un límite que no puede cruzar. [NOVA]: Ahora, las mejoras del navegador integrado. En flujos de trabajo de agentes, el navegador no es "solo un navegador". A menudo es la superficie de verificación. Es donde confirmas que la corrección realmente funciona, donde reproduces el bug, donde inspeccionas las llamadas de red y donde validas los flujos de UI. [ALLOY]: Si el navegador integrado es lento o inestable, el loop de verificación del agente se degrada. Eso lleva a uno de los peores patrones de fallo en codificación automatizada: el agente afirma que una corrección es correcta porque no puede ejecutar confiablemente el último paso que la desaprobaría. [NOVA]: Así que "comportamiento del navegador integrado más rápido y más estable" podría sonar como una línea de pulido de producto, pero impacta directamente en qué tan confiables son las afirmaciones de completitud del agente. Un camino de navegador estable significa que el agente puede rerunear los pasos de reproducción y realmente observar el resultado. [ALLOY]: El ítem final de actualización de Codex es Codex Profiles: identidad, actividad a lo largo del tiempo, detalles del perfil, estadísticas de uso y actividad de tokens. Esto es una superficie de control en el sentido más simple: inspectabilidad. [NOVA]: En sesiones de larga duración, necesitas responder preguntas como: ¿qué perfil ejecutó esta tarea, cuál fue la huella de uso, y el consumo de tokens coincide con lo que esperabas? Si estás supervisando trabajo remoto entre dispositivos, también quieres confirmar trazas de identidad y actividad, especialmente si múltiples personas comparten un host Windows. [ALLOY]: La actividad de tokens como superficie expuesta importa para la depuración. Si una ejecución de agente de pronto cuesta más, la causa muchas veces no es "el modelo se degradó." Es algo como: está leyendo repetidamente los mismos archivos grandes, está re-sintetizando demasiado historial, está atrapado en un bucle de pruebas fallidas, o está llamando herramientas con salidas enormes. [NOVA]: Una superficie de perfil que hace visible eso es la diferencia entre "esto se siente caro" y "podemos ver qué paso del flujo de trabajo infló los tokens." Y una vez que puedes verlo, puedes arreglarlo: agrega un límite de tamaño de archivo, agrega truncamiento de logs, agrega un paso de recuperación de memoria más estructurado, o fortalece el plan de verificación. [ALLOY]: Juntando esas dos historias principales, obtienes un solo tema: el trabajo de agentes se está volviendo menos atado a una sola máquina y más atado a puntos de gobernanza explícitos. [NOVA]: El modo automático en Bedrock, Vertex y Foundry se trata de traer automatización basada en políticas a entornos de nube empresariales. La supervisión remota de Codex se trata de dejar que un humano controle desde cualquier lugar mientras mantiene la ejecución local en el host que tiene el repositorio y la aplicación en ejecución. [ALLOY]: El movimiento recomendado no es "encender todo." Es tratar ambos como experimentos controlados. Hacer gating explícito del modo automático, probarlo con tareas seguras, y medir el comportamiento. Probar el uso de computadora Windows en un entorno descartable, y solo entonces decidir qué alcance de trabajo real le confías. [NOVA]: A continuación, vamos a hablar de un cambio que es menos visible para los usuarios finales pero extremadamente visible para los constructores de harnesses: instrucciones de runtime que pueden actualizarse como entradas de sistema en medio de la ejecución. [ALLOY]: El anuncio de Opus 4.8 de Anthropic incluyó un cambio orientado a desarrolladores que importa aunque nunca cambies de modelo: la API de Mensajes ahora acepta entradas de sistema dentro del array de mensajes. [NOVA]: Eso suena sutil, así que aquí está por qué cambia cómo construyes agentes. Históricamente, muchos harnesses tratan "prompt de sistema" como un blob fijo establecido al inicio de la ejecución. Luego todo lo demás—mensajes de usuario, salidas de herramientas, observaciones—se agrega en una secuencia. [ALLOY]: Pero las ejecuciones de agentes reales no son estáticas. Los permisos cambian. Los presupuestos cambian. El entorno cambia. El harness aprende nuevos hechos que el modelo debe obedecer. Y si no puedes actualizar el contrato de sistema limpiamente, terminas con patrones incómodos. [NOVA]: Patrón uno es forzar la actualización a través de un turno de usuario. Eso contamina el audit trail, porque hace que parezca que el usuario pidió cambios de política cuando en realidad el runtime se está adaptando al estado. [ALLOY]: Patrón dos es meter nuevas notas de política en un prompt de sistema creciente y reenviar todo. Eso aumenta el costo, aumenta la presión del contexto, y en la práctica puede romper las optimizaciones de caché porque el "prefijo" sigue cambiando. [NOVA]: Patrón tres es pedirle al modelo que infiera el estado cambiado desde los logs. Eso funciona hasta que deja de funcionar. Si el modelo se pierde una línea de log, continuará operando como si nada hubiera cambiado—like it still has permission to write files, or it still has network access, or it still has enough budget to run a full test suite. Si el modelo se pierde una línea de log, continuará operando como si nada hubiera cambiado—like it still has permission to write files, or it still has network access, or it still has enough budget to run a full test suite. [ALLOY]: Las entradas de sistema dentro del array de mensajes le dan al harness una herramienta más precisa: puedes insertar o agregar un mensaje de rol de sistema que dice, efectivamente, "el contrato ahora es diferente," sin fingir que el usuario lo dijo. [NOVA]: Y eso permite separación de preocupaciones. El canal del usuario puede permanecer como un registro limpio de intención, aprobaciones y aclaraciones. El canal del sistema puede permanecer como la declaración autoritativa del runtime de restricciones: herramientas permitidas, detalles del entorno, presupuesto y reglas operacionales. [ALLOY]: Hagamos esto concreto. Imagina una ejecución de agente de código donde empiezas con permisos amplios. Al agente se le permite leer archivos, correr pruebas y escribir cambios en una rama. A mitad de la ejecución, el harness detecta que está en un estado de repositorio protegido—tal vez accidentalmente abrió un worktree de producción, o la política de rama cambia, o el agente ahora está operando en un directorio marcado como sensible. [NOVA]: Con entradas de sistema editables, el harness puede inyectar un nuevo mensaje de sistema: "Las escrituras ahora están deshabilitadas. Solo puedes proponer diffs y pedir aprobación." Eso es mucho más limpio que decírselo al modelo en un mensaje de usuario o esperar que lo descubra. [ALLOY]: Otro escenario común: presupuesto de tokens. Algunos harnesses asignan un presupuesto por trabajo o por fase. Temprano en la ejecución, podrías permitir exploración. Más tarde, una vez que el agente tiene un plan, podrías apretar el presupuesto para que se enfoque en ejecución. [NOVA]: Con entradas de sistema, puedes actualizar la instrucción: "El presupuesto restante es bajo. Prioriza lecturas de archivos mínimas, corre pruebas dirigidas únicamente, y resume antes de actuar." La clave es que es una actualización de instrucción ligada al estado del runtime, no una preferencia de usuario que podría mezclarse con la tarea. [ALLOY]: El contexto del entorno es otro. Supón que el harness detecta que el sandbox cambió de un contenedor de desarrollo completo a un entorno restringido sin red. O detecta que un caché de dependencias está vacío, así que las instalaciones serán lentas. O descubre que el repositorio usa una herramienta de monorepo que requiere una secuencia de comandos particular. [NOVA]: Puedes inyectar esos como hechos del sistema. Eso significa que el modelo no tiene que redescubrirlos cada vez, y no tiene que adivinar basándose en observaciones parciales. [ALLOY]: Ahora, una de las afirmaciones clave de las notas es la preservación de prompt-cache. En sesiones largas, el caché es importante porque la parte más costosa de las llamadas repetidas suele ser el "prefijo" repetido: las instrucciones estables, la orientación del repositorio y el contexto de alto nivel. [NOVA]: Si tu harness puede agregar mensajes del sistema como entradas discretas en lugar de reescribir todo el prompt del sistema, puedes mantener un prefijo grande y estable sin cambios. Eso mejora la efectividad de las estrategias de caché y reduce la presión de comprimir todo en una mega-instrucción al inicio. [ALLOY]: Incluso sin caché explícito, esto ayuda con la claridad. En lugar de un prompt de sistema gigante que incluye una docena de actualizaciones históricas, puedes tener una línea de tiempo de mensajes del sistema: contrato inicial, y luego actualizaciones a medida que cambian las condiciones. [NOVA]: Pero aquí se requiere disciplina. Si usas entradas del sistema sin cuidado, puedes crear instrucciones del sistema en conflicto. Por ejemplo: el sistema inicial dice "Puedes escribir en el repo," luego otro sistema dice "Los escritos están deshabilitados," y después otro dice "Los escritos están permitidos para archivos bajo /docs." Si no defines precedencia, el modelo podría intentar satisfacer todos a la vez. [ALLOY]: Entonces el harness debe tratar las entradas del sistema como actualizaciones de estado con un claro "el último gana" o un anulación claramente limitada. A menudo es útil escribir las entradas del sistema de manera estructurada, incluso si siguen siendo texto plano. [NOVA]: Por ejemplo, puedes incluir un pequeño formato de encabezado de sección dentro del mensaje del sistema: "Permisos: lectura sí, escritura no, red no." "Presupuesto: tokens restantes bajos." "Ejecución: ejecutar pruebas permitido, instalaciones no permitidas." El objetivo es facilitar que el modelo reconcilie el estado actual. [ALLOY]: También quieres mantener las actualizaciones del sistema generadas por máquina distintas de la política del sistema escrita por humanos. Un buen patrón es: un mensaje de sistema inicial para tu política permanente y reglas de seguridad, y luego mensajes de sistema subsecuentes que son puramente "hechos de runtime." [NOVA]: Los hechos de runtime pueden incluir: nombre de la rama actual, si el árbol de trabajo está limpio, qué pruebas se ejecutaron por última vez y sus resultados, si el agente ya intentó una solución y falló, qué herramientas están disponibles actualmente, y si el entorno está en sandbox. [ALLOY]: Esa última pieza—disponibilidad de herramientas—es uno de los puntos de falla más grandes día a día en los stacks de agentes. Un agente cree que puede hacer algo porque lo hizo antes en la ejecución, pero luego se revoca una herramienta o cambia un permiso, y sigue intentando la misma llamada. [NOVA]: Una actualización de entrada del sistema puede cerrar esa brecha inmediatamente. Si el harness revoca el acceso a la red, puede inyectar: "Las llamadas a herramientas de red ahora están deshabilitadas." Entonces el modelo debería dejar de intentar curl, instalaciones de paquetes que requieren descargas, o llamadas a APIs remotas. [ALLOY]: Hay otra ventaja sutil: separación auditable. Cuando más tarde revises una ejecución, puedes distinguir entre lo que el usuario solicitó y lo que el runtime impuso. Eso importa para cumplimiento, pero también para debugging. Si una ejecución se comportó de manera extraña, puedes ver si una restricción del runtime la empujó por un camino raro. [NOVA]: En operaciones de agentes, esa es la diferencia entre "el modelo tomó una mala decisión" y "el harness cambió las reglas y el modelo cumplió." Son problemas diferentes con soluciones diferentes. [ALLOY]: Prueba sugerida para constructores de harness: implementa un cambio de permisos a mitad de ejecución y verifica que el modelo responda correctamente. Inicia una ejecución donde los escritos están permitidos. Deja que el modelo proponga o incluso comience ediciones. Luego inyecta una entrada del sistema que deshabilite los escritos y pídele que continúe. [NOVA]: Estás buscando ciertos comportamientos. Uno: ¿deja de intentar acciones de escritura y cambia a planificación o propuestas de diff? Dos: ¿reconoce explícitamente el cambio en las restricciones? Tres: ¿intenta comportamientos de trabajo alrededor, como codificar el contenido de archivos en el chat como un "parche sugerido" en lugar de usar herramientas? [ALLOY]: Si ves comportamiento de trabajo alrededor, puede que necesites fortalecer tu lenguaje de políticas. El objetivo no es evitar que el modelo sea útil; es mantener el contrato real. "Sin escritos" debería significar sin escritos, incluso si el modelo cree tener la solución perfecta. [NOVA]: Otra prueba recomendada: restricción de presupuesto. Deja que el agente comience una fase de exploración, luego inyecta una entrada del sistema que establezca un presupuesto estricto y una lista de prioridades. Luego ve si realmente estrecha sus llamadas a herramientas: menos archivos, diffs más pequeños, pruebas dirigidas. [ALLOY]: Si no lo hace, esa es una señal de que necesitas hacer la instrucción de presupuesto más concreta. Los modelos responden mejor a las restricciones operacionales cuando especificas qué hacer en su lugar. Por ejemplo: "Lee solo los archivos que ya referiste. Ejecuta solo la prueba individual que falla. Resume los cambios en cinco puntos antes de hacer ediciones." [NOVA]: Vincula esto de vuelta a la historia del lanzamiento anterior. El modo automático de Claude Code y la supervisión remota de Codex se trata de hacer la superficie de ejecución más capaz. A medida que amplias esa superficie, la capacidad de actualizar restricciones del runtime a mitad de ejecución se vuelve obligatoria. De lo contrario estás ejecutando un agente más poderoso con un contrato frágil. [ALLOY]: Ahora pasaremos al radar de proyectos, comenzando con dos herramientas complementarias de memoria: OpenLore para orientación arquitectónica y Mnemo para memoria persistente con decaimiento. ... [NOVA]: Primer ítem del radar de proyectos es OpenLore. La forma más simple de describirlo es: una capa de memoria arquitectónica local para agentes de código que se vuelve consultable a través de MCP. [ALLOY]: La premisa central es que los agentes desperdician contexto al redescubrir la estructura del proyecto. Incluso los agentes de codificación más capaces suelen comenzar una sesión leyendo un árbol de directorios, escaneando archivos README, buscando puntos de entrada, usando grep para nombres de funciones y armando un mapa mental desde cero. [NOVA]: Eso no solo es caro en tokens y tiempo. También es propenso a errores. Si el agente identifica mal un punto de entrada, puede construir un plan completo sobre una suposición errónea, como editar un servicio heredado en lugar del actual, o modificar una librería compartida cuando el cambio pertenece a una capa de adaptadores. [ALLOY]: OpenLore ataca esto indexando la base de código en artefactos estructurados: salidas de análisis estático, grafos de llamadas, clusters arquitectónicos, "especificaciones vivas" y detección de desvíos. Luego expone herramientas MCP como orientación y expansión de grafo para que un agente pueda pedir primero un resumen compacto, y solo expandir lo que necesita. [NOVA]: Desglosemos por qué importan los grafos de llamadas y los clusters. Un grafo de llamadas es el mapa de qué funciones o módulos llaman a cuáles otros. Cuando a un agente se le pide "arreglar un bug en los totales del checkout", no es suficiente encontrar el archivo llamado checkout.ts. Necesitas saber dónde se calculan los totales, quién consume ese resultado, y qué rutas son ejercidas por qué flujos. [ALLOY]: Si tienes un grafo de llamadas, puedes hacer preguntas como: "¿Cuáles son los llamadores upstream de esta función?" y "¿Cuáles son los efectos downstream si cambio este tipo de retorno?" Ese es exactamente el tipo de pregunta que reduce quiebres accidentales. [NOVA]: Los clusters arquitectónicos son un concepto de más alto nivel: agrupar archivos o módulos en subsistemas. Muchos repos se ven planos para una búsqueda naïve. Podrías tener veinte directorios que todos contienen código de "servicio", pero solo unos pocos son relevantes para la tarea. El clustering ayuda a un agente a evitar explorar vecindarios irrelevantes del repo. [ALLOY]: Las "especificaciones vivas" son particularmente útiles para flujos de trabajo de agentes porque el código cambia, pero la intención detrás del código no siempre vive en los comentarios del código. Una especificación viva es un resumen mantenido de cómo se supposede que se comporte un subsistema, a menudo derivado de análisis estático más documentación curada. [NOVA]: La detección de desvíos es el guardarraíl. Si la especificación dice una cosa y el código se ha desviado, OpenLore puede marcarlo. Para un agente, la detección de desvíos es una señal para ir más lento. Significa que el repo puede tener comportamiento inconsistente o migraciones incompletas. [ALLOY]: La capa MCP es lo que hace esto inmediatamente relevante para un stack de agentes. MCP es la interfaz que usan los agentes para llamar herramientas. Si OpenLore provee herramientas MCP como "orientación" y "expandir grafo", entonces cualquier agente que pueda hablar MCP—Claude Code, Codex en arneses compatibles con MCP, Hermes, sesiones conectadas a OpenClaw—puede obtener memoria arquitectónica sin releer medio repo. [NOVA]: El ángulo de disciplina de tokens es donde esto se convierte en una ventaja práctica. En lugar de inyectar un enorme resumen del repositorio cada vez, puedes recuperar un blob de orientación pequeño: "Aquí están los servicios de nivel superior, los puntos de entrada principales, las rutas de llamada clave para la tarea actual, y los objetivos de prueba probables." Luego dejas que el agente pida expandir nodos específicos. [ALLOY]: Ese flujo de trabajo de "expandir solo lo que importa" es la diferencia entre una capa de memoria útil y una bomba de contexto. Si la recuperación de memoria siempre devuelve un muro gigante de texto, el agente lo ignorará o se ahogará en él. La expansión de grafo es una perilla de control. [NOVA]: Aquí hay un flujo de trabajo de evaluación recomendado para OpenLore que no requiere integración profunda desde el principio. Elige un repo donde los agentes cometan repetidamente los mismos errores de orientación. Ejemplos comunes: monorepos con múltiples apps, repos con implementaciones antiguas y nuevas, o sistemas con múltiples puntos de entrada dependiendo del entorno. [ALLOY]: Paso uno: ejecuta la indexación de OpenLore y usa la herramienta de orientación para producir un resumen arquitectónico. Paso dos: ejecuta una sesión de agente de codificación sin OpenLore y pídele que planifique un cambio. Paso tres: ejecuta la misma sesión de planificación pero dale primero la salida de orientación de OpenLore. [NOVA]: Compara los planes. Específicamente: ¿el plan asistido por OpenLore elige archivos diferentes? ¿Identifica los puntos de entrada correctos más rápido? ¿Propone pruebas que realmente están conectadas con las rutas de código involucradas? [ALLOY]: También compara la tasa de "primer error". En muchas ejecuciones de agentes, el primer mistake es seleccionar el punto de partida equivocado. Si OpenLore reduce eso, ya se está pagando solo. [NOVA]: Ahora el segundo ítem del radar de proyectos: Mnemo. Trata la memoria del agente como un grafo de conocimiento local que decae. [ALLOY]: El posicionamiento de Mnemo es "cognición de ingeniería persistente," que es una frase útil porque implica más que almacenar hechos. La cognición de ingeniería incluye decisiones, convenciones, modos de falla conocidos y el tipo de conocimiento institucional de "intentamos eso y se rompió" que rara vez vive en el código. [NOVA]: La característica operativa clave aquí es el decaimiento de memoria. En sistemas de agentes, la memoria obsoleta es peligrosa porque tiene el tono de autoridad. Si inyectas una decisión antigua en una ejecución nueva, el modelo podría tratarla como política vigente aunque el proyecto haya avanzado. [ALLOY]: Un mecanismo de decaimiento es una forma de degradar contexto antiguo a menos que sea reforzado. En equipos humanos, la memoria decae naturalmente porque la gente deja de hablar sobre cosas desactualizadas. En un almacén de memoria de agente, todo es igualmente recuperable a menos que construyas recencia y refuerzo. [NOVA]: Mnemo también enfatiza recuperación híbrida: búsqueda BM25 más vectorial más grafo. Esa combinación importa porque "lo que necesitas" depende del tipo de consulta. [ALLOY]: BM25 es fuerte para coincidencias exactas de términos—nombres de archivos, mensajes de error, nombres específicos de librerías, términos internos del proyecto. La búsqueda vectorial es mejor para similitud semántica—encontrar decisiones relacionadas aunque la redacción difiera. La búsqueda en grafos agrega estructura—seguir conexiones como "la decisión se relaciona con el subsistema," "la convención aplica al módulo," o "el modo de falla es activado por una dependencia." [NOVA]: La ventaja práctica es que la memoria no tiene que ser una lista plana de notas. Si tu memoria es un grafo, puedes responder preguntas como: "¿Qué convenciones aplican a esta carpeta?" o "¿Qué incidentes previos se relacionan con este error?" o "¿Qué decisiones se tomaron sobre flujos de autenticación en este servicio?" [ALLOY]: Los hooks de ciclo de vida son otro concepto importante. En un harness de agente, puedes decidir cuándo se escriben o refuerzan las memorias. Por ejemplo: cuando un PR se fusiona, puedes reforzar la memoria que describe la decisión. Cuando una prueba falla repetidamente, puedes crear una entrada de memoria describiendo el modo de falla y su corrección. Cuando ocurre un lanzamiento, puedes decaer ciertas memorias antiguas más rápido porque se relacionan con una versión anterior. [NOVA]: El almacenamiento local-first es la línea base operativa aquí. Si el almacén de memoria es local, puedes mantener la cognición sensible del proyecto en la máquina o dentro de tu entorno controlado, en lugar de enviarla a un servicio de memoria remoto alojado. [ALLOY]: Aquí está la forma recomendada de comenzar con Mnemo sin darle demasiada autoridad demasiado pronto. Comienza capturando cuatro tipos de elementos de memoria. [NOVA]: Uno: una decisión del proyecto. Algo como "no usamos triggers de base de datos; todas las reglas de integridad viven en la capa de servicio." Dos: una convención. Ejemplo: "Todos los nuevos endpoints deben incluir IDs de solicitud y campos de logging estructurado." Tres: un contexto de tarea activa. Ejemplo: "Estamos migrando de la librería X a la librería Y; preferir Y para código nuevo." Cuatro: un modo de falla conocido. Ejemplo: "Esta prueba de integración falla si la zona horaria no está configurada en UTC." [ALLOY]: Luego inicia una segunda sesión y consulta lo que Mnemo recuerda. Inspecciónalo como inspectarías la salida de un compilador o linter. Estás verificando precisión, relevancia, y si el decaimiento o ranking parece razonable. [NOVA]: La señal de peligro es cuando la recuperación de memoria devuelve elementos obsoletos con el mismo peso que los frescos. Si tu almacén de memoria no puede expresar frescura, eventualmente lo tratarás como no confiable y dejarás de usarlo. [ALLOY]: Otra señal de peligro es cuando la memoria se convierte en un canal de "inyección de políticas". Tu harness debe mantener la memoria como contexto consultivo a menos que el elemento de memoria esté etiquetado explícitamente como política. De lo contrario, el modelo puede tratar cualquier nota recuperada como una regla, incluso cuando solo era una solución temporal. [NOVA]: Pon OpenLore y Mnemo juntos y obtienes una historia más robusta que "memoria de agente." OpenLore recuerda la forma del codebase—estructura, rutas de llamadas, clusters, especificaciones. Mnemo recuerda el conocimiento evolutivo del proyecto—decisiones, convenciones, fallas—con sensibilidad temporal. [ALLOY]: Y ambos son más controlables que el transcript stuffing. Los transcripts son desordenados, llenos de especulación, y frecuentemente contienen suposiciones desactualizadas. Las herramientas de memoria estructurada apuntan a recuperar contexto más pequeño y relevante y a darte palancas—expansión de grafos, decaimiento, ranking híbrido—que puedes ajustar. [NOVA]: A continuación, nos moveremos al lado de solo-local y reparación de grafos del radar: OpenMonoAgent y Prometheus. ... [ALLOY]: Tercer elemento del radar de proyectos: OpenMonoAgent. Es un agente de codificación local basado en .NET construido alrededor de inferencia local via llama.cpp, sandboxing con Docker, inteligencia de código LSP y Roslyn, integración MCP, y playbooks. [NOVA]: La frase en la que enfocarse es "patrón de agente de codificación local de cero metros." No porque signifique que nunca usas modelos en la nube, sino porque te da una línea base donde leer código y probar ediciones mecánicas es barato, privado y repetible. [ALLOY]: Empecemos con inferencia local a través de llama.cpp. Esto significa que el modelo se ejecuta en tu máquina, usando CPU y opcionalmente GPU, sin enviar prompts o código a una API alojada por defecto. Los beneficios obvios son privacidad y control de costos. [NOVA]: Pero el beneficio operativo es la velocidad de iteración en una dimensión diferente: puedes permitirte ejecutar muchos experimentos pequeños. Si quieres pedirle a un agente que proponga cinco variantes de un plan de refactor, o analizar la estructura de un repositorio repetidamente, la inferencia local puede hacer eso "aburrido y barato" en lugar de "caro y medido." [ALLOY]: El sandboxing con Docker es la siguiente pieza. Una vez que un agente puede ejecutar comandos, necesitas decidir en qué entorno se ejecuta. Un sandbox Docker puede limitar el acceso al sistema de archivos, el acceso a la red, y el radio de explosión de errores. Incluso cuando confías en el agente, no necesariamente confías en cada script de instalación de dependencias o paso de build que pueda invocar. [NOVA]: La inteligencia de código LSP y Roslyn es donde esto se convierte en más que "un chatbot con una terminal." LSP proporciona operaciones aware del lenguaje: ir a definición, encontrar referencias, búsqueda de símbolos, diagnósticos. Roslyn es la plataforma compiladora de .NET que puede proporcionar comprensión semántica profunda para C# y lenguajes relacionados. [ALLOY]: Cuando combinas LSP/Roslyn con un loop de agente, obtienes ediciones mejor dirigidas. En lugar de hacer grep cegadamente, el agente puede preguntar: "¿Dónde se referencia este símbolo?" y luego actualizar los sitios de llamada sistemáticamente. Eso es exactamente el tipo de cambio que los agentes locales pueden hacer bien incluso si su razonamiento es más débil que los modelos frontier. [NOVA]: La integración MCP importa porque significa que OpenMonoAgent puede participar en un ecosistema de herramientas más amplio. Puedes conectarlo a las mismas herramientas de orientación, herramientas de memoria, o servicios internos que expongas via MCP, sin hardcodear integraciones en el agente mismo. [ALLOY]: Y los playbooks son el mecanismo de "captura de flujos de trabajo". Un playbook puede codificar los pasos para tareas comunes: ejecutar pruebas, localizar archivos que fallan, aplicar un patrón de refactorización estándar, regenerar código, actualizar documentación, y así sucesivamente. En un contexto de agente local, los playbooks ayudan a reducir la cantidad de razonamiento requerido para operaciones rutinarias. [NOVA]: Ahora, los compromisos. Los modelos locales a menudo rinden menos en razonamiento profundo, planificación a largo plazo y síntesis compleja entre archivos comparados con modelos alojados de frontera. Eso no significa que sean inútiles. Significa que debes orientarlos a tareas donde las restricciones locales dominan y la carga de razonamiento es moderada. [ALLOY]: Los buenos objetivos para agentes locales incluyen: orientación en repositorios, refactorizaciones mecánicas, formateo de código y correcciones de lint, actualizar namespaces o imports, generar boilerplate, escribir pruebas a partir de una especificación clara, y producir resúmenes estructurados de lo que cambió entre commits. [NOVA]: Los objetivos riesgosos para modelos locales incluyen: revisiones de seguridad sutiles, rediseños arquitectónicos a gran escala, bugs de concurrencia complicados, o cualquier cosa donde el agente deba inferir la intención del producto a partir de señales ambiguas. Esos son los trabajos donde a menudo quieres un modelo alojado más fuerte—o un flujo de trabajo que use herramientas locales para evidencia y modelos alojados para razonamiento. [ALLOY]: Eso sugiere un flujo de trabajo híbrido práctico. Usa un agente local para recolectar evidencia: mapear archivos, extraer rutas de llamadas, ejecutar pruebas, identificar casos que fallan, y proponer ubicaciones candidatas para edits. Luego, si es necesario, pasa esa evidencia a un modelo más fuerte para decidir la estrategia de parche real. [NOVA]: O inversión: usa un modelo fuerte para proponer un plan, pero haz que el agente local ejecute los pasos mecánicos—aplicar el diff, actualizar referencias, ejecutar pruebas—dentro de un sandbox donde los datos no salen de la máquina. [ALLOY]: Una prueba recomendada para OpenMonoAgent específicamente: ejecútalo contra un repositorio desechable sin proveedor de cloud configurado. Pídele que realice una tarea rutinaria pero no trivial, como "renombrar un método público y actualizar todos los call sites", luego "ejecutar las pruebas unitarias" y "resumir qué cambió". [NOVA]: Mide algunas cosas. ¿Usó correctamente la inteligencia de código para encontrar referencias? ¿Evitó editar archivos generados? ¿Mantuvo el diff minimalista? ¿Ejecutó los comandos de prueba correctos? ¿Se detuvo y reportó cuando algo falló? [ALLOY]: Esas mediciones te dicen dónde encaja en tu stack. Si es fuerte en edits mecánicos y loops de verificación, puede convertirse en tu默认值 para trabajo de bajo riesgo, ahorrando llamadas a la nube para las partes realmente difíciles. [NOVA]: Ahora, el cuarto item del radar de proyectos: Prometheus de EuniAI. Se presenta como un agente de software impulsado por grafos de conocimiento para mapear, entender y reparar bases de código complejas. [ALLOY]: La frase clave es "reparación guiada por grafos en lugar de edits basados en chat". Muchos agentes de codificación hoy operan así: leen algunos archivos, forman una hipótesis, escriben un parche, ejecutan pruebas, repiten. El punto débil es que la hipótesis puede estar subconstraint. El agente puede saltar a un parche porque suena plausible, no porque tenga evidencia sobre cómo el código realmente se conecta. [NOVA]: El contexto de grafos puede constraint eso. Si el agente construye un grafo de entidades—módulos, clases, funciones, dependencias, edges de llamada—puede usar ese grafo para decidir dónde debería vivir un fix y qué podría romper. [ALLOY]: Piensa en un reporte de bug: "Login a veces falla con un error de referencia nula." Un agente basado en chat podría buscar "null" y "login" y parchear lo primero que vea. Un agente basado en grafos podría mapear el flujo de login: UI handler → auth service → token parser → user loader → database adapter. Luego puede buscar el edge específico donde null podría ser introducido y seguir ese camino. [NOVA]: La parte del loop de verificación es crítica. "Repair" no es solo generación de parches; también es seleccionar la evidencia correcta para validar el parche. Un grafo puede ayudar a elegir pruebas. Si el grafo muestra que una función solo es ejercitada por dos pruebas de integración, esas pruebas deberían estar en el plan de verificación. [ALLOY]: También puede ayudar con recuperación de fallas. Si un parche falla las pruebas, el agente puede usar el grafo para identificar el radio de explosión probable. ¿Cambió una interfaz compartida usada por muchos nodos? ¿Alteró un formato de serialización? ¿Tocó un utility de bajo nivel que se expande a muchos call sites? [NOVA]: En la práctica, evalúas un proyecto de reparación guiada por grafos preguntando: ¿el grafo cambia materialmente las decisiones del agente? ¿O es solo un índice fancy que el agente ignora? [ALLOY]: Un enfoque de evaluación útil es ejecutar Prometheus en una tarea estilo benchmark o un repo desechable donde puedas inspeccionar el comportamiento. Luego compara dos artefactos: la evidencia del grafo y el parche final. Buscas enlace directo. [NOVA]: Por ejemplo, si el parche cambia una función, ¿el grafo muestra por qué esa función es el punto de estrangulamiento correcto? Si actualiza call sites, ¿el grafo los enumera comprehensivamente? Si elige pruebas, ¿el grafo justifica la selección basada en cobertura de los nodos afectados? [ALLOY]: Otra prueba es introducir una señal intencionalmente engañosa. Pon un nombre de archivo que parezca relevante pero no lo es, o deja un comentario desactualizado. Los agentes basados en chat a menudo son atraídos por esos. Los sistemas basados en grafos deberían ser más resilientes porque dependen de relaciones reales de código en lugar de texto superficial. [NOVA]: Prometheus, OpenLore y Mnemo también se conectan conceptualmente. OpenLore proporciona grafos arquitectónicos para orientación. Mnemo proporciona un grafo de conocimiento para cognición de proyecto con decaimiento. Prometheus usa grafos para guiar reparación y verificación. La idea a nivel de stack es que los grafos pueden servir como una capa de fundamentación para agentes—estructura que es más difícil de alucinar que narrativa libre. [ALLOY]: Y esto importa porque el siguiente paso para los agentes de código no es solo modelos más grandes. Es hacer que el bucle demuestre lo que entendió: mostrar los bordes relevantes, mostrar la evidencia, ejecutar las pruebas correctas y mostrar por qué el cambio es seguro. [NOVA]: A continuación, cerraremos con una cola práctica de "qué probar después" que coincide con el tema de superficie de control de hoy. ... [ALLOY]: Aquí está la cola práctica del EP060, en el orden que reduce el riesgo. [NOVA]: Primero: el modo automático más reciente de Claude Code en nubes administradas. Trátalo como un feature flag porque lo es. Habilítalo solo con CLAUDE_CODE_ENABLE_AUTO_MODE=1, y comienza en el corredor del proveedor que realmente planeas usar—Bedrock, Vertex o Foundry—para que tus pruebas reflejen tu identidad real y entorno de logging. [ALLOY]: Ejecuta tres tipos de tareas: orientación de solo lectura, ejecución segura como pruebas y lint, y una tarea de escritura pequeña con estrictos guardrails. Mide el comportamiento de las llamadas a herramientas, el número de veces que procede sin preguntar, y si escala apropiadamente cuando hay incertidumbre. [NOVA]: Segundo: uso de computadora Codex en Windows. Comienza con una app de bajo riesgo y prueba explícitamente la confiabilidad, la intención acotada y la recuperación. La confiabilidad es "¿puede operar la UI sin quedarse atascado?" La intención acotada es "¿se mantiene en la tarea que le diste?" La recuperación es "¿reconoce bloqueos y pide orientación en lugar de debatirse?" [ALLOY]: Si planeas supervisar desde móvil o Mac, prueba explícitamente el límite de control remoto. Inicia una ejecución en el host Windows, vete, conéctate desde un dispositivo diferente y confirma que puedes steer meaningfully: responder preguntas, aprobar pasos y revisar el progreso. El objetivo es validar que la ejecución permanezca local mientras la supervisión se mantiene práctica. [NOVA]: También trata los Perfiles de Codex como evidencia operativa. Confirma que la identidad es lo que esperas, y observa el uso y la actividad de tokens en una ejecución donde sabes roughly lo que debería pasar. Si el uso de tokens aumenta, úsalo como prompt de debugging: lecturas repetidas de archivos, verbosidad de logs, bucles de herramientas o targeting deficiente de pruebas. [ALLOY]: Tercero: si construyes o mantienes un harness de agente, estudia el cambio en la API de Messages: entradas del sistema dentro del array de mensajes. Úsalo para separar la intención del usuario de la política de runtime y los hechos de runtime. Implementa al menos una actualización del sistema a mitad de ejecución—cambio de permisos o cambio de presupuesto—y verifica que el modelo responde cambiando su comportamiento, no solo acknowledge el texto. [NOVA]: Mantén las actualizaciones del sistema estructuradas y evita líneas de tiempo de instrucción contradictorias. Prefiere mensajes de "resumen del estado más reciente" para hechos de runtime en lugar de una larga cadena de actualizaciones parciales que el modelo tiene que reconcile. [ALLOY]: Cuarto: elige exactamente un experimento de memoria para que puedas evaluarlo honestamente. [NOVA]: Usa OpenLore si tu dolor es el redescubrimiento arquitectónico—los agentes siguen eligiendo los puntos de entrada incorrectos, perdiendo rutas de llamada clave o quemando contexto en leer los mismos directorios. Compara un plan de edición con y sin la salida de orientación de OpenLore antes de permitir escrituras. [ALLOY]: Usa Mnemo si tu dolor es el conocimiento perdido del proyecto—decisiones, convenciones y modos de falla conocidos que deberían perdurar entre sesiones. Comienza con un conjunto pequeño de memorias y audita la calidad del recall en una segunda sesión. Presta especial atención al comportamiento de decay y al ranking, porque la frescura es lo que evita que la memoria se convierta en autoridad obsoleta. [NOVA]: Usa OpenMonoAgent si tu dolor es la privacidad, el costo o la repetibilidad local. Hazlo tu baseline para lectura de repos y ediciones mecánicas dentro de un sandbox, luego compara sus resultados con un agente hosted en las mismas tareas. No le estás pidiendo que sea el mejor en todo; le estás pidiendo que haga aburrida la parte privada y barata del workflow. [ALLOY]: Usa Prometheus si tu pregunta de investigación es la calidad de reparación y la verificación. Evalúa si la evidencia del grafo realmente constriñe el patch y mejora la selección de pruebas y la recuperación de fallas. Si el grafo no cambia las decisiones, no está ganando su complejidad. [NOVA]: Para cada trial, define el workflow del builder antes de que la herramienta toque trabajo importante: el caso de uso, el build target, el límite del operador, la decisión de deploy o ship, y el patrón de verificación que prueba el resultado. El workflow de build útil pone la evidencia al frente, una decisión de operador acotada en el medio, y una regla clara de ship, deploy o stop al final; ese patrón de builder es lo que evita que los experimentos se conviertan en demos vagos. [NOVA]: La lección duradera de hoy es que los stacks de agentes mejoran cuando se vuelven más explícitos: gating explícito para automatización, límites de host explícitos para supervisión remota, actualizaciones de instrucciones de runtime explícitas para ejecuciones largas y recuperación de memoria explícita que es estructurada, queryable y consciente de la frescura. [ALLOY]: Eso es AgentStack Daily para EP060. Toby On Fitness Tech dot com. Volveremos pronto.