现在位置: 首页 > LangChain 教程 > 正文

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)

常用用法示例

实例

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,
)