Mensajes

Intermedio
LangChain
LangChain
Actualizado: 09/07/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Tipos de mensajes en LangChain

En LangChain, los mensajes son objetos estructurados que representan las diferentes intervenciones en una conversación con un modelo de lenguaje. Cada tipo de mensaje corresponde a un rol específico en el diálogo y permite al framework organizar correctamente el contexto de la conversación.

SystemMessage

El SystemMessage representa las instrucciones del sistema que definen el comportamiento y personalidad del modelo. Este tipo de mensaje corresponde al rol de sistema y típicamente se coloca al inicio de la conversación para establecer el contexto y las reglas de funcionamiento.

from langchain_core.messages import SystemMessage
from langchain_openai import ChatOpenAI

# Crear un mensaje de sistema
system_message = SystemMessage(content="Eres un asistente especializado en programación Python. Responde de forma concisa y técnica.")

# Usar el mensaje con un modelo
model = ChatOpenAI(model="gpt-4")
response = model.invoke([system_message])
print(response.content)

Los mensajes de sistema son especialmente útiles para definir el comportamiento del modelo, establecer restricciones o proporcionar contexto específico sobre la tarea que debe realizar.

HumanMessage

El HumanMessage representa las intervenciones del usuario humano en la conversación. Corresponde al rol de usuario y contiene las preguntas, solicitudes o información que el usuario proporciona al modelo.

from langchain_core.messages import HumanMessage, SystemMessage

# Crear mensajes de sistema y usuario
system_msg = SystemMessage(content="Eres un tutor de matemáticas.")
human_msg = HumanMessage(content="¿Puedes explicarme qué es una derivada?")

# Enviar ambos mensajes al modelo
model = ChatOpenAI(model="gpt-4")
response = model.invoke([system_msg, human_msg])
print(response.content)

Los HumanMessage pueden contener cualquier tipo de consulta o información que el usuario desee comunicar al modelo, desde preguntas simples hasta solicitudes complejas con contexto específico.

Siempre es importante tener un System message para acotar y limitar el comportamiento del modelo ante las preguntas del usuario Human messages:

AIMessage

El AIMessage representa las respuestas generadas por el modelo de inteligencia artificial. Corresponde al rol de asistente y contiene el contenido que el modelo ha generado como respuesta a los mensajes anteriores.

from langchain_core.messages import AIMessage, HumanMessage

# Simular una conversación previa
previous_messages = [
    HumanMessage(content="¿Cuál es la capital de Francia?"),
    AIMessage(content="La capital de Francia es París."),
    HumanMessage(content="¿Y cuál es su población aproximada?")
]

# Continuar la conversación
model = ChatOpenAI(model="gpt-4")
response = model.invoke(previous_messages)
print(response.content)

Los AIMessage son fundamentales para mantener el historial de conversación y permitir que el modelo tenga contexto sobre sus respuestas anteriores en diálogos multi-turno.

AIMessageChunk

El AIMessageChunk es una variante especializada del AIMessage que se utiliza específicamente para respuestas en streaming. Representa fragmentos parciales de la respuesta del modelo que se van recibiendo de forma incremental.

from langchain_core.messages import AIMessageChunk

# Ejemplo de cómo se vería un chunk (normalmente generado internamente)
chunk = AIMessageChunk(content="Hola, ")
print(f"Contenido del chunk: {chunk.content}")
print(f"Tipo de mensaje: {type(chunk).__name__}")

Aunque los AIMessageChunk se utilizan principalmente en el contexto de streaming, es importante entender que representan porciones de una respuesta más amplia que se está generando de forma progresiva.

ToolMessage

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

El ToolMessage representa los resultados de la ejecución de herramientas externas. Corresponde al rol de herramienta y contiene la información devuelta por funciones o APIs que el modelo ha invocado durante su procesamiento.

from langchain_core.messages import ToolMessage, HumanMessage

# Simular el resultado de una herramienta
tool_result = ToolMessage(
    content="La temperatura actual en Madrid es 22°C",
    tool_call_id="call_123"  # ID que vincula con la llamada original
)

# Usar el resultado en una conversación
messages = [
    HumanMessage(content="¿Qué tiempo hace en Madrid?"),
    tool_result
]

model = ChatOpenAI(model="gpt-4")
response = model.invoke(messages)
print(response.content)

Los ToolMessage son esenciales para integrar funcionalidades externas y permitir que el modelo acceda a información en tiempo real o ejecute acciones específicas.

Los mensajes de tipo Tool los exploraremos en el módulo de herramientas.

Combinando diferentes tipos de mensajes

En aplicaciones reales, es común combinar múltiples tipos de mensajes para crear conversaciones ricas y contextualizadas:

from langchain_core.messages import SystemMessage, HumanMessage, AIMessage

# Crear una conversación completa
conversation = [
    SystemMessage(content="Eres un asistente de programación especializado en Python."),
    HumanMessage(content="¿Cómo puedo leer un archivo CSV?"),
    AIMessage(content="Puedes usar la librería pandas con pd.read_csv('archivo.csv')"),
    HumanMessage(content="¿Y si quiero solo las primeras 5 filas?")
]

model = ChatOpenAI(model="gpt-4")
response = model.invoke(conversation)
print(response.content)

Esta estructura permite mantener contexto conversacional completo, donde cada tipo de mensaje cumple su función específica en el flujo de la interacción.

Aprendizajes de esta lección

  • Comprender qué son los mensajes en LangChain y su función en las conversaciones.
  • Identificar y diferenciar los tipos de mensajes: SystemMessage, HumanMessage, AIMessage, AIMessageChunk y ToolMessage.
  • Aprender a crear y utilizar cada tipo de mensaje en interacciones con modelos de lenguaje.
  • Entender cómo combinar distintos tipos de mensajes para mantener el contexto en diálogos multi-turno.
  • Reconocer la importancia de los mensajes para integrar herramientas externas y gestionar respuestas en streaming.

Completa LangChain y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración