Skip to content
目录

消息系统与多模态支持

对话状态用 BaseMessage 子类 表示,内容可为 纯文本ContentBlock 数组(图、音、文件等)。


1. 消息类型

类型角色
HumanMessage用户
AIMessage模型(含 tool_calls
SystemMessage系统指令
ToolMessage工具执行结果,对应 tool_call_id

顺序通常:System → 多轮 Human/AI/Tool。


2. 多模态 Content

块类型用途
text文本
image_url / image视觉输入
file / audio依厂商与版本

各 ChatModel 声明支持的模态;不支持的需在链前过滤或转换。


3. AIMessage 扩展

  • tool_calls:模型请求调用的工具列表。
  • usage_metadata:token 统计。
  • response_metadata:厂商原始字段。

Agent 循环:AI 带 tool_calls → 执行 Tool → ToolMessage → 再调模型。


4. 序列化

Message 可 toJSON / fromJSON,用于持久化、LangGraph checkpoint。
注意:大文件应存引用而非 base64 塞进 checkpoint。


5. 工具函数(概念)

  • 合并连续同角色消息(部分模型限制)。
  • filterMessages / trimMessages:控上下文长度。
  • 转换旧版 string prompt 为 Message 列表。

6. 合并策略

多段 Human 合并、Tool 结果拼接等,需符合目标模型 API 规则,否则 400。


7. 总结

Message = LLM 应用的「值对象」;多模态 = content 数组 + 厂商能力矩阵,见各 provider 文档。

MIT License.