Introducción

Los equipos de red suelen preguntarse si los agentes de IA son una amenaza para sus habilidades técnicas actuales o si, por el contrario, representan una oportunidad para optimizar flujos de trabajo manuales. La realidad es que los agentes de IA no eliminan la necesidad de entender Python, YAML o herramientas de infraestructura, pero sí permiten delegar tareas repetitivas y riesgosas.

En esta guía te mostramos cómo integrar agentes de IA en tu estrategia de automatización de red usando Python y la plataforma FlowAI de Itential, sin caer en promesas vacías de «automatización mágica». Vas a aprender a:

  • Identificar qué tareas de red pueden externalizarse a un agente de IA
  • Implementar un agente con Python y FlowAI que interactúe con equipos de red reales
  • Medir el impacto en tiempo de ejecución (runtime) vs. tiempo de desarrollo (build time)
  • Escalar estos agentes en entornos de producción con controles de seguridad básicos

Qué es y para qué sirve

Un agente de IA en automatización de red es un componente autónomo que recibe un objetivo (ej.: «diagnosticar caída de enlace en el router R1») y ejecuta pasos predefinidos para cumplirlo, usando herramientas de red (CLI, APIs, SDKs) y lógica basada en modelos de lenguaje. No es un reemplazo de herramientas como Ansible, Terraform o Python puro, sino un multiplicador de productividad cuando:

Caso de usoEjemplo concretoHerramienta que complementa
Diagnóstico de red«¿Por qué falla el túnel VPN entre NY y SJ?»Script existente + agente que filtra logs y sugiere comandos
Generación de configs«Crear configuración de VLAN para 50 switches»Plantillas Jinja2 + agente que valida sintaxis
Documentación dinámica«Explicar por qué se aplicó la ACL 100»Repositorio de Git + agente que genera markdown
FlowAI, de Itential, actúa como orquestador de agentes: permite definir flujos de trabajo (workflows) donde un agente puede:
  1. Recibir una solicitud en lenguaje natural
  2. Descomponerla en sub-tareas técnicas
  3. Ejecutar comandos en equipos de red (Cisco IOS, Arista EOS, Juniper JunOS)
  4. Generar un informe o alerta con los resultados
Importante: FlowAI no reemplaza el control de versiones, pruebas de cambios ni revisiones de seguridad. Su valor está en reducir el tiempo de respuesta ante incidentes o automatizar tareas que hoy requieren intervención manual diaria.

Prerequisitos

Antes de empezar, asegurate de tener:

ComponenteVersión mínimaNotas
**Python**3.9+Usaremos BLOCK18, BLOCK19 y BLOCK20
**FlowAI**2.12+Requiere licencia (versión *Community* disponible para pruebas)
**Equipos de red**Cualquier dispositivo con SSHRecomendado: Cisco IOS-XE 17.x, Arista EOS 4.28+
**Permisos**Clave SSH con nivel 15 (enable)El agente necesita ejecutar comandos de diagnóstico
**Entorno**Linux (Ubuntu 22.04 LTS)Opcional: Docker para aislamiento
Accesos necesarios:
  • Credenciales de FlowAI (API key)
  • IP/host de al menos un equipo de red accesible por SSH
  • Token de GitHub/GitLab si querés integrar con repositorios (opcional)

> ⚠️ Error común: No validar los permisos del usuario SSH en los equipos. Si el agente intenta ejecutar show ip interface brief pero el usuario solo tiene permisos de lectura, fallará con Permission denied. Verificá con:

>

> ssh usuario@router1 "enable; show privilege"
> 

> El resultado debe ser 15.

Guía paso a paso

Paso 1: Instalar dependencias y configurar entorno

Crea un virtualenv y instala las librerías necesarias:

python -m venv ~/venv/flowai-agent
source ~/venv/flowai-agent/bin/activate
pip install --upgrade pip setuptools
pip install requests pydantic netmiko python-dotenv
Resultado esperado:
(flowai-agent) user@host:~$ pip list | grep netmiko
netmiko               4.3.0
(flowai-agent) user@host:~$ which python
/home/user/venv/flowai-agent/bin/python

Paso 2: Autenticar con FlowAI y obtener el endpoint de workflows

  1. Generá una API key en el portal de FlowAI (Admin → API Keys).
  2. Crea un archivo .env con:
FLOWAI_API_KEY="tu_api_key_aqui"
FLOWAI_BASE_URL="https://api.flowai.itential.com/v2"
  1. Verificá la autenticación con un script mínimo:
