LangChain Messages API


Todos los tipos de mensajes

TiporoletypeAtributos claveDescripción
HumanMessageuserhumancontentMensaje de usuario
AIMessageassistantaicontent, tool_calls, usage_metadataRespuesta de IA
AIMessageChunkassistantaicontent (incremental)Fragmentos de token de salida en streaming
SystemMessagesystemsystemcontentInstrucción del sistema
ToolMessagetooltoolcontent, tool_call_id, nameResultado de la ejecución de la herramienta
RemoveMessage-removeidEliminar mensaje específico

Tipos de ContentBlock (contenido multimodal)

TipoDescripciónCaso de uso
PlainTextContentBlockTexto planoTexto normal
ImageContentBlockImagen (base64 o URL)Entrada de imagen para modelos multimodales
AudioContentBlockAudioEntrada de voz
VideoContentBlockVideoEntrada de video
FileContentBlockArchivoEntrada de documento
ToolCallSolicitud de llamada a herramientaEl modelo solicita invocar una herramienta
ServerToolCallLlamada a herramienta del lado del servidorLlamada a herramienta integrada/MCP

Funciones auxiliares comunes

FunciónDescripciónFirma
trim_messages()Recortar el historial de mensajes para adaptarse a la ventana de contextotrim_messages(messages, *, max_tokens, strategy, token_counter, include_system, start_on)

Ejemplos de uso comunes

Ejemplo

from langchain.messages import (
    HumanMessage, AIMessage, SystemMessage, ToolMessage, trim_messages
)

# Crear mensaje
human = HumanMessage(content="Hola")
system = SystemMessage(content="Eres un asistente")
ai = AIMessage(content="¡Hola! ¿En qué puedo ayudarte?")
tool = ToolMessage(content="Resultado", tool_call_id="call_1", name="my_tool")

# Atajo
msg1 = ("user", "Hola")          # Tupla
msg2 = {"role": "user", "content": "Hola"}  # Diccionario

# Atributos del mensaje
print(human.type)   # human
print(human.content)  # Hola
print(ai.tool_calls)  # [] o [ToolCall]

# Recortar mensajes
trimmed = trim_messages(
    messages, max_tokens=1000, strategy="last",
    token_counter=model, include_system=True,
)
Otras extensiones