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:
- Obtiene logs recientes de todos los contenedores monitorizados
- Analiza patrones de logs buscando errores, advertencias y anomalias
- Clasifica severidad:
critical,high,medium,low - 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 |