多轮对话中让AI保持长期记忆的8种优化方式篇
一、前言
在基于大模型的 Agent 中,长期记忆的状态维护至关重要,在 OpenAI AI 应用研究主管 Lilian Weng 的博客《基于大模型的 Agent 构成》[1]中,将记忆视为关键的组件之一,下面我将结合 LangChain 中的代码,8 种不同的记忆维护方式在不同场景中的应用。
二、Agent 如何获取上下文对话信息?
2.1 获取全量历史对话
以一般客服场景为例:
在电信公司的客服聊天机器人场景中,如果用户在对话中先是询问了账单问题,接着又谈到了网络连接问题,ConversationBufferMemory
可以用来记住整个与用户的对话历史,可以帮助 AI 在回答网络问题时还记得账单问题的相关细节,从而提供更连贯的服务。
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
memory.save_context({"input": "你好"}, {"output": "怎么了"})
variables = memory.load_memory_variables({})
2.2 滑动窗口获取最近部分对话内容
以商品咨询场景为例:
在一个电商平台上,如果用户询问关于特定产品的问题(如手机的电池续航时间),然后又问到了配送方式