PowerBuilder

Hermes: un agente autónomo conectado con PowerBuilder

AutorLuis Avilan
Publicado
Hermes: un agente autónomo conectado con PowerBuilder, artículo de Luis Avilan
PB

0 visualizaciones

Hermes demuestra la diferencia entre un chatbot y un agente: el modelo conserva contexto, razona sobre un objetivo, selecciona una capacidad publicada por PowerBuilder, recibe el resultado real de la ejecución y puede encadenar nuevas decisiones hasta completar la solicitud.

Introducción

Las aplicaciones empresariales desarrolladas con PowerBuilder concentran procesos, reglas de negocio y grandes volúmenes de información que normalmente se utilizan mediante instrucciones y pantallas predefinidas. La incorporación de un agente de inteligencia artificial permite agregar una nueva capa de interacción: el usuario describe el resultado que necesita en lenguaje natural y el agente convierte esa intención en una secuencia controlada de operaciones sobre la aplicación.

Este demo presenta a Hermes, un agente conectado con PowerBuilder 2025 R2 mediante Ollama y el modelo minimax-m3:cloud. Su propósito no es reemplazar la lógica existente, sino aprovecharla: Hermes consulta el contexto del reporte, selecciona herramientas publicadas por PowerBuilder, analiza cada respuesta y decide el siguiente paso. De esta manera, una sola solicitud puede generar un DataWindow, aplicar filtros o formato condicional, calcular indicadores, producir un resumen ejecutivo, exportar el resultado y preparar un correo con intervención humana antes del envío.

Prerrequisitos e instalación de Hermes

Hermes forma parte del demo de PowerBuilder; no es un servicio independiente que deba instalarse como una aplicación adicional. Para ponerlo en funcionamiento se prepara el entorno, se abre el proyecto y se inicia la ventana principal del agente.

• PowerBuilder 2025 R2: necesario para abrir, ejecutar o modificar el proyecto y sus objetos.

• Ollama: debe estar instalado y ejecutándose localmente. El demo consume su API compatible con OpenAI en http://127.0.0.1:11434/v1/chat/completions.

• Modelo de IA: la cuenta de Ollama debe tener disponible minimax-m3:cloud. Puede iniciarse y comprobarse desde una consola con ollama run minimax-m3:cloud.

• Base de datos PBDemoDB2025: el demo utiliza esta base de datos de ejemplo para consultar la tabla customer y generar los reportes. En Windows debe existir un origen ODBC con el DSN pbdemo2025; sus credenciales deben coincidir con las configuradas para el entorno.

• Microsoft Edge y Gmail: son necesarios para probar la preparación del borrador, la redacción del mensaje y la selección automática del reporte PDF. El usuario conserva siempre la decisión final de pulsar Enviar.

• Windows PowerShell: se utiliza para ejecutar el asistente local que selecciona el archivo PDF en el cuadro de adjuntos de Gmail.

Para instalar el demo, descomprima el paquete, confirme que Ollama y el DSN pbdemo2025 estén disponibles, abra Demo_hermes_agent_pb.pbw con PowerBuilder 2025 R2 y ejecute la aplicación. La carpeta salida_hermes se crea automáticamente cuando Hermes necesita exportar un reporte; por esta razón no se incluye en el ZIP de distribución.

Ventana real del demo. A la izquierda permanece la trazabilidad completa; a la derecha, el DataWindow operativo y la respuesta ejecutiva presentada en HTML.

¿Qué es un agente?

Un agente de IA es un componente de software que combina un modelo de lenguaje, memoria conversacional, un conjunto explícito de herramientas y un ciclo de decisión. El usuario expresa un objetivo en lenguaje natural; el agente determina qué información necesita, qué herramienta puede producirla, cómo interpretar el resultado y si el objetivo ya está completo.

Un chatbot tradicional devuelve texto. Hermes puede devolver texto, pero también puede ordenar un DataWindow, resaltar una condición, buscar una fila, calcular una frecuencia, exportar un archivo o preparar un borrador de Gmail. La acción no la ejecuta directamente el modelo: PowerBuilder mantiene el control, valida los argumentos y realiza la operación.

Arquitectura real del demo

La implementación divide responsabilidades para que la ventana no contenga lógica compleja ni preguntas codificadas por palabras clave.

El resultado de cada herramienta regresa al agente. Hermes puede terminar, pedir un dato imprescindible o elegir otra herramienta de PowerBuilder.

Cómo interactúa Hermes con PowerBuilder

• El usuario define un objetivo. La ventana agrega la instrucción al historial con rol user.

• PowerBuilder construye la solicitud. JSONGenerator agrega el mensaje de sistema, el historial y el catálogo de herramientas.

• Ollama consulta el modelo. El endpoint http://127.0.0.1:11434/v1/chat/completions expone una interfaz compatible con Chat Completions y utiliza minimax-m3:cloud.

• Hermes decide. Puede responder al usuario o devolver un tool_call con nombre y argumentos JSON.

• PowerBuilder valida y ejecuta. El ejecutor enruta la función, valida columnas, operadores, consultas o rutas y modifica el DataWindow.

• El resultado vuelve a la IA. Mensajes como REPORTE_OK, FRECUENCIA_OK o ERROR_FILTRO se agregan con rol tool.

• Hermes reevalúa. El modelo puede invocar otra herramienta usando el valor recién obtenido o presentar una conclusión.

• La ventana entrega dos niveles de evidencia. La consola conserva la traza técnica y el WebBrowser transforma la respuesta en un informe HTML legible.

