Cómo Crear Tu Primer Agente de IA: Tutorial Paso a Paso [2026]
🎓 ¿Quieres crear agentes que realmente funcionen? En La Escuela de IA hacemos proyectos prácticos de agentes cada semana. Desde asistentes personales hasta agentes de investigación. Únete por $29/mes. Tambien en LinkedIn de Javier Santos.
TL;DR - Resumen Rápido
- Agente de IA = LLM + Herramientas + Capacidad de decidir qué hacer
- Diferencia con chatbot: Un agente puede ACTUAR, no solo responder
- Stack 2026: LangChain/LangGraph + GPT-4o + Herramientas custom
- Tiempo: 1-2 horas para tu primer agente funcional
- Requisitos: Python básico + API key de OpenAI
Qué es un Agente de IA (y Qué No Es)
Chatbot vs Agente
| Característica | Chatbot | Agente |
|---|---|---|
| Responde preguntas | ✅ | ✅ |
| Usa herramientas | ❌ | ✅ |
| Decide qué hacer | ❌ | ✅ |
| Ejecuta acciones | ❌ | ✅ |
| Aprende de resultados | ❌ | ✅ |
- Respuesta: "No tengo acceso a datos en tiempo real"
Agente: "Dame el precio de Bitcoin"
- Pensamiento: "Necesito buscar el precio actual"
- Acción: Usa herramienta de búsqueda web
- Respuesta: "El precio actual de Bitcoin es $98,450 según CoinGecko"
El Loop de un Agente
1Usuario pide algo2 ↓3Agente PIENSA: ¿Qué necesito hacer?4 ↓5Agente DECIDE: Usar herramienta X6 ↓7Herramienta EJECUTA y devuelve resultado8 ↓9Agente EVALÚA: ¿Tengo lo que necesito?10 ↓11Si no → Vuelve a PENSAR12Si sí → RESPONDE al usuario
Tutorial: Tu Primer Agente en 30 Minutos
Vamos a crear un agente que puede:
- Buscar información en internet
- Hacer cálculos matemáticos
- Ejecutar código Python
- Decidir qué herramienta usar
Setup Inicial
1# Crear proyecto2mkdir mi-primer-agente3cd mi-primer-agente4 5# Entorno virtual6python -m venv venv7source venv/bin/activate # Linux/Mac8# venv\Scripts\activate # Windows9 10# Instalar dependencias11pip install langchain langchain-openai langchain-community12pip install duckduckgo-search python-dotenv
Estructura del Proyecto
1mi-primer-agente/2├── .env # API keys3├── agent.py # Código principal4├── tools.py # Herramientas custom5└── requirements.txt
Paso 1: Configurar API Key
1# .env2OPENAI_API_KEY=sk-tu-api-key-aqui
Paso 2: Definir Herramientas (tools.py)
1"""2tools.py - Herramientas que el agente puede usar3"""4from langchain.tools import tool5from langchain_community.tools import DuckDuckGoSearchRun6import math7 8# Herramienta 1: Búsqueda en internet9search = DuckDuckGoSearchRun()10 11@tool12def search_web(query: str) -> str:13 """14 Busca información en internet. 15 Útil para obtener datos actuales, noticias, precios, etc.16 17 Args:18 query: La búsqueda a realizar19 """20 return search.run(query)21 22@tool23def calculator(expression: str) -> str:24 """25 Realiza cálculos matemáticos.26 Soporta: +, -, *, /, **, sqrt(), sin(), cos(), etc.27 28 Args:29 expression: La expresión matemática a evaluar (ej: "2 + 2", "sqrt(16)")30 """31 try:32 # Hacer disponibles funciones matemáticas33 allowed_names = {34 "sqrt": math.sqrt,35 "sin": math.sin,36 "cos": math.cos,37 "tan": math.tan,38 "log": math.log,39 "pi": math.pi,40 "e": math.e,41 "abs": abs,42 "round": round,43 }44 result = eval(expression, {"__builtins__": {}}, allowed_names)45 return f"Resultado: {result}"46 except Exception as e:47 return f"Error en el cálculo: {str(e)}"48 49@tool50def run_python(code: str) -> str:51 """52 Ejecuta código Python simple.53 Útil para procesamiento de datos, manipulación de strings, etc.54 ⚠️ Solo para código seguro y simple.55 56 Args:57 code: Código Python a ejecutar58 """59 try:60 # Entorno restringido para seguridad61 local_vars = {}62 exec(code, {"__builtins__": {"print": print, "len": len, "range": range, "str": str, "int": int, "float": float, "list": list, "dict": dict}}, local_vars)63 64 # Capturar resultado si hay variable 'result'65 if 'result' in local_vars:66 return f"Resultado: {local_vars['result']}"67 return "Código ejecutado correctamente"68 except Exception as e:69 return f"Error: {str(e)}"70 71@tool72def get_current_datetime() -> str:73 """74 Obtiene la fecha y hora actual.75 Útil para saber qué día es, calcular plazos, etc.76 """77 from datetime import datetime78 now = datetime.now()79 return f"Fecha y hora actual: {now.strftime('%d/%m/%Y %H:%M:%S')}"80 81# Lista de todas las herramientas82all_tools = [search_web, calculator, run_python, get_current_datetime]
Paso 3: Crear el Agente (agent.py)
1"""2agent.py - Tu primer agente de IA3"""4import os5from dotenv import load_dotenv6from langchain_openai import ChatOpenAI7from langchain.agents import AgentExecutor, create_openai_tools_agent8from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder9from langchain.memory import ConversationBufferMemory10 11from tools import all_tools12 13load_dotenv()14 15def create_agent():16 """Crea y configura el agente"""17 18 # 1. Configurar el LLM19 llm = ChatOpenAI(20 model="gpt-4o-mini", # Buena relación calidad/precio21 temperature=0 # Respuestas consistentes22 )23 24 # 2. Definir el prompt del agente25 prompt = ChatPromptTemplate.from_messages([26 ("system", """Eres un asistente inteligente con acceso a herramientas.27 28REGLAS:29- Siempre explica brevemente qué vas a hacer antes de usar una herramienta30- Si no necesitas herramientas, responde directamente31- Para cálculos, usa la calculadora32- Para información actual (precios, noticias, datos), busca en internet33- Sé conciso pero útil34 35IMPORTANTE: Piensa paso a paso antes de actuar."""),36 37 MessagesPlaceholder(variable_name="chat_history"),38 ("human", "{input}"),39 MessagesPlaceholder(variable_name="agent_scratchpad"),40 ])41 42 # 3. Crear el agente43 agent = create_openai_tools_agent(llm, all_tools, prompt)44 45 # 4. Configurar memoria para conversación46 memory = ConversationBufferMemory(47 memory_key="chat_history",48 return_messages=True49 )50 51 # 5. Crear el executor52 agent_executor = AgentExecutor(53 agent=agent,54 tools=all_tools,55 memory=memory,56 verbose=True, # Ver el razonamiento del agente57 handle_parsing_errors=True,58 max_iterations=5 # Límite de pasos para evitar loops59 )60 61 return agent_executor62 63def chat():64 """Loop de conversación con el agente"""65 print("🤖 Agente de IA iniciado. Escribe 'salir' para terminar.\n")66 print("Puedo buscar en internet, hacer cálculos y ejecutar código Python.\n")67 68 agent = create_agent()69 70 while True:71 user_input = input("Tú: ").strip()72 73 if user_input.lower() in ['salir', 'exit', 'quit']:74 print("👋 ¡Hasta luego!")75 break76 77 if not user_input:78 continue79 80 try:81 response = agent.invoke({"input": user_input})82 print(f"\n🤖 Agente: {response['output']}\n")83 except Exception as e:84 print(f"❌ Error: {str(e)}\n")85 86if __name__ == "__main__":87 chat()
Paso 4: Ejecutar
1python agent.py
Ejemplo de Conversación
1🤖 Agente de IA iniciado. Escribe 'salir' para terminar.2Puedo buscar en internet, hacer cálculos y ejecutar código Python.3 4Tú: ¿Cuál es el precio actual del Bitcoin y cuánto sería 0.5 BTC en euros?5 6> Entering new AgentExecutor chain...7Voy a buscar el precio actual del Bitcoin y luego calcular el valor.8 9Invoking: `search_web` with `precio Bitcoin EUR hoy`10 11Bitcoin price today is $98,234 USD (approximately €91,500 EUR)...12 13Ahora calcularé cuánto serían 0.5 BTC:14 15Invoking: `calculator` with `91500 * 0.5`16 17Resultado: 45750.018 19> Finished chain.20 21🤖 Agente: El precio actual de Bitcoin es aproximadamente €91,500 EUR.220.5 BTC equivaldrían a **€45,750**.23 24Tú: Genera una lista de los primeros 10 números de Fibonacci25 26> Entering new AgentExecutor chain...27Voy a usar Python para generar la secuencia de Fibonacci:28 29Invoking: `run_python` with `30def fibonacci(n):31 fib = [0, 1]32 for i in range(2, n):33 fib.append(fib[i-1] + fib[i-2])34 return fib[:n]35 36result = fibonacci(10)37`38 39Resultado: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]40 41> Finished chain.42 43🤖 Agente: Los primeros 10 números de Fibonacci son:44**0, 1, 1, 2, 3, 5, 8, 13, 21, 34**
Añadir Más Herramientas
Herramienta: Enviar Email
1@tool2def send_email(to: str, subject: str, body: str) -> str:3 """4 Envía un email.5 6 Args:7 to: Dirección de email del destinatario8 subject: Asunto del email9 body: Contenido del email10 """11 # Aquí iría la integración real con Gmail/SMTP12 # Por seguridad, solo simulamos13 return f"✅ Email enviado a {to} con asunto: {subject}"
Herramienta: Consultar Base de Datos
1@tool2def query_database(query: str) -> str:3 """4 Ejecuta una consulta SQL en la base de datos.5 Tablas disponibles: users, orders, products6 7 Args:8 query: Consulta SQL a ejecutar9 """10 # Conexión a tu DB real11 import sqlite312 conn = sqlite3.connect('database.db')13 cursor = conn.cursor()14 cursor.execute(query)15 results = cursor.fetchall()16 conn.close()17 return str(results)
Herramienta: Crear Archivo
1@tool2def create_file(filename: str, content: str) -> str:3 """4 Crea un archivo con el contenido especificado.5 6 Args:7 filename: Nombre del archivo a crear8 content: Contenido del archivo9 """10 with open(f"outputs/{filename}", "w") as f:11 f.write(content)12 return f"✅ Archivo {filename} creado correctamente"
Agentes Multi-Paso con LangGraph (Avanzado)
Para agentes más complejos, usa LangGraph:
1from langgraph.graph import StateGraph, END2from typing import TypedDict, Annotated3import operator4 5class AgentState(TypedDict):6 messages: Annotated[list, operator.add]7 next_action: str8 9def research_node(state):10 """Nodo de investigación"""11 # Busca información12 return {"messages": [{"role": "assistant", "content": "Info encontrada..."}]}13 14def analyze_node(state):15 """Nodo de análisis"""16 # Analiza la información17 return {"messages": [{"role": "assistant", "content": "Análisis completado..."}]}18 19def write_node(state):20 """Nodo de escritura"""21 # Genera el output final22 return {"messages": [{"role": "assistant", "content": "Reporte generado..."}]}23 24# Crear grafo25workflow = StateGraph(AgentState)26 27# Añadir nodos28workflow.add_node("research", research_node)29workflow.add_node("analyze", analyze_node)30workflow.add_node("write", write_node)31 32# Definir flujo33workflow.set_entry_point("research")34workflow.add_edge("research", "analyze")35workflow.add_edge("analyze", "write")36workflow.add_edge("write", END)37 38# Compilar39app = workflow.compile()
🎓 En La Escuela de IA tenemos tutoriales completos de LangGraph con proyectos reales.
Errores Comunes y Soluciones
Error 1: El agente se queda en un loop
Problema: El agente sigue intentando lo mismo sin avanzar.
Solución:
1agent_executor = AgentExecutor(2 ...3 max_iterations=5, # Límite de iteraciones4 early_stopping_method="force" # Forzar parada5)
Error 2: El agente no usa las herramientas correctas
Problema: Intenta buscar cuando debería calcular, etc.
Solución: Mejora las descripciones de las herramientas:
1@tool2def calculator(expression: str) -> str:3 """4 SOLO para operaciones matemáticas: suma, resta, multiplicación, división.5 NO usar para buscar información o datos externos.6 7 Ejemplos válidos: "2+2", "100*0.21", "sqrt(16)"8 """
Error 3: Respuestas muy largas o verbosas
Problema: El agente da explicaciones innecesarias.
Solución: Añade instrucciones en el system prompt:
1("system", """...2ESTILO DE RESPUESTA:3- Máximo 3 párrafos4- Ve al grano5- Sin introducciones innecesarias6...""")
Error 4: Problemas de seguridad con ejecución de código
Problema: El usuario puede inyectar código malicioso.
Solución:
- Usa un sandbox (Docker, E2B, etc.)
- Limita las funciones disponibles
- Valida el input antes de ejecutar
- No uses en producción sin sandbox
Proyectos de Práctica
Nivel Principiante
- Agente de clima: Busca el tiempo en una ciudad
- Agente traductor: Traduce texto entre idiomas
- Agente de resúmenes: Resume artículos web
Nivel Intermedio
- Agente de investigación: Busca y sintetiza información sobre un tema
- Agente de código: Escribe y ejecuta código para resolver problemas
- Agente de emails: Lee y responde emails automáticamente
Nivel Avanzado
- Agente de trading: Analiza mercados y sugiere operaciones
- Agente de soporte: Atiende tickets con acceso a base de conocimiento
- Agente de contenido: Genera posts para redes sociales
🎓 Todos estos proyectos con código completo en La Escuela de IA
Recursos Adicionales
Documentación
Artículos Relacionados
Conclusión
Has creado tu primer agente de IA funcional. Ahora:
- Experimenta añadiendo más herramientas
- Mejora el prompt para casos específicos
- Escala hacia proyectos más complejos con LangGraph
Tu Plan de Acción
- Hoy: Ejecuta el tutorial básico
- Esta semana: Añade 2-3 herramientas custom
- Este mes: Crea un agente útil para tu trabajo
- Comparte: Publica tu proyecto en GitHub
¿Quieres acelerar tu aprendizaje?
En La Escuela de IA tienes:
- ✅ Proyectos completos de agentes reales
- ✅ Code reviews de tu código
- ✅ Comunidad activa de +100 developers
- ✅ Soporte directo para tus dudas
Precio: $29/mes (sube cada 50 miembros)
¿Tienes dudas sobre cómo crear agentes? Pregunta en La Escuela de IA — te ayudo a diseñar tu agente.
