Agentes de IAFundamentos de AgentesLección 3 de 7
Agentes con LangChain
LangChain es el framework mas popular para construir agentes. Abstrae el loop que hicimos manualmente y agrega features como memoria, cadenas complejas y muchas integraciones pre-hechas.
Instala: pip install langchain langchain-openai langchain-community
Ventajas de LangChain: • 100+ integraciones pre-hechas (Google, Wikipedia, bases de datos, APIs) • Memoria persistente incluida • Cadenas: conecta multiples pasos de LLM • Agents con planificacion automatica • Callbacks para logging y debugging
Desventajas: • Abstraccion pesada (a veces oculta lo que pasa) • Cambios frecuentes de API (breaking changes) • Debugging complejo cuando algo falla
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.tools import tool
@tool
def calculator(expression: str) -> str:
"""Calcula una expresion matematica. Ejemplo: calculator("15 * 3")"""
try:
return str(eval(expression))
except:
return "Error en la expresion"
@tool
def search_db(query: str) -> str:
"""Busca informacion de productos en la base de datos"""
products = {
"laptop": {"precio": 999, "stock": 15},
"mouse": {"precio": 29, "stock": 200},
"monitor": {"precio": 450, "stock": 8},
}
q = query.lower()
for name, info in products.items():
if name in q:
return f"{name}: ${info['precio']}, stock: {info['stock']}"
return "Producto no encontrado"
llm = ChatOpenAI(model="gpt-4o-mini")
tools = [calculator, search_db]
prompt = ChatPromptTemplate.from_messages([
("system", "Eres un asistente de tienda. Ayudas con precios y stock."),
("human", "{input}"),
("placeholder", "{agent_scratchpad}"),
])
agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# El agente usa las herramientas automaticamente
result = executor.invoke({"input": "Cuanto cuestan 3 laptops?"})
print(result["output"])
# Usa calculator(999*3) y responde: "$2,997"
ConsejoEl decorador @tool convierte cualquier funcion Python en una herramienta de LangChain. El docstring es lo que el LLM lee para decidir cuando usarla — hazlo claro y especifico.
Practica esta lección
Resuelve los ejercicios del curso de Agentes de IA en la app, gratis y con corrección automática.
Empezar a practicar