Ir al contenido principal

Cómo Crear Tu Primer Agente de IA: Tutorial Paso a Paso [2026]

1 de febrero de 2026
20 min

Aprende a crear un agente de IA desde cero. Tutorial práctico con Python: configura un agente que usa herramientas, busca en internet y ejecuta código.

Javier Santos

Especialista en IA & Machine Learning

📧¿Te gusta este contenido?

Únete a 547+ profesionales que reciben tips de IA cada semana. Sin spam, cancela cuando quieras.

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ísticaChatbotAgente
Responde preguntas
Usa herramientas
Decide qué hacer
Ejecuta acciones
Aprende de resultados
Chatbot: "Dame el precio de Bitcoin"
  • 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

code
1Usuario pide algo
2
3Agente PIENSA: ¿Qué necesito hacer?
4
5Agente DECIDE: Usar herramienta X
6
7Herramienta EJECUTA y devuelve resultado
8
9Agente EVALÚA: ¿Tengo lo que necesito?
10
11Si no → Vuelve a PENSAR
12Si sí → RESPONDE al usuario


Tutorial: Tu Primer Agente en 30 Minutos

Vamos a crear un agente que puede:

  1. Buscar información en internet
  2. Hacer cálculos matemáticos
  3. Ejecutar código Python
  4. Decidir qué herramienta usar

Setup Inicial

bash
1# Crear proyecto
2mkdir mi-primer-agente
3cd mi-primer-agente
4 
5# Entorno virtual
6python -m venv venv
7source venv/bin/activate # Linux/Mac
8# venv\Scripts\activate # Windows
9 
10# Instalar dependencias
11pip install langchain langchain-openai langchain-community
12pip install duckduckgo-search python-dotenv

Estructura del Proyecto

code
1mi-primer-agente/
2├── .env # API keys
3├── agent.py # Código principal
4├── tools.py # Herramientas custom
5└── requirements.txt

Paso 1: Configurar API Key

bash
1# .env
2OPENAI_API_KEY=sk-tu-api-key-aqui

Paso 2: Definir Herramientas (tools.py)

python
1"""
2tools.py - Herramientas que el agente puede usar
3"""
4from langchain.tools import tool
5from langchain_community.tools import DuckDuckGoSearchRun
6import math
7 
8# Herramienta 1: Búsqueda en internet
9search = DuckDuckGoSearchRun()
10 
11@tool
12def 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 realizar
19 """
20 return search.run(query)
21 
22@tool
23def 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áticas
33 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@tool
50def 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 ejecutar
58 """
59 try:
60 # Entorno restringido para seguridad
61 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@tool
72def 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 datetime
78 now = datetime.now()
79 return f"Fecha y hora actual: {now.strftime('%d/%m/%Y %H:%M:%S')}"
80 
81# Lista de todas las herramientas
82all_tools = [search_web, calculator, run_python, get_current_datetime]

Paso 3: Crear el Agente (agent.py)

python
1"""
2agent.py - Tu primer agente de IA
3"""
4import os
5from dotenv import load_dotenv
6from langchain_openai import ChatOpenAI
7from langchain.agents import AgentExecutor, create_openai_tools_agent
8from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder
9from langchain.memory import ConversationBufferMemory
10 
11from tools import all_tools
12 
13load_dotenv()
14 
15def create_agent():
16 """Crea y configura el agente"""
17
18 # 1. Configurar el LLM
19 llm = ChatOpenAI(
20 model="gpt-4o-mini", # Buena relación calidad/precio
21 temperature=0 # Respuestas consistentes
22 )
23
24 # 2. Definir el prompt del agente
25 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 herramienta
30- Si no necesitas herramientas, responde directamente
31- Para cálculos, usa la calculadora
32- Para información actual (precios, noticias, datos), busca en internet
33- Sé conciso pero útil
34 
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 agente
43 agent = create_openai_tools_agent(llm, all_tools, prompt)
44
45 # 4. Configurar memoria para conversación
46 memory = ConversationBufferMemory(
47 memory_key="chat_history",
48 return_messages=True
49 )
50
51 # 5. Crear el executor
52 agent_executor = AgentExecutor(
53 agent=agent,
54 tools=all_tools,
55 memory=memory,
56 verbose=True, # Ver el razonamiento del agente
57 handle_parsing_errors=True,
58 max_iterations=5 # Límite de pasos para evitar loops
59 )
60
61 return agent_executor
62 
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 break
76
77 if not user_input:
78 continue
79
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

bash
1python agent.py

Ejemplo de Conversación

