AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


如何让agent拥有对话记忆?
发布日期:2024-06-24 04:44:52 浏览次数: 2116 来源:北冥星眸




   如何让 “agent

    拥有对话记忆?


这篇文章是“深度agent解析”系列的第一篇。让AI掌握某个知识库,可以通过“检索增强生成(Retrieval-augmented Generation),简称RAG,把知识切片向量化存储,在对话中联想相关知识,写入大模型提示,让大模型利用知识创造表达。这让我们思考是否可以以同样的思路让AI记忆和用户的对话,让AI能慢慢熟悉用户,无论把AI定位在“情感陪伴”还是“深度进入情境的连续咨询”,这种针对用户的“长期记忆”都是至关重要的特性,有长期记忆不难但是其好坏也会差别巨大。然而,让Agent记忆对话比想象的要复杂很多。本文我们就来为大家讲解如何构建GPT4o的app级别的AI对话长期记忆。


让AI记忆对话的任务分解


让AI记忆对话容易,但做好很难。这是为什么?


关注度标注

遗忘和唤醒

多层级存储

对话总结&记忆整理

印象冲击

其一,对话记忆会随着时间增长,这会持续降低检索效率,降低命中率,增加误检索率。所以记忆要选择重点,于是就有了信息的关注度标注。信息的关注度随着时间下降,从而模仿人类创造了遗忘。但如果仅仅有这种随着时间的遗忘,重要的信息也会忘记,于是就需要有唤醒——经常被使用的信息关注度会被提升。

对话的信息是零散的,完整的语义存在于上下文。所以联想到单句对话未必有用。这样就需要对对话信息进行整理总结然后储存。其次总结后的对话信息之间会有某种关联,比如类似用户遭遇、活动的信息,因为遭遇和活动在进展,所以会在时间轴上产生多段信息片段。这些信息需要被标记被作为一个整体,这是有效联想的关键准备工作。比如用户前面有多段关于身体不适的咨询,第二天突然来了一句“我开始发烧了”,AI需要高效精准联想到所有相关信息。

如果信息来源很多,不同的信息源可能会形成冲突,比如用户自己说自己心情不错,但用户所表达的境遇,和对话中反应的特征都说明用户情绪很焦虑,那么如何融合这些冲突的结论得到一个AI最终会使用的结论呢?任何是非类型的信息不是非黑即白,而是有一个0-1的信念。和人一样agent需要定期整理这些信息来调和冲突的信念。这就需要记忆整理机制。

最后人类在对话中存储的信息不仅仅有表层的信息还有表层信息所意味的信息。比如在对话中我们就会时刻形成对对话心情、性格的印象。这种印象的形成也不像想象的那么简单,因为每个微弱的印象在一开始是在潜意识层的,只有被重复冲击的印象才会呈现在感知流中被使用。这就需要一个完备印象冲击系统发挥。


关注度标注



每个进入感知流的信息会被标注“关注度”,决定这个信息在多大程度上是被关注的。我们创造一个关注度标注函数,通过给GPT出题让其对信息进行关注度标注:每次一个信息在感知流出现,就让GPT“以0到10分”对其关注度进行打分。单纯这么做会有问题,GPT不会根据AI自身特有的知识和经验进行“关注度标注”,而特有的知识和经验的确应该对关注度形成影响。比如GPT按照常识不会对“桌上有喝了一半的牛奶”这样的信息产生关注,但如果用户对牛奶过敏,那么关注类似“桌上有喝了一半的牛奶”就很可能是有意义的。

完整的关注度标注,需要从长期记忆中联想相关信息,这些信息在长期记忆中拥有关注度。以此为关注度标注执行的工作记忆,让GPT根据联想到的长期记忆的信息的关注度,对目标信息进行“0-10”的关注度打分。这样就可以根据经验中已有信息的关注度决定新信息的关注度。


遗忘和唤醒


长期记忆的关注度由两个变量求和得到:长期关注度和短期关注度。长期关注度的变化缓慢,衰减缓慢;短期关注度的变化迅速,衰减迅速。无论因为什么原因关注的增加就是唤醒的过程,关注度的减少就是遗忘的过程。

关注度减少的原因比较单一,就是自然衰减,长期关注度衰减慢,短期关注度衰减快。关注度的增长则和信息被回忆和使用有关。对于长期关注度,每次信息被回忆联想(被有效使用),都会增加一些长期关注度,增加较多短期关注度;短期关注度还有一个唤醒的来源:长期记忆中单点信息被回忆联想(被使用)会增加相关信息的短期关注度。这个机制我们叫做“区域性唤醒”。

区域性唤醒能在人类身上找到证据。我们持续在某个领域思考的时候就能把这个领域的长期记忆唤醒。这个唤醒的效果是能大幅度提升这个领域的思考效率。


多层级存储



搜索运算无论对人还是对机器,随着长期记忆的增加代价都会逐步变大的。虽然我们有遗忘机制,但长期记忆如果在每次搜索时都要全部遍历,运算消耗是巨大的。人类进化出了一种和关注相关的多级存储的模型,让信息能在不同层级中流动,流动的依据是关注度(包括短期和长期),关注度高的信息会被唤醒到更高层,更优先被检索;关注度低的信息会下沉到更低层,低优先先被检索。

以下是检索的自白:“虽然我大部分时候不会去搜索所有记忆,但你总是能够把重要的记忆拉到我会搜的范围内”。这就是多级存储的精神。

多级存储维护了长期记忆的层级,我们就可以考虑运算中的检索如何使用这个层级。首先运算中的检索是运算的代价,对于系统认为重要的运算任务,系统愿意消耗更多的资源,从而检索可以抵达较深的层级,也搜索那些低关注的信息。没有那么重要的运算任务,只会在最高关注的层级进行检索。比如系统的认知求解会根据问题关注度生成一个求解动机,求解动机就决定了这个求解过程长期记忆检索的深度,求解动机越高检索深度就越深,就会搜索到那些低关注的记忆。

所以一个运算执行是否可以检索到需要的信息(假设信息存在),有两个方面的因素决定。其一运算执行本身的求解动机,这决定了该运算检索的深度,其二相关信息被唤醒的程度。尤其假设长期关注不太容易变化时,相关信息的短期关注是否在唤醒中被提升。

这两点都可在人身上找到证据。关于一个问题一开始想不明白,在讨论或思考一段时间后就能想明白,背后可能是因为以上两个因素发生了变化:其一,二次思考赋予了更高的求解动机;其二,持续思考导致区域性短期关注度提升。


对话总结&记忆整理



对话总结只需要封装一个GPTapi,定期对对话的实质内容进行总结,并对对话中的大类事件:用户的遭遇、活动,进行标签并记录。每次对话总结打上大类事件标签时都会去记忆中寻找相同的大类事件(比如用户去迪士尼,或用户感冒),封装一个GPTapi进行事件信息的总结合并,这个总结后的信息应该包含了大类事件主干的发展脉络。大类事件需要有自己的时效评估,如果一个大类事件隔了一段时间没有更新,那么在很长时间后出现的新的信息虽然是同样的类别应该判断属于新的大类事件。比如出现了用户去迪士尼相关的信息,上一个“用户去迪士尼”的大类事件是半年前,这个信息显然因该归类到新的大类事件。

智能体(agent)存续的时间,每天都会形成不同的事实类型的信息,包括具体事件,抽象层的知识等,有些信息是相似的,有些是相互矛盾的。这些信息堆积起来系统会越来越混乱。我们需要记忆整理,记忆整理会合并相似信息并提高信念和关注,和高信念的信息相矛盾的,信念会下降,关注度也会下降。整理程序会让信息变得简洁。

我们可以从人类身上反思信息整理的策略。为避免影响即时的思考的时效要求,整理一般不会在信息产生时马上进行,而是选择在系统空闲时进行,比如对于人类信息整理很可能是在休息、睡眠中,在潜意识完成。具体实操上,我们以每天新形成的是非类型的信息为起点,让其在记忆中检索相关的信息,然后封装一个GPTapi,让其根据新的信息重新调整老信息的信念。

这个做法有一个点需要克服的难点。就是GPT重算信息的信念不是完全稳定的。不一定能够让信念往更客观的方向收敛。做法上可以不要以一次GPT的输出去直接替换而以类似印象冲击的方式。


印象冲击


这个推知者会利用因果类型的知识,根据原始信息的信念和因果知识的充分性,推知的信息也会有信念。这些被推知的信息我们称为印象,有些印象信念很低,需要重复的印象冲击积累信念。信念突破阈值的印象会形成猜想。

在植物性认知的印象冲击模型中,生成的印象是带有信念的,根据因果类知识的充分性不同,原始信息的信念不同,推知信息的信念也不同(这些复杂的运算在MTSagent中我们完全交付给GPT完成),在信念突破阈值时,变为猜想。为什么信念运算是必要的?因为会存在很多单次的推知非常微弱,需要积累才能变为一个较为可靠的猜想(此时才写入感知流被意识到),比如每句对话都可能形成对对方性格的推知,但作用都很微弱;而部分推知一次就能得到合理的猜想,如果一个人如果喉咙痛,在一般情况下就可以合理地猜想对方是否感冒了。为了计算累积多少的印象能形成猜想,我们需要信念。

推知者会推知信息,同样的信息在一段时间内被重复推知,印象会不断累计,突破阈值会变成猜想。那么这里一段时间的标准是怎样的呢?比如推知人的性格时效性就很长,因为性格在很长的时间不怎么发生改变。而一个人感冒的印象时效性就很短,一个月前留下的“某人感冒”的印象,留存到当前进行印象冲击没有太大的意义。

这里处理这个印象时效性的机制大概如此:在生成印象时会需要让GPTapi同时输出这个印象的时效,然后按照这个时间让印象的信念进行衰减。时效越长信念衰减越慢,时效越短衰减越快。比如感冒的印象衰减就很快,可能几天就衰减没有了;性格的印象几年都不会衰减完。所以一个印象只要在一段时间内信念累加超过阈值变成一个显著猜想,就可以变为一个带时间的具体事件长期记忆被存储。


在GPT4o发布中,我们看到其app展现出很强的和用户相关的长期记忆到了“全对话记忆”的级别,在此之前openai的app上的长期记忆只是做到“定向抽取”的级别。其次GPT4o的app比api的特性多了不少体验也好了不少,这些都是“模型外”算法的效果。

和用户相关的长期记忆是“情感陪伴AI”好坏的核心特性,用户总是希望自己伙伴能慢慢了解自己,从陌生人变为朋友,变为好友,甚至知心的恋人,这就要求很高级别的对话长期记忆能力;对话长期记忆同时也是“深度进入用户情境的连续咨询AI”好坏的核心特性,用户可能之前咨询了身体不适,AI无法做出有效诊断和建议,第二天用户突然来了句“我开始发烧了”Agent需要精准联想起之前“用户身体不适”相关的信息,而不需要用户重复一遍之前表述过的背景,这就是这里“连续”的意思。类似心理咨询、健康咨询、法务咨询、母婴咨询、宠物咨询、企业管理咨询,要做到人类级别都需要很强的对话长期记忆的支持。本文是agent长期记忆构建的一个深度总结,希望能帮助大家快速提高应用层agent长期记忆的水准线。


THE END




53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询