Ir al contenido principal

Introducción al prompt engineering con LangChain

Descubre el potencial del prompt engineering en LangChain, una técnica esencial para obtener respuestas precisas y relevantes de los modelos de IA.
Actualizado 17 sept 2026  · 11 min leer

Explorar con IA

ChatGPTClaudePerplexity

LangChain es un framework de código abierto pensado para crear aplicaciones fácilmente con modelos de lenguaje como GPT, LLaMA, Mistral, etc.

Una de sus funciones más potentes es el soporte para prompt engineering avanzado. El prompt engineering consiste en diseñar y optimizar prompts para obtener de un modelo de lenguaje respuestas lo más precisas y útiles posible.

En este post, veremos los fundamentos de los prompts, cómo los utiliza LangChain, los prompt templates, la memoria, los agentes y las cadenas. Para cada concepto clave, revisaremos varios ejemplos de código en Python para que, al terminar, te sientas cómodo creando tus propias aplicaciones con el framework LangChain en Python.

¿Tienes curiosidad por saber cómo usar LangChain y GPT para crear un agente de IA sencillo? Échale un vistazo a nuestro Prompt Engineering with GPT & LangChain AI Code-Along:

¿Qué es el prompt engineering?

Imagen del autor

Tenemos una guía completa sobre prompt engineering, pero como recordatorio rápido, es la práctica de crear entradas de texto que se comuniquen de forma eficaz con modelos de IA generativa. Estos prompts, escritos en lenguaje natural, especifican la tarea que queremos que la IA realice.

Pueden adoptar muchas formas, desde preguntas sencillas —como pedir la explicación de un teorema matemático— hasta peticiones más creativas, como escribir un poema sobre un tema concreto.

En prompt engineering, lo clave no es solo qué preguntas, sino cómo lo preguntas. Esto puede incluir elegir las palabras adecuadas, definir un tono o estilo concreto, aportar el contexto necesario o incluso asignar un rol a la IA, como pedirle que responda como si fuera una persona nativa de cierto idioma.

En algunos casos, los prompts también pueden incluir ejemplos para guiar el proceso de aprendizaje de la IA. Esta técnica, conocida como few-shot learning, puede resultar especialmente eficaz en tareas complejas.

Cuando trabajamos con modelos que generan imágenes o audio, los prompts suelen describir con detalle el resultado deseado: desde el sujeto y el estilo, hasta la composición y la atmósfera del producto final. El arte del prompt engineering consiste en ajustar estos elementos para orientar a la IA hacia el resultado que buscamos.

Fundamentos de los prompts

Imagen del autor

Los prompts son las entradas que se proporcionan a los modelos de lenguaje grandes (LLMs) para obtener una respuesta deseada. Un buen diseño de prompt es crucial para conseguir salidas útiles de los LLMs. El objetivo del prompt engineering es construir cuidadosamente prompts que generen respuestas precisas, relevantes y útiles.

Un buen prompt suele incluir estos cuatro componentes:

  1. Instrucciones: indican al modelo qué hacer, cómo usar la información proporcionada, qué hacer con la consulta y cómo estructurar la salida.
  2. Ejemplo de entrada: aporta entradas de muestra para mostrar al modelo qué se espera.
  3. Ejemplo de salida: ofrece las salidas correspondientes de ejemplo.
  4. Consulta: la entrada real que quieres que procese el modelo.

Salvo la consulta, todo lo demás es opcional, pero puede influir mucho en la calidad de la respuesta, especialmente las instrucciones, que orientan al LLM sobre la tarea y la respuesta esperada.

Los ejemplos muestran el formato de salida deseado para un ejemplo de entrada dado.

La consulta es la pregunta o petición que se hace al LLM.

Construir prompts eficaces implica combinar de forma creativa estos elementos según el problema que se quiera resolver.

Prompts en LangChain

LangChain ofrece distintas clases y funciones para ayudarte a construir y trabajar con prompts, lo que facilita la gestión de tareas complejas con modelos de lenguaje.

LangChain incorpora soporte nativo para prompt engineering a través del objeto PromptTemplate.

Los prompt templates actúan como guías estructuradas para formular consultas a los modelos de lenguaje.

Estos templates suelen incluir directrices, una selección de entradas de ejemplo (few-shot) y preguntas y contextos adaptados a tareas específicas.

El objetivo de LangChain es diseñar templates compatibles con varios modelos de lenguaje, facilitando así su reutilización entre modelos distintos.

En pocas palabras, puedes usar la clase PromptTemplate para crear una plantilla de prompt en forma de cadena.

from langchain.prompts import PromptTemplate


prompt_template = PromptTemplate.from_template(
    "Tell me a {adjective} joke about {content}."
)
prompt_template.format(adjective="sad", content="data scientists")

Salida:

>>> 'Tell me a sad joke about data scientists.'

