最近在完善多模态Agent项目的时候对记忆管理模块有些疑问。
我现在的记忆模块非常非常的简单,除了最开始设置的全局记忆人设模块以外只会讲最近n次对话的历史记录进行总结然后一并和全局记忆送入上下文生成中。
但是这样的记忆方式不会让项目有逐渐学习的过程于是优化为三个板块进行管理:
全局记忆;局部记忆;短期上下文。
每次进行对话的时候,首先会提取全局记忆,然后拼接局部记忆,再拼接短期(100句)的对话历史摘要。全局记忆不会有任何变动,短期上下文也不会有变动,设计的变动模式都是针对于局部记忆的,我设置了一个迭代方式:以天为分割进行当天的对话总结,提取摘要,将摘要内容和局部记忆内的内容进行比对更新并设置一个记忆权重,每次总结会刷新权重,如果那天的摘要比对里面没有这个内容那么权重就–,直到权重低于阈值这条记忆就消失。通过不断迭代局部记忆来实现知识的更新与遗忘。
但是这样会有几个问题,1.短期内没有重复的摘要知识并不一定是真的不重要的知识;2.图片不便于进行融入这样的记忆管理方式;3.只会有文字知识点的迭代可能对一些梗的内容没有办法相互理解自动总结到一起。
对于1和3还没有想到解决的办法,对于2想的是设置一个转化器,将图片统统转换为词向量+标签的形式进行存储摘要总结。
有没有佬了解过其他的设计模式可以解决我的问题或者完善方案的呢。ORZ
8 个帖子 - 5 位参与者