1. 什么是LangChain短期记忆?
在构建AI智能体时,短期记忆(Short-term memory)是让对话系统保持上下文连贯性的关键技术。LangChain框架中的短期记忆模块专门用于管理单次会话或单线程内的交互历史,使AI能够记住当前对话中的关键信息。
提示:短期记忆不同于长期记忆(Long-term memory),它不会持久化存储数据,仅在当前会话有效。这种设计既保护了用户隐私,又满足了会话连贯性的需求。
我最近在开发客服机器人项目时,发现没有配置短期记忆的AI智能体会反复询问相同问题。比如用户说"我想订周五的机票",下一页又问"您要订哪天的?"。这种体验非常糟糕,而LangChain的短期记忆功能完美解决了这个问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心配置与实现原理
2.1 基础配置方法
LangChain提供了多种短期记忆实现,最常用的是ConversationBufferMemory。配置一个基础版只需要几行代码:
python复制from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(
memory_key="chat_history", # 存储在prompt中的变量名
return_messages=True # 以消息对象格式返回
)
实测发现,memory_key的命名直接影响后续模板中的调用方式。我建议使用有明确语义的名称,比如"customer_service_history"或"tech_support_dialog"。
2.2 底层工作机制
短期记忆的核心是维护一个对话缓冲区。当使用链(Chain)时,系统会自动:
- 将用户输入和AI响应打包为Message对象
- 按时间顺序存入内存缓冲区
- 在下轮对话时将历史记录注入prompt模板
这个过程中有3个关键参数需要关注:
| 参数 | 默认值 | 建议设置 | 作用 |
|---|---|---|---|
| max_token_limit | None | 2000 | 控制内存占用 |
| input_key | None | "input" |
