Microsoft Copilot Studio se posiciona como una plataforma líder en la inteligencia artificial conversacional y la automatización. Su objetivo es empoderar a las organizaciones para crear, personalizar y gestionar copilotos y bots inteligentes, adaptados a una amplia gama de escenarios empresariales. La evolución de esta plataforma ha sido constante, y en el corazón de su innovación se encuentra una profunda integración con .NET, incluyendo el uso de .NET en WebAssembly (WASM).
Este artículo profundiza en cómo Copilot Studio aprovecha el ecosistema .NET, los beneficios tangibles obtenidos de las actualizaciones de la plataforma (especialmente a .NET 8), y las mejoras resultantes en rendimiento, reducción de costes y aumento de la productividad.
La Esencia de .NET en Copilot Studio
Aunque Copilot Studio ofrece una experiencia de desarrollo de bajo código para la creación de agentes conversacionales y autónomos, el motor de ejecución subyacente de estos agentes está construido sobre .NET. Esta elección estratégica permite a la plataforma beneficiarse de la robustez y versatilidad del framework.
Una de las capacidades más destacadas es el aprovechamiento de WebAssembly (WASM) de .NET. Esto permite ejecutar código C# directamente en el navegador, desbloqueando características avanzadas como la evaluación en tiempo real de fórmulas Power Fx, una validación inteligente y experiencias de usuario altamente responsivas dentro del entorno de bajo código de Copilot Studio. Al ejecutar el mismo código de validación y análisis de expresiones tanto en el cliente como en el servidor, Copilot Studio garantiza un comportamiento y una ejecución coherentes, eliminando posibles discrepancias y mejorando la fiabilidad.
Optimización del Uso de .NET WebAssembly
Copilot Studio implementa técnicas avanzadas para optimizar la ejecución del código cliente cuando se ejecuta en WebAssembly. Para asegurar que las operaciones intensivas no bloqueen la interfaz de usuario principal, el tiempo de ejecución de .NET WASM se carga desde un web worker. Esto permite procesar tareas pesadas fuera del hilo principal de la UI, garantizando que incluso los bots y automatizaciones más complejos mantengan una alta capacidad de respuesta.
Además, el sistema emplea una estrategia de carga de doble modo para acelerar el tiempo de carga de las aplicaciones. .NET soporta dos modelos de ejecución diferentes para WASM:
- Interpretado (JIT – Just-In-Time): En este modo, el código de ensamblado .NET se interpreta en tiempo de ejecución, con cierto soporte de compilación parcial a WASM. Ofrece tiempos de construcción rápidos y un tiempo de ejecución más pequeño, aunque con un rendimiento más lento.
- Compilación AOT (Ahead-Of-Time): Utilizado en producción para un rendimiento máximo, el código C# se compila directamente a bytecode WASM cuando se publica la aplicación. Este modo proporciona mejoras sustanciales en la velocidad de ejecución, especialmente para bots más grandes y evaluaciones de fórmulas complejas, aunque a costa de un tamaño de descarga mayor.
Para optimizar los tiempos de carga, Copilot Studio inicia las descargas de los motores JIT y AOT en paralelo durante el arranque. El motor JIT permite una interacción inmediata con el usuario, mientras que el motor AOT toma el control una vez que está listo, transfiriendo el estado de manera transparente y liberando la memoria del motor JIT. Este enfoque híbrido logra una experiencia de inicio rápido y una velocidad de ejecución de primera clase para los usuarios finales.
Carga Dinámica de Ensamblados
Copilot Studio utiliza tres características técnicas clave para cargar e inicializar de manera eficiente una aplicación .NET WebAssembly en un web worker:
- Atributos
[JSImport]/[JSExport]: Estos son parte del sistema de interoperabilidad JavaScript de .NET. Facilitan la llamada de métodos .NET desde JavaScript y viceversa, permitiendo una integración fluida del código .NET en aplicaciones web y una interacción directa entre ambos entornos de ejecución. - Importación dinámica de
dotnet.js: Este script actúa como el punto de entrada para configurar el tiempo de ejecución de .NET WebAssembly en el navegador. Expone el objetodotnet, que proporciona varios métodos JavaScript para configurar e iniciar el runtime. - Optimización de la carga de recursos con
withResourceLoader: Este método permite a los desarrolladores controlar manualmente cómo se cargan los recursos en el tiempo de ejecución (como ensamblados y archivos de configuración). En Copilot Studio, se utiliza para recuperar y descomprimir archivos.br(comprimidos con Brotli) y garantizar una carga eficiente de recursos desde múltiples instancias de web workers.
Mejoras de Rendimiento con .NET 8
Inicialmente, el motor WASM de Copilot Studio se basó en .NET 6. La transición a .NET 8 trajo consigo dos ventajas principales:
- Soporte a largo plazo (LTS): .NET 8 asegura actualizaciones continuas y parches de seguridad, proporcionando una base robusta y segura para soluciones de IA de misión crítica.
- Rendimiento y optimización: .NET 8 introdujo optimizaciones significativas que resultaron en tamaños de descarga más pequeños, una ejecución más rápida y herramientas de desarrollo mejoradas.
La migración a .NET 8 se tradujo en notables ganancias de rendimiento:
- Tamaño del motor .NET WASM reducido en aproximadamente un 55%: Gracias al agresivo “assembly trimming” y a un empaquetado mejorado, el tamaño total de la descarga disminuyó drásticamente, acelerando los tiempos de carga y reduciendo los costes de ancho de banda.
- Tiempos de carga de página y bot más rápidos: Los tiempos de carga se redujeron entre un 56% y un 44%, dependiendo de las condiciones de red del usuario. Esto hace que Copilot Studio sea más ágil y accesible, especialmente para usuarios con conexiones más lentas.
- Ejecución de comandos más rápida: Los tiempos de respuesta para la ejecución de comandos disminuyeron entre un 26% y un 35%, según la complejidad del bot. Esto mejora directamente la productividad de los creadores y usuarios finales al diseñar y probar bots.
- Construcción y despliegue acelerados: El tiempo de compilación y publicación del código WASM es ahora aproximadamente un 45% más rápido, lo que agiliza los pipelines de CI/CD y reduce el tiempo de espera para los desarrolladores.
La reducción del tamaño del motor WASM y la mejora de las herramientas de construcción se traducen directamente en menores costes de infraestructura y operativos:
- Ahorro de ancho de banda: Descargas de motor más pequeñas significan menos datos transferidos por sesión de usuario, lo que reduce los costes de CDN y alojamiento a escala.
- Caché eficiente: Los DLLs del sistema idénticos entre los modos JIT y AOT ahora se almacenan en caché mediante hashing, evitando descargas redundantes.
- Pipelines más rápidos: La reducción de los tiempos de construcción y publicación permite a los equipos iterar más rápido, con un menor consumo de recursos computacionales.
Productividad del Desarrollador: Herramientas y Mejoras en la Depuración
Los equipos de ingeniería de Copilot Studio se benefician de la moderna cadena de herramientas de desarrollo de .NET:
- Proceso de construcción unificado: Se utilizan comandos estándar de
dotnet publishpara generar paquetes WASM, simplificando la automatización y la integración con los pipelines de DevOps existentes. - Herramientas de depuración: Los servidores de depuración y las herramientas de monitoreo permiten a los desarrolladores inspeccionar la comunicación entre JavaScript y WASM, visualizar los payloads y diagnosticar rápidamente los problemas.
- Iteración rápida: Se pueden generar y consumir paquetes de vista previa para obtener retroalimentación rápida, y el empaquetado NPM facilita el intercambio de módulos WASM con los equipos frontend.
Estas mejoras ayudan a los equipos a entregar características más rápidamente y con mayor calidad, al tiempo que reducen la carga cognitiva de gestionar complejas integraciones multi-idioma.
Impulsando la Innovación en la IA Conversacional
Al ejecutar .NET en el navegador, Copilot Studio capacita tanto a usuarios de bajo código como a desarrolladores profesionales para construir experiencias de IA conversacional y autónoma avanzadas y responsivas. Características como las respuestas generativas, las herramientas y la integración perfecta con el ecosistema de Microsoft, están respaldadas por la flexibilidad y el rendimiento de la plataforma .NET.
El cambio a .NET 8 no solo mantiene a Copilot Studio a la vanguardia en seguridad y mantenibilidad, sino que también abre nuevos escenarios para la automatización impulsada por IA, el análisis y la extensibilidad multiplataforma, beneficiando tanto a Microsoft como a su base global de clientes.
¿Qué Sigue?
A medida que .NET continúa evolucionando, Copilot Studio se compromete a colaborar con el equipo de .NET para probar y adoptar las últimas características de la plataforma. Las primeras pruebas con futuras versiones de .NET prometen mejoras de rendimiento aún mayores y una integración más estrecha con las cadenas de herramientas de JavaScript. El viaje con .NET y WASM está lejos de terminar, y el futuro se presenta brillante para la innovación en IA conversacional.
Conclusión
La historia de la adopción y optimización de .NET en WebAssembly por parte de Copilot Studio ilustra el poder del ecosistema .NET para generar valor empresarial real: aplicaciones más rápidas, menores costes y equipos de desarrollo empoderados. Si estás construyendo soluciones web o de IA avanzadas, considera cómo .NET y WASM pueden acelerar tu viaje, al igual que lo han hecho para Copilot Studio.
