LangChain Reference home pageLangChain ReferenceLangChain Reference
  • GitHub
  • Main Docs
Deep Agents
LangChain
LangGraph
Integrations
LangSmith
LangChain
  • Browser
  • Universal
  • Hub
  • Node
  • Load
  • Serializable
  • Encoder Backed
  • File System
  • In Memory
  • Tools
LangChain Core
  • Agents
  • Caches
  • Base
  • Dispatch
  • Web
  • Manager
  • Promises
  • Chat History
  • Context
  • Base
  • Langsmith
  • Documents
  • Embeddings
  • Errors
  • Example Selectors
  • Indexing
  • Base
  • Chat Models
  • Compat
  • Event
  • Llms
  • Openai Completions Stream
  • Profile
  • Stream
  • Structured Output
  • Load
  • Serializable
  • Memory
  • Messages
  • Tool
  • Output Parsers
  • Openai Functions
  • Openai Tools
  • Outputs
  • Prompt Values
  • Prompts
  • Retrievers
  • Document Compressors
  • Runnables
  • Graph
  • Singletons
  • Stores
  • Structured Query
  • Testing
  • Tools
  • Base
  • Console
  • Log Stream
  • Run Collector
  • Tracer Langchain
  • Stream
  • Async Caller
  • Chunk Array
  • Context
  • Env
  • Event Source Parse
  • Format
  • Function Calling
  • Gateway
  • Hash
  • Json Patch
  • Json Schema
  • Math
  • Ssrf
  • Standard Schema
  • Stream
  • Testing
  • Tiktoken
  • Types
  • Uuid
  • Vectorstores
Text Splitters
MCP Adapters
⌘I

LangChain Assistant

Ask a question to get started

Enter to send•Shift+Enter new line

Menu

LangChain
BrowserUniversalHubNodeLoadSerializableEncoder BackedFile SystemIn MemoryTools
LangChain Core
AgentsCachesBaseDispatchWebManagerPromisesChat HistoryContextBaseLangsmithDocumentsEmbeddingsErrorsExample SelectorsIndexingBaseChat ModelsCompatEventLlmsOpenai Completions StreamProfileStreamStructured OutputLoadSerializableMemoryMessagesToolOutput ParsersOpenai FunctionsOpenai ToolsOutputsPrompt ValuesPromptsRetrieversDocument CompressorsRunnablesGraphSingletonsStoresStructured QueryTestingToolsBaseConsoleLog StreamRun CollectorTracer LangchainStreamAsync CallerChunk ArrayContextEnvEvent Source ParseFormatFunction CallingGatewayHashJson PatchJson SchemaMathSsrfStandard SchemaStreamTestingTiktokenTypesUuidVectorstores
Text Splitters
MCP Adapters
Language
Theme
JavaScript@langchain/coremessagesChatMessage
Class●Since v0.3

ChatMessage

Represents a chat message in a conversation.

Copy
class ChatMessage

Bases

BaseMessage<TStructure, "generic">

Constructors

constructor
constructor→ ChatMessage<TStructure>

Properties

property
content: TStructure["outputVersion"] extends "v1" ? $InferMessageContentBlocks<TStructure, "generic">[] : string | ContentBlock | Text[]

Array of content blocks that make up the message content

property
id: string

Unique identifier for this message

property
lc_kwargs: SerializedFields
property
lc_namespace: string[]

A path to the module that contains the class, eg. ["langchain", "llms"] Usually should be the same as the entrypoint the class is exported from.

property
lc_serializable: boolean
property
name: string

An optional name for the message participant.

This property is primarily used to:

  1. Identify agent roles in multi-agent systems: When multiple agents collaborate, setting name helps distinguish which agent produced a message, preventing confusion about who said what.

  2. Pass participant names to model providers: Some providers (notably OpenAI, e.g. see OpenAI Chat Completions API) use this field to differentiate between participants with the same role. For example, when using OpenAI's Chat Completions API, the name is included in the message payload sent to the model.

Copy
// Setting name on an AIMessage to identify the agent
const message = new AIMessage({
  content: "I'll handle the calendar scheduling.",
  name: "calendar_agent"
});

// In a multi-agent system, this helps track message origins
const researcherMessage = new AIMessage({
  content: "Here are the findings...",
  name: "researcher"
});
const writerMessage = new AIMessage({
  content: "I've drafted the report.",
  name: "writer"
});
property
response_metadata: NonNullable<BaseMessageFields<TStructure, TRole>["response_metadata"]>

Metadata about the message

property
role: string
property
type: "generic"

The message type/role

property
_printableFields: Record<string, unknown>
property
[toStringTag]: any
property
contentBlocks: Standard[]
property
lc_aliases: Record<string, string>
property
lc_attributes: SerializedFields | undefined
property
lc_id: string[]
property
lc_secrets: __type | undefined
property
lc_serializable_keys: string[] | undefined
property
text: string
deprecatedproperty
additional_kwargs: __type

Methods

method
_updateId
method
toDict→ StoredMessage
method
toFormattedString→ string
method
toJSON→ Serialized
method
toJSONNotImplemented→ SerializedNotImplemented
method
_chatMessageClass→ typeof ChatMessage
method
[hasInstance]→ obj is ChatMessage<MessageStructure<MessageToolSet>>
method
isInstance→ obj is ChatMessage<MessageStructure<MessageToolSet>>
method
lc_name→ string

The name of the serializable. Override to provide an alias or to preserve the serialized module name in minified environments.

Implemented as a static method to support loading logic.

deprecatedmethod
_getType→ MessageType
deprecatedmethod
getType→ MessageType

Inherited fromBaseMessage

Properties

Padditional_kwargs: __typePcontent: $InferMessageContent<TStructure, TRole>
—

Array of content blocks that make up the message content

Pid: string
—

Unique identifier for this message

Plc_kwargs: SerializedFieldsPlc_namespace: string[]
—

A path to the module that contains the class, eg. ["langchain", "llms"]

Plc_serializable: booleanPname: string
—

An optional name for the message participant.

Presponse_metadata: NonNullable<BaseMessageFields<TStructure, TRole>["response_metadata"]>
—

Metadata about the message

Ptype: TRole
—

The message type/role

P_printableFields: Record<string, unknown>PcontentBlocks: Standard[]Plc_aliases: Record<string, string>Plc_attributes: SerializedFields | undefinedPlc_id: string[]Plc_secrets: __type | undefinedPlc_serializable_keys: string[] | undefinedPtext: string

Methods

M_getType→ MessageTypeM_updateIdMgetType→ MessageTypeMtoDict→ StoredMessageMtoFormattedString→ stringMtoJSON→ SerializedMtoJSONNotImplemented→ SerializedNotImplementedMisInstance→ obj is BaseMessage<MessageStructure<MessageToolSet>, MessageType>Mlc_name→ string
—

The name of the serializable. Override to provide an alias or

Inherited fromSerializable

Properties

Plc_kwargs: SerializedFieldsPlc_namespace: string[]
—

A path to the module that contains the class, eg. ["langchain", "llms"]

Plc_serializable: booleanPlc_aliases: __type | undefinedPlc_attributes: SerializedFields | undefinedPlc_id: string[]Plc_secrets: __type | undefinedPlc_serializable_keys: string[] | undefined

Methods

MtoJSON→ SerializedMtoJSONNotImplemented→ SerializedNotImplementedMlc_name→ string
—

The name of the serializable. Override to provide an alias or

View source on GitHub