LangChain se ha convertido en una de las librerías de referencia para construir aplicaciones sobre modelos de lenguaje que necesitan algo más que una simple pregunta-respuesta: agentes que consultan herramientas, mantienen memoria de la conversación, y encadenan varios pasos de razonamiento. Esto es un primer agente funcional, de verdad, no solo la teoría.
Instalación
pip install langchain langchain-openai python-dotenv
Un agente con una herramienta propia
La pieza central de LangChain es el concepto de tool: una función de Python que el modelo puede decidir invocar cuando lo necesita. Aquí un agente con una herramienta simple de búsqueda:
from langchain.agents import create_react_agent, AgentExecutor
from langchain_openai import ChatOpenAI
from langchain.tools import tool
from langchain import hub
@tool
def buscar_precio(producto: str) -> str:
"""Busca el precio actual de un producto (simulado)."""
precios = {"portatil": "899 EUR", "monitor": "349 EUR"}
return precios.get(producto.lower(), "Producto no encontrado")
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
prompt = hub.pull("hwchase17/react")
tools = [buscar_precio]
agent = create_react_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
resultado = executor.invoke({"input": "¿Cuánto cuesta un monitor?"})
print(resultado["output"])
Cuando se ejecuta, el agente razona internamente que necesita usar buscar_precio, llama a la función con el argumento correcto, y usa el resultado para responder. Ese ciclo de "pensar → actuar → observar" es exactamente lo que distingue a un agente de una simple llamada al modelo.
Añadir memoria de conversación
Sin memoria, cada pregunta es independiente y el agente no recuerda lo que se dijo antes. Para conversaciones de varios turnos:
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
executor = AgentExecutor(agent=agent, tools=tools, memory=memory, verbose=True)
Conectar con fuentes de datos externas
Una herramienta puede envolver cualquier cosa: una llamada a una API, una consulta a base de datos, o una búsqueda en documentos propios (esto último, con LangChain, suele apoyarse en una base de datos vectorial como Chroma o FAISS para encontrar los fragmentos de texto más relevantes antes de pasárselos al modelo).
Errores comunes al empezar
Dar demasiadas herramientas de golpe confunde al agente sobre cuál usar — es mejor empezar con una o dos bien definidas. No limitar el número de pasos que puede dar el agente puede generar bucles costosos en tokens si el modelo no encuentra la respuesta; conviene fijar un max_iterations razonable. Y no validar lo que hace una herramienta antes de ejecutar acciones reales (borrar archivos, hacer pagos) es la forma más rápida de tener un problema serio — para acciones irreversibles, conviene un paso de confirmación humana antes de ejecutar.
Siguiente paso
Con esta base, el patrón se repite para casos más complejos: añadir más herramientas, conectar una base de datos vectorial para responder sobre documentos propios, o encadenar varios agentes especializados que se comunican entre sí. La curva de aprendizaje real de LangChain está en entender bien este ciclo de razonar-actuar-observar, no en memorizar su API.






Comentarios (0)
Deja un comentario
No hay comentarios aún. ¡Sé el primero en comentar!