code
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.0
18 
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 Fibonacci
25 
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

python
1@tool
2def 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 destinatario
8 subject: Asunto del email
9 body: Contenido del email
10 """
11 # Aquí iría la integración real con Gmail/SMTP
12 # Por seguridad, solo simulamos
13 return f"✅ Email enviado a {to} con asunto: {subject}"

Herramienta: Consultar Base de Datos

python
1@tool
2def query_database(query: str) -> str:
3 """
4 Ejecuta una consulta SQL en la base de datos.
5 Tablas disponibles: users, orders, products
6
7 Args:
8 query: Consulta SQL a ejecutar
9 """
10 # Conexión a tu DB real
11 import sqlite3
12 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

python
1@tool
2def 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 crear
8 content: Contenido del archivo
9 """
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:

python
1from langgraph.graph import StateGraph, END
2from typing import TypedDict, Annotated
3import operator
4 
5class AgentState(TypedDict):
6 messages: Annotated[list, operator.add]
7 next_action: str
8 
9def research_node(state):
10 """Nodo de investigación"""
11 # Busca información
12 return {"messages": [{"role": "assistant", "content": "Info encontrada..."}]}
13 
14def analyze_node(state):
15 """Nodo de análisis"""
16 # Analiza la información
17 return {"messages": [{"role": "assistant", "content": "Análisis completado..."}]}
18 
19def write_node(state):
20 """Nodo de escritura"""
21 # Genera el output final
22 return {"messages": [{"role": "assistant", "content": "Reporte generado..."}]}
23 
24# Crear grafo
25workflow = StateGraph(AgentState)
26 
27# Añadir nodos
28workflow.add_node("research", research_node)
29workflow.add_node("analyze", analyze_node)
30workflow.add_node("write", write_node)
31 
32# Definir flujo
33workflow.set_entry_point("research")
34workflow.add_edge("research", "analyze")
35workflow.add_edge("analyze", "write")
36workflow.add_edge("write", END)
37 
38# Compilar
39app = 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:

python
1agent_executor = AgentExecutor(
2 ...
3 max_iterations=5, # Límite de iteraciones
4 early_stopping_method="force" # Forzar parada
5)

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:

python
1@tool
2def 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:

python
1("system", """...
2ESTILO DE RESPUESTA:
3- Máximo 3 párrafos
4- Ve al grano
5- Sin introducciones innecesarias
6...""")

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

  1. Agente de clima: Busca el tiempo en una ciudad
  2. Agente traductor: Traduce texto entre idiomas
  3. Agente de resúmenes: Resume artículos web

Nivel Intermedio

  1. Agente de investigación: Busca y sintetiza información sobre un tema
  2. Agente de código: Escribe y ejecuta código para resolver problemas
  3. Agente de emails: Lee y responde emails automáticamente

Nivel Avanzado

  1. Agente de trading: Analiza mercados y sugiere operaciones
  2. Agente de soporte: Atiende tickets con acceso a base de conocimiento
  3. 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:

  1. Experimenta añadiendo más herramientas
  2. Mejora el prompt para casos específicos
  3. Escala hacia proyectos más complejos con LangGraph

Tu Plan de Acción

  1. Hoy: Ejecuta el tutorial básico
  2. Esta semana: Añade 2-3 herramientas custom
  3. Este mes: Crea un agente útil para tu trabajo
  4. 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)

Únete a La Escuela de IA →


¿Tienes dudas sobre cómo crear agentes? Pregunta en La Escuela de IA — te ayudo a diseñar tu agente.

Formación y consultoría en IA para empresas

Formo a equipos técnicos y de negocio para adoptar Claude Code, programación agéntica e IA aplicada con resultados desde la primera semana.

  • Claude Code para developers senior (presencial)
  • IA para perfiles de negocio (presencial)
  • 100% personalizado al stack de tu equipo
  • Sesión de diagnóstico gratuita (30 min)
Ver programas de formaciónjavier.santos@aihackers.es
📬

¿Te ha gustado? Hay más cada semana

Únete a "IA Sin Humo" — la newsletter donde comparto lo que realmente funciona en inteligencia artificial. Sin teoría innecesaria, sin postureo.

📚

1 Tutorial

Paso a paso, práctico

🛠️

3 Herramientas

Probadas y útiles

💡

0 Bullshit

Solo lo que importa

+547 suscriptores • Cada martes • Cancela cuando quieras

Javier Santos - Especialista en IA & Machine Learning

Javier Santos

Consultor de IA para empresas. Comparto contenido sobre inteligencia artificial, automatización y desarrollo cada semana.