Dos asistentes, la misma solicitud
Una analista de crédito en un prestamista comercial hizo la misma pregunta a dos asistentes de IA diferentes el trimestre pasado: “muéstrame todos los proveedores incorporados en los últimos 30 días con formularios fiscales faltantes”. El primer asistente, un widget de chat acoplado al portal existente, produjo un párrafo cortés explicando cómo navegar a la pantalla de proveedores y aplicar filtros. El segundo, ejecutándose dentro del runtime DEX, produjo la lista filtrada, respetó su alcance RBAC y registró la consulta en el registro de auditoría. Tiempo de respuesta: 22 segundos contra cuatro clics que ella nunca tuvo que hacer.
La diferencia no es el modelo. Es lo que el asistente puede ver.
Lo que un asistente acoplado externamente realmente sabe
La mayoría de los asistentes de IA empresariales viven una capa por encima de la aplicación. Ven el DOM, quizás una captura de pantalla, y lo que el usuario escribe. No ven el descriptor. No ven el alcance de permisos. No ven la consulta que el grid acaba de ejecutar ni las reglas de validación que el formulario aplica. Están adivinando la misma estructura que el runtime ya tiene en memoria.
Esa brecha es la razón por la que los asistentes acoplados externamente dan tanto consejo de navegación. Le dicen a los usuarios qué botón presionar porque presionar es la única acción que pueden describir con confianza. No pueden actuar en nombre del usuario porque no saben qué significaría actuar.
Lo que un asistente integrado en el runtime puede hacer
Cuando el asistente es una parte de primera clase del runtime, lee el descriptor directamente. Sabe que la pantalla tiene una entidad de proveedor, un campo tax_form_status y una marca de tiempo created_at. Sabe que el alcance RBAC del usuario actual restringe los resultados a su unidad de negocio. Sabe que el componente de filtro acepta un predicado estructurado, no una cadena en lenguaje natural.
Así que no escribe un párrafo. Propone un filtro, muestra al usuario lo que está a punto de hacer y lo aplica tras la aprobación. La superficie de interacción se reduce de “navegar la aplicación” a “dígame qué desea”. Cada acción que toma el asistente fluye a través de las mismas rutas de autorización y auditoría que usa la interfaz, porque es la interfaz.
La historia de seguridad es más simple, no más compleja
La objeción común a los asistentes integrados en el runtime es que amplían la superficie de ataque. Encontramos lo contrario. Un asistente acoplado externamente que puede hacer clic en botones por el usuario tiene que reimplementar las verificaciones de permisos, o peor, ejecutarse con acceso elevado. Un asistente integrado en el runtime que propone acciones a nivel de descriptor hereda cada verificación que el runtime ya aplica.
No le otorgamos al asistente ninguna capacidad que el usuario no tenga. El LLM es un motor de propuestas. El runtime es la capa de aplicación. Si el usuario no puede aprobar una factura de $50.000, tampoco puede hacerlo el asistente actuando en su nombre. El registro de auditoría registra tanto al humano como al modelo como participantes en la acción.
Por qué esto es difícil de incorporar posteriormente
Integrar este patrón en una aplicación empresarial existente es costoso porque la mayoría de las aplicaciones empresariales no tienen un descriptor que leer. El asistente no tiene nada estructurado a lo cual vincularse, así que recurre al DOM, y las limitaciones siguen.
Esta es una de las razones por las que diseñamos el descriptor y el runtime antes del asistente. El asistente es casi una consecuencia de la arquitectura más que un producto añadido a ella. Una vez que cada pantalla es un descriptor, un asistente que lee y escribe descriptores puede funcionar en toda la aplicación sin una integración por pantalla.
Lo que los usuarios notan
El cambio de comportamiento es visible en la primera sesión. Los usuarios dejan de preguntar al asistente dónde están las cosas. Comienzan a pedir resultados. “Encuentre los tres proveedores marcados por datos bancarios duplicados.” “Inicie un flujo de trabajo de renovación para los contratos que vencen en mayo.” “Exporte esta vista filtrada al formato que usa finanzas.”
Nuestros datos de uso interno de pilotos tempranos muestran que aproximadamente el 70% de las interacciones con el asistente se resuelven en una acción concreta realizada en nombre del usuario, comparado con menos del 20% para el patrón de acoplamiento externo que evaluamos. Las interacciones restantes son explicativas, e incluso esas consultan el descriptor en lugar de un corpus de ayuda genérico.
La conclusión
Un asistente de IA es tan útil como la estructura que puede leer. Acoplar uno a una aplicación terminada le da un mejor widget de ayuda. Integrarlo dentro de un runtime basado en descriptores le da un compañero de trabajo que realmente puede hacer el trabajo. La decisión de arquitectura viene primero. El modelo viene segundo. Todo lo demás se deriva de ese orden.