No es necesario incluir variables. Puedes crear un prompt con esta clase aunque no tengas ninguna variable.

from langchain.prompts import PromptTemplate
prompt_template = PromptTemplate.from_template("Tell me a joke")
prompt_template.format()

Salida:

>>> 'Tell me a joke'

¿Y si estás construyendo una aplicación de chat en la que necesitas guardar y enviar el historial de mensajes al LLM cada vez que el usuario envía uno nuevo? Hacerlo manualmente lleva tiempo.

Para los modelos de chat compatibles, puedes usar ChatPromptTemplate:

from langchain.prompts import ChatPromptTemplate


chat_template = ChatPromptTemplate.from_messages(
    [
        ("system", "You are a helpful AI bot. Your name is {name}."),
        ("human", "Hello, how are you doing?"),
        ("ai", "I'm doing well, thanks!"),
        ("human", "{user_input}"),
    ]
)


messages = chat_template.format_messages(name="Bob", user_input="What is your name?")


print(messages)

Salida:

>>> [SystemMessage(content='You are a helpful AI bot. Your name is Bob.'),

>>> HumanMessage(content='Hello, how are you doing?'),

>>> AIMessage(content="I'm doing well, thanks!"),

>>> HumanMessage(content='What is your name?')]

Entonces, ¿por qué necesitamos PromptTemplates? ¿Por qué no pasar directamente una cadena con el prompt al LLM? Estas son buenas razones para usar PromptTemplate de LangChain:

  • Los prompt templates son reutilizables: creas un prompt una vez y lo usas en múltiples situaciones, por ejemplo para resumir distintos artículos sin reescribirlo cada vez.
  • Separan el formateo del prompt de la invocación del modelo, haciendo el código más modular y permitiendo actualizar de forma independiente la plantilla o el modelo.
  • Usar templates mejora la legibilidad del código, ya que encapsulan lógica compleja en un formato más simple con variables nombradas y claras.
  • El mantenimiento es más sencillo: los cambios en la lógica del prompt se hacen en un único lugar central en lugar de en cada prompt individual.

Memoria en LangChain

En aplicaciones de chat con modelos de lenguaje, es importante que el sistema recuerde conversaciones pasadas.

Igual que en una charla normal, el sistema debería poder revisar lo que se dijo antes.

En su forma más simple, esto significa que el sistema ve algunos de los mensajes anteriores. Pero un sistema más avanzado recordará más detalles, como hechos sobre distintos temas y cómo se relacionan.

A esta capacidad de recordar conversaciones previas la llamamos "memoria". LangChain facilita añadir memoria a estos sistemas de chat.

Una memoria en LangChain hace dos cosas principales:

  1. Antes de enviar la consulta al LLM, lee su memoria para enriquecer el prompt inicial recibido del usuario.
  2. Cuando el LLM devuelve la respuesta, la escribe en memoria para interacciones futuras, antes de devolver el resultado final al usuario.

Memoria en LangChain (fuente de la imagen)

Para usar la función Memory en LangChain puedes recurrir a la clase ConversationBufferMemory.

from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(return_messages=True)
memory.chat_memory.add_user_message("hi!")
memory.chat_memory.add_ai_message("what's up?")
memory.chat_memory.add_user_message("how are you doing?")
memory.chat_memory.add_ai_message("I am fine, thank you and you?")


# to check the variables history
memory.load_memory_variables({})

Salida:

>>> {'history': [HumanMessage(content='hi!'),

>>> AIMessage(content="what's up?"),

>>> HumanMessage(content='how are you doing?'),

>>> AIMessage(content='I am fine, thank you and you?')]}

Devuelve un diccionario donde la clave por defecto es history. Esta clave apunta a una lista de mensajes, que pueden ser de una persona (HumanMessage) o del LLM (AIMessage).

Cadenas en LangChain

Para tareas sencillas, usar un único LLM (Large Language Model) funciona bien. Sin embargo, las tareas más complejas suelen requerir encadenar varios pasos y/o modelos.

La forma heredada de usar Chains en LangChain es a través de la interfaz Chain.

El método más reciente y recomendado es LangChain Expression Language (LCEL). Aunque LCEL es preferible para proyectos nuevos, el método con Chain sigue siendo útil y está soportado.

from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema import StrOutputParser


model = ChatOpenAI(openai_api_key = “...”)


prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "You're a expert data scientist and machine learning engineer who offer its expertise and responds to the point and accurately.",
        ),
        ("human", "{question}"),
    ]
)
runnable = prompt | model | StrOutputParser()


for chunk in runnable.stream({"question": "How is machine learning different than deep learning?"}):
    print(chunk, end="", flush=True)

Salida:

>>> Machine learning and deep learning are subfields of artificial intelligence (AI) that involve training models to make predictions or decisions based on data. While there is an overlap between the two, they ……..