# auth_flowai.py
import os
import requests
from dotenv import load_dotenv

load_dotenv()
api_key = os.getenv("FLOWAI_API_KEY")
base_url = os.getenv("FLOWAI_BASE_URL")

headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

response = requests.get(f"{base_url}/workflows", headers=headers)
print(response.status_code, response.json())
Ejecución:
python auth_flowai.py
Resultado esperado:
200 {
  "data": {
    "workflows": [
      {"id": "wf-123", "name": "diagnostico_red", "description": "Workflow para diagnóstico de red"},
      {"id": "wf-456", "name": "generacion_config", "description": "Genera configs de VLANs"}
    ]
  }
}

> 🔍 Nota: Si recibís 401 Unauthorized, verifica que la API key no haya expirado o que el endpoint sea correcto.

Paso 3: Crear un agente simple en Python para interactuar con equipos de red

Vamos a crear un agente que:

  1. Reciba un hostname y un comando
  2. Ejecute el comando en el equipo
  3. Devuelva el output

Crea agent_network.py:

from netmiko import ConnectHandler
from pydantic import BaseModel, Field

class NetworkCommandRequest(BaseModel):
    hostname: str = Field(..., description="Hostname o IP del equipo")
    command: str = Field(..., description="Comando a ejecutar")
    username: str = "admin"
    password: str = "tu_password_ssh"
    device_type: str = "cisco_ios"

def execute_network_command(request: NetworkCommandRequest):
    device = {
        "device_type": request.device_type,
        "host": request.hostname,
        "username": request.username,
        "password": request.password,
    }
    try:
        with ConnectHandler(**device) as ssh:
            ssh.enable()
            output = ssh.send_command(request.command)
            return {"status": "success", "output": output}
    except Exception as e:
        return {"status": "error", "message": str(e)}

# Ejemplo de uso
if __name__ == "__main__":
    req = NetworkCommandRequest(
        hostname="192.168.1.1",
        command="show ip interface brief"
    )
    result = execute_network_command(req)
    print(result)
Ejecución:
python agent_network.py
Resultado esperado:
{
  "status": "success",
  "output": "Interface              IP-Address      OK? Method Status                Protocol\nVlan1                192.168.1.1     YES unset  up                    up      \n"
}

> ⚠️ Error común: Si el equipo usa SSH con claves en lugar de contraseña, modifica agent_network.py para usar ConnectHandler con ssh_config_file:

>

> device = {
>     "device_type": "cisco_ios",
>     "host": "192.168.1.1",
>     "username": "admin",
>     "use_keys": True,
>     "key_file": "~/.ssh/id_rsa_itential"
> }
> 

Paso 4: Integrar el agente con FlowAI

  1. En el portal de FlowAI, ve a Workflows → Create Workflow.
  2. Selecciona Start from scratch y ponle nombre: diagnostico_red_via_ai.
  3. Añade un Trigger de tipo HTTP (para recibir solicitudes desde tu script).
  4. Añade un Step de tipo Python y pega el contenido de agent_network.py (sin el bloque if __name__).
  5. Configura las Variables de entrada del step con:
hostname (tipo: string)

command (tipo: string)

  1. Guarda el workflow y obtené su workflow_id (ej.: wf-12345).
  1. Modifica auth_flowai.py para invocar el workflow:
# invoke_flowai_workflow.py
import os
import requests
from dotenv import load_dotenv

load_dotenv()
api_key = os.getenv("FLOWAI_API_KEY")
base_url = os.getenv("FLOWAI_BASE_URL")
workflow_id = "wf-12345"  # Reemplazá con tu ID

headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

payload = {
    "inputs": {
        "hostname": "192.168.1.1",
        "command": "show ip route"
    }
}

response = requests.post(
    f"{base_url}/workflows/{workflow_id}/execute",
    headers=headers,
    json=payload
)
print(response.status_code, response.json())
Ejecución:
python invoke_flowai_workflow.py
Resultado esperado:
200 {
  "status": "completed",
  "output": "C       192.168.1.0/24 is directly connected, Vlan1\nS*      0.0.0.0/0 [1/0] via 192.168.1.254"
}

> ✅ Verificación: Si el workflow falla, revisá los logs en FlowAI (Admin → Workflows → Logs) para ver si el error es en la ejecución de Python o en la conexión al equipo.

Paso 5: Escalar el agente con control de errores y logging

Para producción, añade manejo de errores y logging en agent_network.py:

