Agentes de IA en operación continua
Qué cubre este artículo sobre operación continua
- Cómo ejecutar agentes de IA 24/7.
- Monitoreo, mantenimiento y manejo de errores para operación continua.
- Cómo mantener agentes confiables y estables.
- Ejemplos prácticos de agentes en operación continua.
- Mejores prácticas para disponibilidad, rendimiento y mantenimiento.
Introducción: operación continua explicada
Operación continua significa: tu agente se ejecuta 24/7, procesa tareas de manera continua, se monitorea a sí mismo y se recupera automáticamente de errores. No solo “iniciar el agente”, sino “el agente funciona de forma confiable de manera permanente”.
Este artículo está dirigido a usuarios que desean ejecutar agentes en operación continua. Encontrarás conceptos básicos en Ejecutar agentes de IA localmente y Monitoreo.
¿Por qué necesito operación continua?
Imagina que tu agente debe procesar correos electrónicos las 24 horas. No solo cuando lo inicias, sino de forma permanente: de noche, durante los fines de semana, reiniciándose automáticamente si hay errores. Operación continua significa disponibilidad confiable y permanente.
Operación continua en breve
El agente se ejecuta 24/7 → El monitoreo supervisa → Si hay error: reinicio automático → Si todo va bien: continúa trabajando. Con registro de eventos, alertas y auto-recuperación para garantizar confiabilidad.
La idea central es: disponibilidad permanente sin intervención manual.
Para quién es este artículo
- Equipos de producción que operan agentes de forma permanente.
- DevOps que necesitan garantizar disponibilidad.
- Empresas que desean automatización 24/7.
- Usuarios que auto-alojan servidores con agentes confiables.
Conceptos clave
- Monitoreo - Supervisión. Cuándo es útil: para operación continua.
- Registro de eventos - Logging. Cuándo es útil: para depuración.
- Ollama - Servidor de modelos. Cuándo es útil: para operación continua.
- Docker - Para despliegue. Cuándo es útil: para reinicio automático.
- Systemd - Gestión de servicios. Cuándo es útil: para inicio automático.
Arquitectura para operación continua
El agente se ejecuta (24/7)
│
├─ Monitoreo: Health-checks cada 30s
├─ Registro: Todas las acciones se registran
├─ Alertas: Notificación en caso de errores
└─ Auto-recuperación: Reinicio automático si hay falla
│
▼
Política de reinicio Systemd / Docker
│
├─ Si falla: reinicio automático
├─ Si OOM: reinicio con más memoria
└─ Si se cuelga: timeout → reinicio
Configuración: Systemd para operación continua
# /etc/systemd/system/ki-agent.service
[Unit]
Description=KI-Agent
After=network.target ollama.service
[Service]
Type=simple
User=ki-agent
WorkingDirectory=/opt/ki-agent
ExecStart=/usr/bin/python3 /opt/ki-agent/agent.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
# Límites de recursos
MemoryMax=4G
CPUQuota=80%
[Install]
WantedBy=multi-user.target
# Activar
sudo systemctl enable ki-agent
sudo systemctl start ki-agent
Configuración: Docker para operación continua
version: "3.8"
services:
agent:
build: ./agent
restart: always # Reinicio automático en caso de error
environment:
- OLLAMA_URL=http://ollama:11434
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
deploy:
resources:
limits:
memory: 4G
cpus: '2.0'
reservations:
memory: 2G
cpus: '1.0'
networks:
- agent_net
ollama:
image: ollama/ollama:latest
restart: always
volumes:
- ollama_data:/root/.ollama
networks:
- agent_net
volumes:
ollama_data:
networks:
agent_net:
driver: bridge
Monitoreo y alertas
import time
import logging
from datetime import datetime
class AgentMonitor:
"""Monitoreo para agentes"""
def __init__(self):
self.logger = logging.getLogger("agent")
self.error_count = 0
self.last_success = datetime.now()
def check_health(self):
"""Health-check"""
try:
# Probar el agente
response = requests.get("http://localhost:8000/health", timeout=5)
if response.status_code == 200:
self.last_success = datetime.now()
self.error_count = 0
return True
except Exception as e:
self.error_count += 1
self.logger.error(f"Health check failed: {e}")
if self.error_count > 3:
self.alert("Agent unhealthy", e)
return False
def alert(self, message, error):
"""Enviar alerta"""
# Email, Slack, PagerDuty, etc.
send_notification(f"ALERT: {message}\nError: {error}")
def run(self):
"""Loop de monitoreo"""
while True:
self.check_health()
time.sleep(30) # Cada 30 segundos
Manejo de errores
class ResilientAgent:
"""Agente con manejo de errores"""
async def run_with_retry(self, task, max_retries=3):
"""Ejecutar tarea con reintentos"""
for attempt in range(max_retries):
try:
result = await self.process(task)
return result
except Exception as e:
self.logger.warning(f"Attempt {attempt + 1} failed: {e}")
if attempt == max_retries - 1:
self.alert(f"Task failed after {max_retries} attempts", e)
raise
await asyncio.sleep(2 ** attempt) # Exponential backoff
async def process(self, task):
"""Procesar tarea"""
try:
# Lógica del agente
result = await self.execute(task)
return result
except OllamaError as e:
# Error en Ollama: recargar modelo?
await self.handle_ollama_error(e)
raise
except MemoryError as e:
# OOM: usar menos contexto?
await self.handle_oom(e)
raise
Notas de seguridad
- Monitoreo: El agente debe monitorearse a sí mismo. Generar alertas ante anomalías.
- Límites de recursos: Los límites de memoria y CPU evitan que el agente consuma todos los recursos.
- Reinicio automático: Reiniciar automáticamente ante errores, pero no de forma infinita.
- Registro de eventos: Registrar todas las acciones para depuración y auditoría. Consulta Registro de eventos.
- Backup: Respaldar configuración y datos regularmente. Consulta Backup.
Trampas comunes
- Sin monitoreo: Sin monitoreo no sabrás cuándo falla el agente.
- Memory leaks: Los agentes de larga ejecución pueden tener memory leaks. Se requiere monitoreo.
- Sin reinicio automático: Si hay un error, el agente se detiene. Configura reinicio automático.
- Demasiados reintentos: Si hay un error permanente, el agente se reinicia infinitamente. Usa límites de reintentos o circuit-breaker.
- Sin alertas: Deberías recibir notificaciones de errores, no enterarte más adelante.
Enlaces relacionados
- Monitoreo - Supervisión.
- Registro de eventos - Logging.
- Docker - Para despliegue.
- Ejecutar agentes de IA localmente - Descripción general.
- Backup - Resguardo de datos.
- Auditoría - Registro de auditoría.
Puntos clave:
- Operación continua: el agente funciona 24/7, se monitorea y se recupera automáticamente.
- Monitoreo: health-checks, registro de eventos y alertas.
- Reinicio automático: Systemd o Docker con restart=always.
- Los límites de recursos previenen OOM.
- Para producción: monitoreo y alertas son obligatorios.


