Skip to content

Messages 消息

Chat Model 通常不是只接收一个字符串,而是接收一组消息。每条消息有角色和内容。

常见角色:

角色说明
system系统指令,定义助手身份和约束
user用户输入
assistant / ai模型回复
tool工具调用结果

示例

python
from langchain_openai import ChatOpenAI
from langchain_core.messages import SystemMessage, HumanMessage

llm = ChatOpenAI(model="gpt-4.1-mini")

messages = [
    SystemMessage(content="你是一个资深 Java 后端面试官"),
    HumanMessage(content="请解释 Kafka 分区和消费者组的关系")
]

resp = llm.invoke(messages)
print(resp.content)

为什么要区分角色

因为模型需要知道哪些内容是系统约束,哪些是用户问题,哪些是历史回答,哪些是工具返回结果。对于 Agent 来说,消息历史就是它继续推理的上下文。

常见坑

  • 不要把用户输入拼到 system prompt 里,避免 Prompt Injection 风险。
  • 历史消息太长会消耗大量 token,需要裁剪、摘要或外部记忆。
  • 工具结果要尽量结构化,避免模型误读。

非官方声明

本站为个人维护的非官方中文学习文档,不代表 LangChain 官方。页面内容是基于公开文档、源码实践和中文开发者视角重新整理的学习资料。涉及 API 细节时,请以官方文档和实际安装版本为准。

参考来源

  • LangChain / LangGraph 官方文档:https://docs.langchain.com/
  • LangChain API Reference:https://reference.langchain.com/
  • 本站内容为中文学习整理,不做官方身份声明。

本站为非官方中文学习站点,不代表 LangChain 官方。部分内容参考官方文档并重新整理为中文学习笔记。