AWS lanza un emulador gratuito y abierto creado y gestionado por agentes autónomos

AWS ha presentado AWS Emulator, un emulador completo para sus servicios que ha sido desarrollado y será mantenido completamente por agentes autónomos. El código, liberado bajo licencia Creative Commons Zero, pretende superar las limitaciones de emuladores anteriores y agilizar la actualización de nuevas funcionalidades con una precisión sin precedentes.

Amazon Web Services (AWS) ha lanzado recientemente AWS Emulator, un emulador gratuito y de código abierto que simula sus más de 200 servicios, desarrollado íntegramente por agentes autónomos y que también estará bajo su mantenimiento continuo. Esta novedosa iniciativa podría redefinir el futuro de otras soluciones similares, como LocalStack.

Debido a la incertidumbre sobre los derechos de autor del código generado por los agentes, AWS ha decidido publicar el proyecto bajo la licencia Creative Commons Zero, liberándolo al dominio público para que cualquiera pueda usarlo sin restricciones.

Tom ‘Spot’ Callaway, estratega principal de software de código abierto en AWS, explica que aunque existen emuladores previos, éstos tienen el grave problema de quedar rápidamente obsoletos. «A menudo no reflejan la realidad de los servicios actualizados y, por tanto, no son fiables ni siquiera internamente», señala.

Patrocinado

El desarrollo del AWS Emulator responde también a la necesidad de herramientas de codificación asistida por agentes que permitan probar código contra servicios AWS sin tener que proporcionar credenciales, evitando riesgos de seguridad. Además, el equipo quería poner a prueba su capacidad para construir un proyecto completo dirigido por agentes en un entorno con objetivos bien definidos y testables.

Gracias a que AWS ya publica todos sus modelos API en formato Smithy y genera sus SDK automáticamente, el equipo aprovechó esta lógica para crear un emulador consistente y fiable basado en esos mismos modelos.

Un experimento de fin de semana que se convirtió en proyecto

La iniciativa comenzó con un experimento de Matt Goldberg, ingeniero principal en el equipo de herramientas para desarrolladores de AWS. Inspirado por trabajos previos de Anthropic en compiladores dirigidos por agentes, Goldberg pidió a Kiro, la herramienta de codificación autónoma de AWS, que construyera un emulador para Amazon SQS. En tan solo 15 minutos obtuvo una primera versión y, con ello, un fin de semana completo para continuar con la implementación del resto de servicios.

Como era de esperar, la primera versión presentaba lagunas, pero el equipo comenzó a probar su propio software contra el emulador a principios de semana. «Al principio dudé de si era buena idea», admite Callaway, pero las sucesivas mejoras les convencieron del potencial de esta metodología.

Actualmente, AWS Emulator soporta 438 modelos públicos de APIs abarcando más de 200 servicios. Los agentes se encargarán de actualizar el emulador casi en tiempo real a medida que AWS introduzca nuevos servicios o actualice los existentes, reduciendo el desfase a días, en lugar de semanas o meses.

El emulador está programado en Rust y funciona localmente en sistemas Linux, macOS y Windows sin requerir conexión a internet ni cuenta de AWS. «No contiene inteligencia artificial interna y no realiza llamadas a modelos de lenguaje», aclara Callaway.

Tres equipos autónomos colaborando

El trabajo de mantenimiento lo realizan tres equipos de agentes. El primero recoge escenarios de prueba basados en los modelos Smithy y los ejecuta contra los servicios reales para definir el comportamiento correcto del emulador. Estos escenarios pueden involucrar múltiples servicios interconectados para reflejar casos reales de uso.

El segundo equipo verifica que el emulador se comporte igual que los servicios reales, detecta discrepancias y agrupa fallos comunes para reportarlos. El tercer equipo procesa estos problemas, corrigiendo el código del emulador. Todas las modificaciones pasan por controles exhaustivos de construcción, pruebas y revisión automática para garantizar calidad y seguridad.

Los ingenieros humanos se centran en mejorar el sistema que dirige a los agentes, sin modificar directamente el código generado. Cuando surge un problema en el código, se ajustan las reglas y capacidades de los agentes para que no cometan los mismos errores, evitando arreglos manuales.

En versiones anteriores, los agentes intentaron escribir su propio intérprete Python para emular funciones Lambda, pero el equipo finalmente indicó que reutilizaran librerías existentes para mayor eficiencia y seguridad.

Callaway admite que han aprendido mucho sobre confinamiento y seguridad en entornos autónomos, especialmente para asegurar que los agentes no acceden a código interno sensible ni actúen fuera de control, lo que generó inicialmente preocupación en Amazon.

Sin contribuciones externas directas

La filosofía es radicalmente autónoma: AWS no aceptará pull requests ni modificaciones externas en el repositorio del emulador. «Los agentes formarán su propio ejército de pull requests», bromea Callaway. Sin embargo, sí recibirán reportes de errores y escenarios de prueba por parte de los usuarios para mejorar la cobertura del emulador.

Además, AWS publica el benchmark que utilizan para validar el emulador, ofreciendo transparencia total para que cualquiera pueda verificar y comparar resultados con sus propias herramientas.

Limitaciones del emulador

Aunque puede simular la mayoría de APIs, el emulador no recrea todas las funcionalidades reales. Por ejemplo, no ejecuta bases de datos reales, por lo que consultas SQL no devolverán datos auténticos. Su función principal es facilitar pruebas de cobertura de código y garantizar que las llamadas a la API desde el software se comporten según lo esperado.

Más información sobre AWS Emulator se revelará en la conferencia AWS re:Invent que comienza el 30 de noviembre, donde también estará presente el equipo de desarrollo para responder a dudas y presentar avances.

Add a Comment

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Patrocinado