1For li_paso = 1 To ii_maximo_pasos
2 ls_solicitud_json = This.of_construir_solicitud()
3 ls_estado_http = This.of_enviar_solicitud(ls_solicitud_json, ls_respuesta_json)
4 ls_respuesta_agente = This.of_interpretar_respuesta( &
5 ls_respuesta_json, lb_solicita_herramienta, &
6 ls_identificador, ls_herramienta, ls_argumentos)
7
8 If Not lb_solicita_herramienta Then
9 Return ls_respuesta_agente
10 End If
11
12 ls_resultado_herramienta = This.of_ejecutar_herramienta( &
13 ls_herramienta, ls_argumentos, adw_resultado)
14 This.of_agregar_resultado_herramienta( &
15 ls_identificador, ls_resultado_herramienta)
16Next

Ollama y minimax-m3:cloud

El demo utiliza Ollama como capa de acceso al modelo a través de su endpoint local compatible con OpenAI. El nombre configurado es minimax-m3:cloud: Ollama administra la llamada y el modelo cloud realiza el razonamiento y la selección de herramientas. Esto permite conservar un contrato HTTP estable en PowerBuilder y cambiar el modelo sin reescribir la arquitectura del agente.

Las solicitudes se envían en UTF-8 mediante HttpClient. El historial utiliza los roles system, user, assistant y tool. Para cada llamada, PowerBuilder conserva el identificador, el nombre de la función, sus argumentos y el resultado asociado.

Herramientas disponibles

Un ejemplo de razonamiento encadenado

La solicitud “identifica la ciudad con más clientes y filtra esa ciudad” no se resuelve buscando una palabra en la frase. Hermes consulta el contexto, elige of_obtener_valor_mas_frecuente con la columna city, recibe un resultado como valor=Kansas City, cantidad=3 y usa exactamente ese valor para llamar a of_filtrar_reporte. Después solicita un resumen y redacta la respuesta final.

1USUARIOIA: identifica la ciudad con más clientes
2IAPOWERBUILDER: of_obtener_valor_mas_frecuente {"columna":"city"}
3POWERBUILDERIA: FRECUENCIA_OK: valor=Kansas City, cantidad=3
4IAPOWERBUILDER: of_filtrar_reporte {"columna":"city","operador":"igual","valor":"Kansas City"}
5POWERBUILDERIA: FILTRO_OK: visibles=3, filtradas=123
6IAUSUARIO: resumen ejecutivo verificado

Correo con PDF y confirmación humana

Hermes solo solicita el destinatario cuando falta. El asunto y el cuerpo se redactan con los datos recibidos desde PowerBuilder, en texto plano y con estructura profesional. El ejecutor exporta el DataWindow a salida_hermes\reporte_hermes.pdf, codifica acentos y saltos de línea para Gmail y abre una ventana de redacción.

El script de accesibilidad selecciona el botón Adjuntar archivos, carga el PDF y escribe una marca de estado. La automatización termina antes del envío: el usuario revisa y pulsa Enviar. Esta frontera evita convertir una decisión del modelo en una acción externa irreversible.

Ventajas de incorporar un agente

Lenguaje natural

El usuario describe el resultado esperado sin conocer nombres de eventos, expresiones DataWindow ni funciones internas.

Composición dinámica

Una sola solicitud puede combinar contexto, consulta, formato, orden, filtro, cálculo, exportación y comunicación.

Menos lógica visual

La ventana coordina la experiencia; el catálogo y el ejecutor concentran las capacidades reutilizables.

Decisiones verificables

Cada acción produce un resultado estructurado que regresa al modelo y queda visible en la traza.

Extensibilidad

Agregar una capacidad significa publicar su esquema y construir un ejecutor; el flujo principal no cambia.

Control empresarial

PowerBuilder conserva validación, permisos, datos y límites; el modelo no recibe acceso directo a SQLCA ni al sistema operativo.

Tres instrucciones para probar el demo

Genera un reporte con todos los clientes. Resalta en azul las filas cuya ciudad sea Paoli, ordénalas por ciudad y muéstrame cuántos clientes cumplen esa condición.

Analiza el reporte actual, identifica la ciudad con más clientes, filtra únicamente esa ciudad y genera un resumen ejecutivo. Si necesitas información adicional, pregúntame antes de ejecutar.

Prepara un correo con el reporte actual adjunto en PDF. Redacta un resumen ejecutivo profesional en el cuerpo, pregúntame el destinatario si no lo tienes y deja Gmail completamente preparado para que yo solamente revise y pulse Enviar.

Controles y límites importantes

• Las consultas dinámicas deben ser exclusivamente SELECT.

• Las columnas se validan contra el DataWindow activo antes de filtrar, ordenar o calcular.

• Los filtros vacíos se rechazan para impedir ciclos incorrectos.

• El ciclo posee un máximo de ocho decisiones por instrucción.

• La traza diferencia usuario, IA, PowerBuilder y resultado de herramienta.

• La exportación y el correo utilizan rutas controladas por PowerBuilder.

• Gmail queda preparado, pero el agente nunca envía automáticamente.

Conclusión

Hermes convierte PowerBuilder en un entorno dirigido por objetivos sin perder el control de ejecución. Ollama y minimax-m3:cloud aportan razonamiento y selección de herramientas; PowerBuilder aporta datos, validación, DataWindow, persistencia, exportación e integración con el escritorio.

El resultado es más que una conversación incrustada en una ventana. Es un ciclo observable donde la IA decide, PowerBuilder ejecuta, el resultado se verifica y el agente continúa hasta entregar una respuesta o solicitar el único dato que realmente falta. Esa separación es la base para incorporar agentes a aplicaciones PowerBuilder de forma gradual, explicable y segura.