⚠️ 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. |