Skip to content

LangChain Messages API


所有消息类型

类型roletype关键属性说明
HumanMessageuserhumancontent用户消息
AIMessageassistantaicontent, tool_calls, usage_metadataAI 回复
AIMessageChunkassistantaicontent(增量)流式输出的 Token 片段
SystemMessagesystemsystemcontent系统指令
ToolMessagetooltoolcontent, tool_call_id, name工具执行结果
RemoveMessage-removeid删除指定消息

ContentBlock 类型(多模态内容)

类型说明使用场景
PlainTextContentBlock纯文本普通文字
ImageContentBlock图片(base64 或 URL)多模态模型的图片输入
AudioContentBlock音频语音输入
VideoContentBlock视频视频输入
FileContentBlock文件文档输入
ToolCall工具调用请求模型请求调用工具
ServerToolCall服务端工具调用内置/MCP 工具调用

常用辅助函数

函数说明签名
trim_messages()裁剪消息历史以适应上下文窗口trim_messages(messages, *, max_tokens, strategy, token_counter, include_system, start_on)

常用用法示例

实例

python

from langchain.messages import (

    HumanMessage, AIMessage, SystemMessage, ToolMessage, trim_messages

)

# 创建消息

human = HumanMessage(content="你好")

system = SystemMessage(content="你是助手")

ai = AIMessage(content="你好!有什么可以帮你的?")

tool = ToolMessage(content="结果", tool_call_id="call_1", name="my_tool")

# 快捷方式

msg1 = ("user", "你好")          # 元组

msg2 = {"role": "user", "content": "你好"}  # 字典

# 消息属性

print(human.type)   # human

print(human.content)  # 你好

print(ai.tool_calls)  # [] 或 [ToolCall]

# 裁剪消息

trimmed = trim_messages(

    messages, max_tokens=1000, strategy="last",

    token_counter=model, include_system=True,

)

AI 思考中...

LangChain Agent API

LangChain Tools API

基于 VitePress 构建,部署于 GitHub Pages