Saltar a contenido

Agentes Autonomos

MDU ejecuta agentes IA autonomos que monitorizan la salud del sistema y recopilan requisitos a traves de conversacion.

Registro de Agentes

15 agentes estan registrados en la tabla agent_registry. Dos estan actualmente activos:

Agente Tipo Descripcion
Agente de Requisitos Conversacional Bot de Soporte CVO para recopilacion de requisitos
Analizador de Logs Programado Guardian del Sistema para monitorizar logs Docker

Agente de Requisitos (Bot de Soporte CVO)

Archivo: /opt/mdu-api/requirement-agent.js

Un agente conversacional que ayuda a recopilar requisitos de producto a traves de dialogo natural usando Mistral 7B (via Ollama).

Endpoint

POST /api/admin/agents/requirement/chat
Authorization: Bearer <admin-token>
Content-Type: application/json

{
  "message": "Necesitamos una forma de que los usuarios compartan modelos en redes sociales",
  "session_id": "uuid-sesion-opcional"
}

Respuesta:

{
  "reply": "Excelente idea! Dejame hacer algunas preguntas...",
  "session_id": "uuid",
  "requirement": null
}

Cuando el agente ha recopilado suficiente informacion, devuelve un requisito estructurado:

{
  "reply": "Entendido! He creado un requisito para compartir en redes sociales.",
  "session_id": "uuid",
  "requirement": {
    "title": "Compartir Modelos en Redes Sociales",
    "description": "Permitir a usuarios compartir previews de modelos 3D en Twitter/X e Instagram",
    "priority": "medium",
    "category": "feature"
  }
}

Analizador de Logs (Guardian del Sistema)

Archivo: /opt/mdu-api/log-analyzer.js

Se ejecuta cada 5 minutos, analizando logs de contenedores Docker:

  1. Obtiene logs recientes de todos los contenedores monitorizados
  2. Analiza patrones de logs buscando errores, advertencias y anomalias
  3. Clasifica severidad: critical, high, medium, low
  4. Auto-crea requisitos para issues criticos/altos

Proceso

Cada 5 minutos:
  Logs Docker (ultimos 5min) → Coincidencia patrones → Clasificacion severidad
     |
     v
  Critico/Alto → Auto-crear requisito en pipeline_jobs
     |
     v
  Todos los hallazgos → Almacenar en tabla agent_runs

Tablas de Base de Datos

agent_registry

Columna Tipo Descripcion
id UUID Clave primaria
name TEXT Nombre del agente
type TEXT Tipo de agente
status TEXT active, inactive, error
config JSONB Configuracion del agente
last_run TIMESTAMPTZ Ultima ejecucion

agent_runs

Columna Tipo Descripcion
id UUID Clave primaria
agent_id UUID FK a agent_registry
started_at TIMESTAMPTZ Hora inicio
completed_at TIMESTAMPTZ Hora fin
status TEXT success, failed, timeout
output JSONB Resultados de ejecucion

Gestion Admin

Los agentes se gestionan via Admin Hub:

Metodo Ruta Descripcion
GET /api/admin/agents Listar todos los agentes
POST /api/admin/agents Registrar nuevo agente
PUT /api/admin/agents/:id Actualizar config agente
DELETE /api/admin/agents/:id Eliminar agente
GET /api/admin/agents/stream SSE actualizaciones tiempo real