A Message in LangChain is a structured object that represents a unit of conversation between a user, an AI model, or a tool, while a plain string prompt is unstructured and lacks the role and metadata needed for multi-turn, multi-actor conversations [citation:6].
A Message in LangChain is a structured object that goes far beyond a simple text string. It encapsulates not only the content but also the role of the speaker (e.g., user, AI, system), and can carry additional metadata such as tool call requests, unique identifiers, and response metadata. A plain string prompt is just that—raw text. It has no inherent structure for role assignment or system instructions. Messages are the fundamental unit of communication in LangChain, enabling it to manage complex, multi-turn conversations where the LLM must distinguish between user input, its own previous responses, system directives, and the results of tool executions [citation:1][citation:6].
Unlike a plain string, a LangChain Message is designed to be serializable, streamable, and compatible across different LLM providers. This structured format is what allows frameworks like LangGraph to manage conversation history, handle tool calling, and persist state across sessions [citation:5][citation:6].