聊天记录
聊天记录是用户和聊天模型之间对话的记录。它用于在整个对话中维护上下文和状态。聊天记录是 messages 的序列,每个消息都与特定的 role 相关联,例如“user”、“assistant”、“system”或“tool”。
对话模式

大多数对话都以 系统消息 开始,该消息设置对话的上下文。接着是包含用户输入的 用户消息,然后是包含模型响应的 助手消息。
助手 可以直接响应用户,或者如果配置了工具,则请求调用 tool 来执行特定任务。
完整的对话通常涉及两种交替消息模式的组合:
- user 和 assistant 代表来回的对话。
- assistant 和 tool messages 代表 "agentic" workflow 的模式,其中助手调用工具来执行特定任务。
管理聊天记录
由于聊天模型对输入大小有最大限制,因此管理聊天记录并根据需要进行修剪以避免超出 context window 非常重要。
在处理聊天记录时,必须保留正确的对话结构。
管理聊天记录的关键指南:
- 对话应遵循以下结构之一:
- 第一条消息是“user”消息或“system”消息,后面跟着一条“user”消息,然后是一条“assistant”消息。
- 最后一条消息应该是“user”消息或包含工具调用结果的“tool”消息。
- 使用 tool calling 时,“tool”消息应仅跟在请求调用该工具的“assistant”消息之后。
tip
理解正确的对话结构对于正确实现聊天模型的 memory 至关重要。
相关资源
- How to trim messages
- Memory guide 关于使用 LangGraph 在聊天模型中实现短期和长期内存的信息。