La forma en que se crea runnable no es la más habitual en Python, pero ese | es un operador pipe. Prompt | model | StrOutputParser() significa que el Prompt se pasa por el model y la salida de este se pasa después por StrOutputParser(). Cada segmento de la cadena transforma los datos de alguna manera.

¿Quieres conocer más casos de uso y aplicaciones interesantes que se pueden construir con LangChain? Revisa nuestro tutorial sobre casos de uso de ingeniería y aplicaciones de datos.

Agentes en LangChain

La idea fundamental de los agentes consiste en utilizar un modelo de lenguaje para seleccionar una secuencia de acciones.

A diferencia de las cadenas, donde la secuencia de acciones está predefinida en el código, los agentes emplean un modelo de lenguaje como herramienta de decisión para identificar qué acciones ejecutar y en qué orden.

En los Agents de LangChain hay tres conceptos clave:

  1. Herramientas: descripciones de las herramientas disponibles para el LLM
  2. Entrada del usuario: el objetivo general de la tarea
  3. Pasos intermedios: cualquier par (acción, salida de la herramienta) ejecutado previamente para alcanzar el objetivo del usuario

Las herramientas representan funcionalidades que un agente puede activar. Dos aspectos cruciales en su diseño son:

  • Asegurar que el agente tenga acceso a las herramientas adecuadas.
  • Definir las herramientas de forma que resulten lo más útiles posible para el agente.

Para distintas actividades rutinarias, un agente necesita un conjunto de herramientas interconectadas. Para ello, LangChain introduce el concepto de toolkits. LangChain ofrece una amplia gama de toolkits para empezar.

Para saber más sobre Agents, consulta esta guía oficial de LangChain.

Créditos: algunos ejemplos de este blog se han generado usando la documentación oficial de LangChain.

Conclusión

Al ofrecer un enfoque estructurado para diseñar prompts, LangChain no solo simplifica la interacción con distintos modelos de lenguaje, sino que también maximiza la eficiencia y la relevancia de sus salidas. Funciones como PromptTemplate y Memory demuestran una integración cuidada de flexibilidad y precisión en el prompt engineering, válida para un amplio abanico de tareas, desde consultas simples hasta contextos conversacionales complejos.

Las funciones avanzadas de Chains y Agents amplían el potencial de las aplicaciones que se pueden construir con LangChain en apenas unas líneas de código con cualquier LLM subyacente, y hay muchos entre los que elegir.

Tanto para tareas sencillas como para aplicaciones complejas, el enfoque de LangChain para el prompt engineering es bastante simple, claro y fácil de adoptar.

¿Quieres aprender más? Consulta la parte 1 de How to Build LLM Applications with LangChain en DataCamp.


Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

Científico de Datos, Fundador y Creador de PyCaret

Temas
Inteligencia Artificial

Aprende más sobre los LLMs

Curso

Conceptos de grandes modelos lingüísticos (LLM)

2 h
109.8K
Descubre todo el potencial de los LLM: aplicaciones, metodologías de entrenamiento, consideraciones éticas y avances en investigación.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

blog

¿Qué es el prompt engineering? Guía detallada para 2026

Explora el mundo del prompt engineering con esta guía esencial. Entiende su importancia en la IA, el papel del prompt engineer y sus perspectivas de futuro.
Matt Crabtree's photo

Matt Crabtree

15 min

blog

Las 15 habilidades esenciales de un ingeniero de IA que necesitas conocer en 2026

Las habilidades de ingeniería de IA están en auge. Descubre en esta guía completa cuáles son las competencias clave que necesitas.
Austin Chia's photo

Austin Chia

10 min

Tutorial

Tutorial sobre cómo crear aplicaciones LLM con LangChain

Explore el potencial sin explotar de los grandes modelos lingüísticos con LangChain, un marco Python de código abierto para crear aplicaciones avanzadas de IA.
Moez Ali's photo

Moez Ali

12 min

Tutorial

Guía para principiantes sobre la ingeniería de avisos ChatGPT

Descubra cómo conseguir que ChatGPT le proporcione los resultados que desea dándole las entradas que necesita.
Matt Crabtree's photo

Matt Crabtree

6 min

Tutorial

Construir agentes LangChain para automatizar tareas en Python

Un tutorial completo sobre la construcción de agentes LangChain multiherramienta para automatizar tareas en Python utilizando LLMs y modelos de chat utilizando OpenAI.

Tutorial

Guía introductoria para el ajuste preciso de los LLM

El ajuste preciso de los grandes modelos lingüísticos (LLM) ha revolucionado el procesamiento del lenguaje natural (PLN) y ofrece capacidades sin precedentes en tareas como la traducción lingüística, el análisis del sentimiento y la generación de textos. Este enfoque transformador aprovecha modelos preentrenados como el GPT-2 y mejora su rendimiento en dominios específicos mediante el proceso de ajuste preciso.
Josep Ferrer's photo

Josep Ferrer

11 min

Ver MásVer Más