小智伴的记忆逻辑实施:认识Agent的短期记忆和长期记忆

121 阅读6分钟

小智伴的记忆逻辑实施:认识Agent的短期记忆和长期记忆

导语

在上一篇文章中,我们介绍了大模型的规划逻辑如何应用于现实业务场景,重点讲解了两种核心推理策略:ReActPlan-and-Execute。前者通过“思考-行动-再思考”的循环;后者则是在行动前制定完整的计划,再按照既定的步骤执行。【AI大模型教程】

     本文我们将聚焦于大模型中的记忆机制,让我们的agent,像我们的大脑一样,能记得过去理解当下决策未来。一个具备记忆能力的智能体,能在面对问题时,从历史交互或外部知识中提取关键信息,通过“短期记忆”保持上下文连贯,通过“长期记忆”积累经验知识,从而更好的进行概率推理。

思考?

  1. 大模型中的记忆机制是什么?
  2. 短期记忆与长期记忆对比?
  3. 记忆机制如何选择?
  4. 小智伴如何利用记忆机制

认识记忆机制

记忆是一种记录****之前互动信息的一种媒介。对于人工智能来说,记忆至关重要,因为它可以让他们记住以前的互动,从反馈中学习,并适应用户的偏好。

      随着用户问答频次的增多,系统交互的任务会更加复杂,给提升大模型识别用户意图提供多维度的信息补充,这种能力对提升用户办公效率用户回复结果满意度都至关重要。

短期记忆与长期记忆

记忆分短期记忆长期记忆

短期记忆

让Agent记住当前会话内单个线程或对话中一问一答的互动信息。长时间的对话记忆,对于大模型来说,是非常有挑战的。

**其一:**模型不能支持很长的长上下文信息进行问答。我们都知道,像openai、deepseek、千问等都有token数的限制,超过大模型就会报错。

其二:大多数模型在长上下文中仍然表现不佳。他们被陈旧偏离主题的内容“分散了注意力”,同时响应时间较慢,成本更高。

       在Agent中短期记忆的存储形式包括:内存存储redis存储。启用短期记忆后,长时间对话可以超过模型的上下文窗口。常见的解决方案是:

**1.修剪信息:**设置边界数量,当超过时,裁剪掉旧的数据。

**2.总结信息:**对于修剪信息,可能会把重要信息修剪掉,因此,我们可以通过总结历史记录,来规避重要信息遗漏,而且还可以祛魅,保留有价值的信息。

**3.自定义策略:**根据自己的业务场景,对于历史信息,做定制化处理,在垂直领域,业务执行对应的策略,调整方便,更能体现短期记忆的价值。

长期记忆

让Agent在不同任务、不同会话之间仍能积累经验、保持风格一致的关键。长期记忆多用于在用户画像商品标签经验总结等方面。

      在Agent中长期记忆的存储形式包括:**向量数据库、****知识图谱、**结构化数据库。长期对话,由于保存时间久,不存在删除的操作,但是内容多,还是会带来一定的影响。所以也需要做一些优化:

1.**定期迁移:**将短期记忆中高价值信息“固化”到长期记忆

**2.生成摘要:**适当的为每次对话生成摘要,体现回答大意,缩减token数

3.**偏好模型:**定期训练用户或项目级的“偏好模型”

记忆机制选择策略

记忆系统的选择并没有固定答案,它取决于三个维度:场景复杂度交互频率与知识相关性

01

即时任务型

场景举例:

       像短时注意力系统,处理完任务就“清空脑袋”,重新聚焦下一个目标。例如:智能问答代码生成一次性报告分析任务型对话

特点:

1.只需保留当前会话的上下文

2.轻量、速度快

3.不做历史沉淀

02

连续交互型

场景举例:

      像人类长期的“工作记忆”,能记得最近几次会议内容,但不会背整个公司档案。例如:项目管理助手客户服务机器人个人知识问答

特点:

1.Agent可记得最近几次对话

2.能检索历史相似问题,提升连贯性

3.可针对用户习惯逐步“学习”

03

知识驱动型

场景举例:

       像“经验丰富的老员工”,既能即时反应,又能从历史中提炼规律。例如:企业知识问答系统行业专家智能体内部知识管理平台。故此需要短期记忆+长期记忆结合。

特点:

1.将文档、FAQ、知识图谱等内容进行语义存储;

2.Agent可长期“学习”新知识;

3.具备短期自我反思与自我优化能力。

记忆机制的选择,就像是为Agent打造不同的**“脑型”**:

任务导向型 → 快思考型大脑

交互导向型 → 连贯型大脑

知识导向型 → 学习型大脑

      真正的智慧,不是装更多的记忆,而是知道何时记何时忘何时学

小智伴应用

当前的小智伴系统采用的是短期记忆+长期记忆,每10轮对话截取一次内容,超过10轮的超过的部分进行总结存储在es数据库,内存清理掉老的对话。

memory = InMemorySaver()
graph = workflow.compile(checkpointer=memory)

针对记忆的代码,过于零散分布,而且此部分代码量少。未来小智伴,会引入Reflection Loop机制。Memory负责存,Reflection负责学。当Agent执行完一项任务后,它会:

1.回顾自己做了什么;

2.评估哪些回答效果好

3.将经验写入长期记忆

    通过这样一个循环的流程,它能做到自我优化,更新关键信息,使得小智伴在聊天式回答上更优秀。

总结

记忆不在于代码的实现,重要的是,你要如何搭建符合实际业务记忆体系,让自己的Agent越来越聪明,自动学习、优化自己的推理与行为策略,实现“自我演化”的闭环。