Construye tu primer agente: sin código y con código
Construye un agente de IA de dos formas — sin código con n8n (visual) y con código en Python (LangChain). Dos caminos, un mismo resultado.
Contenido de Curso Premium
Esta lección es parte de un curso premium. Mejora a Pro para desbloquear todos los cursos premium y su contenido.
- Acceso a todos los cursos premium
- Más de 1000 plantillas de skills de IA incluidas
- Contenido nuevo cada semana
🔄 En las lecciones 1-6 cubrimos la teoría: qué son los agentes, cómo piensan (ReAct), qué herramientas usan, cómo recuerdan y cómo colaboran. Ahora toca construir.
Dos caminos, un mismo objetivo
Hay dos formas de construir agentes:
| Sin código (n8n) | Con código (Python) | |
|---|---|---|
| Para quién | Profesionales de negocio, marketers, gerentes | Desarrolladores, data scientists |
| Velocidad | Rápido — drag-and-drop | Más lento — pero más flexible |
| Personalización | Limitada a nodos disponibles | Total — escribes tu propia lógica |
| Mejor para | Automatizaciones de negocio, prototipos | Producción, flujos complejos, multi-agente |
Elige el que se adapte a tu perfil. Los conceptos son los mismos.
Camino 1: Agente con n8n (sin código)
n8n es la herramienta de automatización más popular en la comunidad hispanohablante. Tiene nodos nativos de IA que permiten crear agentes con interfaz visual.
Paso 1: Configura el modelo
En n8n, creas un flujo y agregas un nodo “AI Agent”. Este nodo necesita un modelo:
- Conectas un nodo de credenciales (OpenAI, Anthropic, etc.)
- Seleccionas el modelo (GPT-4o, Claude 3.5 Sonnet)
- Defines las instrucciones del sistema
Paso 2: Conecta herramientas
Agregas nodos de herramientas al agente:
- Calculator — Para cálculos matemáticos
- HTTP Request — Para llamar cualquier API
- Google Search — Para búsqueda web
- Code — Para ejecutar JavaScript personalizado
Cada herramienta se conecta al nodo del agente. El agente decide cuándo usar cada una según el ciclo ReAct.
Paso 3: Añade memoria (opcional)
Conectas un nodo de memoria:
- Window Buffer Memory — Recuerda los últimos N mensajes
- Postgres Chat Memory — Persiste el historial en base de datos
Paso 4: Define el trigger
¿Cómo se activa el agente?
- Chat trigger — Interfaz de chat embebida
- Webhook — Se activa cuando recibe una petición HTTP
- Schedule — Se ejecuta cada hora, día, semana
Ejemplo completo: Un agente que recibe preguntas por webhook, busca en internet, calcula si es necesario, y responde con datos actualizados.
✅ Quick Check: ¿Cuáles son los 3 componentes que siempre necesitas en un agente de n8n? (Un modelo LLM, al menos una herramienta, y un trigger que active el flujo. La memoria es opcional pero recomendada.)
Camino 2: Agente con Python (LangChain)
Para quienes prefieren código, LangChain es el framework más usado. Aquí va un agente mínimo:
Instalación
pip install langchain langchain-openai
Agente básico con herramientas
from langchain_openai import ChatOpenAI
from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import Tool
from langchain import hub
# 1. Modelo
llm = ChatOpenAI(model="gpt-4o", temperature=0)
# 2. Herramientas
def buscar_precio(producto: str) -> str:
"""Busca el precio de un producto."""
# En producción, esto llamaría a una API real
precios = {"laptop": "$800", "monitor": "$350", "teclado": "$45"}
return precios.get(producto.lower(), "Producto no encontrado")
herramientas = [
Tool(
name="buscar_precio",
func=buscar_precio,
description="Busca el precio de un producto electrónico"
)
]
# 3. Prompt ReAct
prompt = hub.pull("hwchase17/react")
# 4. Crear agente
agente = create_react_agent(llm, herramientas, prompt)
executor = AgentExecutor(agent=agente, tools=herramientas, verbose=True)
# 5. Ejecutar
resultado = executor.invoke({"input": "¿Cuánto cuesta un monitor?"})
print(resultado["output"])
Lo que pasa internamente:
- El modelo recibe la pregunta y los schemas de herramientas
- Piensa: “Necesito buscar el precio del monitor”
- Llama a
buscar_precio("monitor") - Recibe “$350”
- Responde: “El monitor cuesta $350”
Con verbose=True puedes ver cada paso del ciclo ReAct en la terminal.
Añadir más herramientas
import numexpr
def calcular(expresion: str) -> str:
"""Calcula una expresión matemática de forma segura."""
return str(numexpr.evaluate(expresion))
herramientas.append(
Tool(name="calculadora", func=calcular,
description="Calcula expresiones matemáticas")
)
Ahora el agente puede buscar precios Y hacer cálculos: “¿Cuánto cuestan 3 monitores con 10% de descuento?”
Guardrails: lo que tu agente NO debe hacer
Antes de desplegar cualquier agente, define límites:
Instrucciones negativas en el prompt del sistema:
NO ejecutes acciones que modifiquen datos sin confirmación del usuario.
NO compartas información personal de un cliente con otro.
NO inventes datos — si no tienes la información, dilo.
Si no puedes resolver la tarea en 5 pasos, escala a un humano.
Límites técnicos:
- Máximo de iteraciones del loop (evita loops infinitos)
- Timeout por herramienta (evita que una API lenta bloquee todo)
- Lista blanca de herramientas (el agente solo puede usar las que defines)
✅ Quick Check: ¿Por qué es importante poner un límite de iteraciones al loop del agente? (Porque sin límite, un agente puede entrar en un loop infinito — repitiendo las mismas acciones sin avanzar, consumiendo tokens y dinero. Un límite de 10-15 iteraciones es razonable para la mayoría de tareas.)
Puntos clave
- n8n: agentes visuales sin código — modelo + herramientas + trigger
- Python/LangChain: agentes con código — control total del flujo
- Ambos usan ReAct: pensar → actuar → observar → repetir
- Guardrails son obligatorios: límites de iteraciones, herramientas permitidas, escalación a humano
- Empieza con lo más simple que funcione: n8n para prototipos, Python para producción
Siguiente lección
Última lección. En el capstone vas a diseñar un agente completo para tu trabajo real — eligiendo los componentes, herramientas, memoria y controles de seguridad adecuados.
Comprobación de Conocimientos
Primero completa el quiz de arriba
¡Lección completada!