import logging
from datetime import datetime

logging.basicConfig(
    filename=f"agent_network_{datetime.now().strftime('%Y%m%d')}.log",
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s"
)

try:
    with ConnectHandler(**device) as ssh:
        ssh.enable()
        output = ssh.send_command(request.command)
        logging.info(f"Comando ejecutado: {request.command} en {request.hostname}")
        return {"status": "success", "output": output}
except Exception as e:
    logging.error(f"Error en {request.hostname}: {str(e)}", exc_info=True)
    return {"status": "error", "message": str(e)}
Resultado esperado:
  • Se crea un archivo agent_network_YYYYMMDD.log con registros como:
>
> 2024-03-15 14:22:10,123 - INFO - Comando ejecutado: show ip route en 192.168.1.1
> 

Paso 6: Medir impacto (build time vs. runtime)

MétricaAntes (manual)Después (agente)
Tiempo para diagnosticar caída de enlace15-30 min2-5 min
Tiempo para generar 10 configs de VLAN4 horas15 min (agente + revisión humana)
Riesgo de error humanoAlto (copiar/pegar)Bajo (validación automática)
Cómo medirlo en tu entorno:
  1. Cronometra cuánto tarda un operador en ejecutar show ip interface brief manualmente.
  2. Compara con el tiempo de ejecución del agente:
time python invoke_flowai_workflow.py
  1. Documenta los resultados en una tabla como la anterior para justificar la adopción.

Paso 7: Seguridad básica para agentes en producción

  1. Restringí el acceso SSH:
– Usa un usuario dedicado con permisos mínimos (ej.: solo show commands).

– Configura en el equipo:

     username ai-agent privilege 1 view "show"
     
  1. Cifrá las credenciales:
– Usa python-keyring o HashiCorp Vault en lugar de .env para producción.
  1. Limita los workflows:
– En FlowAI, configura Allowed Origins para que solo tu script pueda invocar el workflow:

– Ve a Admin → Workflows → Security → Allowed Origins y añade http://tu-servidor:5000.

Consideraciones y buenas prácticas

Limitaciones conocidas

LimitaciónImpactoMitigación
Modelos de lenguaje pueden inventar comandosRiesgo de ejecución no válidaValidar output con BLOCK45’s BLOCK46 o usar BLOCK47 en el prompt
Latencia en equipos remotosAumenta runtimeCachear resultados por 5-10 min o usar equipos locales para pruebas
Coste de licenciasFlowAI Community es gratuita, Enterprise tiene costoEvaluar ROI con métricas de tickets resueltos
### Alternativas a FlowAI
HerramientaVentajaDesventaja
**Nornir** (Python)Código abierto, integración nativa con PythonRequiere más configuración manual
**RAG (Retrieval-Augmented Generation) con LangChain**Personalizable para tu infraestructuraComplejidad inicial alta
**Ansible con módulo BLOCK48 experimental**Integración con playbooks existentesDocumentación limitada
### Buenas prácticas para equipos de red
  1. Documentá cada workflow en FlowAI con:
– Descripción del objetivo

– Lista de comandos ejecutados

– Requisitos previos (ej.: «Necesita usuario con permisos de show«)

  1. Hacé revisiones de seguridad antes de ejecutar workflows en producción:
– Revisá que los comandos no incluyan configure terminal o reload

– Usá herramientas como bandit para escanear el código Python del agente

  1. Entrená a tu equipo en:
– Cómo depurar workflows en FlowAI (logs, variables de entorno)

– Cómo responder ante un agente que «alucina» (genera comandos inválidos)

Conclusión

Los agentes de IA no son una revolución, sino una evolución de tus herramientas de automatización de red existentes. En esta guía:

  • Aprendiste a integrar un agente de IA con Python y FlowAI para ejecutar comandos en equipos de red.
  • Validaste que el agente reduce el tiempo de respuesta sin sacrificar seguridad.
  • Escalaste el agente con logging, manejo de errores y restricciones de permisos.
Próximos pasos:
  1. Identificá 3 flujos manuales en tu entorno que puedan externalizarse a un agente.
  2. Implementá un prototipo con FlowAI Community y medí el tiempo ahorrado.
  3. Documentá el workflow y compartilo con tu equipo para feedback.

Recuerda: los agentes de IA son una herramienta más en tu caja de herramientas, no un reemplazo de tus habilidades técnicas. Su valor real está en automatizar lo repetitivo para que vos te enfoques en lo estratégico.

FIN

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *