Arquitectura de Agentes en Copilot: El Puente entre Legacy Middleware y GenAI

⚠️ Nivel Técnico: Senior / Expert (Conceptos explicados para perfiles Junior)

Creación de Agentes en Copilot: Estrategia de Abstracción para Arquitecturas SOA

En entornos de misión crítica con Oracle SOA Suite 12c, el agente de Copilot no es un simple chatbot; es un orquestador de infraestructura. Para una implementación de grado empresarial, debemos unir la inteligencia generativa con la seguridad de identidades (IAM), el monitoreo proactivo de JVM y la respuesta automática.

📋 1. Fase de Validación: Definición del Rol (J.A.R.V.I.S. Protocol)

Antes de configurar el agente en Copilot Studio, definimos su mandato técnico. En el panel de Configurar, establecemos:

  • Nombre: Arquitecto Middleware (J.A.R.V.I.S. Mode).
  • Descripción: Experto en diagnóstico de Service Bus (OSB) y migración a 14c.

1.1 Estructura de Instrucciones (System Prompt)

Para que el agente sea efectivo, incluimos protocolos de operación específicos para Jython 2.2 y WLST:

- Al generar scripts WLST: Usar f = open() con bloques try/finally.
- Indentación: 4 espacios obligatorios.
- Seguridad: Toda IP debe representarse como ${SERVER_IP}.

🔐 2. Fase de Higiene: Seguridad IAM y Azure Key Vault

Regla de Oro: Nunca guardes contraseñas en tu código. Usamos Azure Key Vault como una caja fuerte digital. El agente utiliza una Managed Identity (su carnet de identidad) para pedir las llaves.

2.1 Tabla de Permisos RBAC (Control de Acceso)

Rol de Azure ¿Qué hace? Propósito Técnico
Key Vault Secrets User Permiso mínimo de lectura. Permite al flujo extraer el password de WebLogic sin verlo.
Reader Permiso de visualización. Permite al Agente “localizar” la caja fuerte en Azure.
# Asignación de permisos via Azure CLI
az role assignment create --role "Key Vault Secrets User" \
    --assignee <ID_DE_TU_AGENTE> \
    --scope "/subscriptions/tu-sub/resourceGroups/tu-rg/providers/Microsoft.KeyVault/vaults/kv-middleware-prod"

🚀 3. Arranque de Infraestructura: Knowledge y Monitoreo (Heap Size)

El Heap Size es la memoria RAM que usa Java. Si llega al 100%, el servidor colapsa. El agente usa WLST para interrogar al servidor de forma constante.

3.1 Script de Monitoreo JVM (WLST/Jython)

# monitor_heap.py - Ejecutado vía túnel SSH
import os

def check_jvm_health():
    # Conexión usando secretos extraídos de Key Vault
    connect(os.getenv('WLS_USER'), os.getenv('WLS_PW'), os.getenv('WLS_URL'))

    server_runtimes = domainRuntimeService.getServerRuntimes()
    for server in server_runtimes:
        jvm = server.getJVMRuntime()
        free = jvm.getHeapFreeCurrent() / (1024 * 1024)
        total = jvm.getHeapSizeCurrent() / (1024 * 1024)
        usage_percent = (float(total - free) / float(total)) * 100

        # Prefijo DATA_METRIC para fácil parseo en Power Automate
        print "DATA_METRIC|%s|%.2f" % (server.getName(), usage_percent)
    disconnect()
    exit()

check_jvm_health()

🧠 4. Arranque de Aplicación: Casos de Uso y Alertas en Teams

Cuando el uso de memoria supera el 85%, el agente no solo avisa, sino que ofrece acciones inmediatas a través de una Adaptive Card en Teams.

4.1 Lógica de Respuesta Automática

  • Botón “Thread Dump” 📥: Saca una “foto” de los procesos actuales para diagnosticar lentitud.
  • Botón “Reiniciar Nodo” 🔄: Envía señal al Node Manager para un reinicio limpio.

4.2 Código de la Tarjeta (JSON)

{
  "type": "AdaptiveCard",
  "body": [
    {
      "type": "TextBlock",
      "text": "🚨 ALERTA: MEMORIA ALTA (SOA_SERVER1)",
      "color": "Attention",
      "size": "Large"
    },
    {
      "type": "TextBlock",
      "text": "El uso de Heap es del 88%. ¿Qué deseas hacer?",
      "wrap": true
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "📥 Generar Thread Dump",
      "data": { "action": "dump" }
    },
    {
      "type": "Action.Submit",
      "title": "🔄 Reiniciar Servidor",
      "data": { "action": "restart" }
    }
  ],
  "$schema": "[http://adaptivecards.io/schemas/adaptive-card.json](http://adaptivecards.io/schemas/adaptive-card.json)",
  "version": "1.4"
}

📊 Anexo: Mapa de Arquitectura del Agente

Componente Capa Función Estratégica
Copilot Studio Orquestación Frontend de lenguaje natural y lógica de decisión.
Azure Key Vault Seguridad Bóveda HSM para credenciales weblogic y SSL.
Power Automate Traductor Orquestador que conecta Teams con el servidor Linux.
On-Prem Gateway Conectividad Puente seguro (TLS 1.2) para cruzar el Firewall.
Output (WLST) Ejecución Generación de scripts para WebLogic 12c/14c.
Catálogo de MBeans en WebLogic 12c: Guía de Introspección JMX
Older post

Catálogo de MBeans en WebLogic 12c: Guía de Introspección JMX

Referencia técnica de los MBeans principales de WebLogic 12.2.1.3.0. Definición, funciones y uso de RuntimeMBeans para administración avanzada.

Newer post

Cómo crear una app React + Vite desde cero (Windows + PowerShell Fix) + Base sólida CVs Deportivos

Guía completa para crear React + Vite en Windows, corregir PowerShell y construir la base del proyecto CVs Deportivos.

Cómo crear una app React + Vite desde cero (Windows + PowerShell Fix) + Base sólida CVs Deportivos