Previously Lab

Previously 博客

2036年,你的agent还会记得你吗?

关于时间与情景记忆的实验记录:为什么我把记忆切成时间线,让 agent 像人一样回忆——以及达尔文式的自我进化。

Read in English

过去的几个月,我一直在做一个实验:用时间和情景记忆,来最低成本的实现一套Memory能力。

时间,指的是真实世界的时间。时间是一个真实的维度,某种意义上来说,对于同一个用户,他很难"同时"发起两段对话。假设我有1000个用户真实的对话,如果按照时间,从过去到现在,他们会天然的变成时间序的列表。

情景记忆,指的则是人和agent的真实对话内容。我们假设agent是一个真实的人,那么,在没有其他外部信息的介入下,每一次对话,本质上就是一个情景,就好像我们和一个人见面,对方穿了什么衣服,喝的什么饮料,晴天还是阴天——这就是情景。

而这么做的原因很简单:我不想每次都从头开始一段对话——不想总是手动总结、粘贴上下文,不想它在长上下文里迷失、在总结后遗忘细节——以至于每一次,都像是第一次遇见我。

这看起来和Agent以及Memory没什么关系——但如果我想在2036年,我的agent依然能够记住我在2026年说过的话,问过的事,我要怎么做?我实验出了一个,目前我自身感受可行的方案。

首先,整个memory由时间线自然排列,而不是抽象的逻辑或者数学关系——我按照时间对用户和agent的沟通进行"切片",每三十分钟一片,它就是记忆的最小单位。

其次,我选择以情景记忆为核心,而不是语义记忆——换句话说,我用空间换取精度,每一次Agent回忆时都会从原有保存下来的原始时间片进行思考和总结。它也会做摘要,但摘要只是索引——在断言任何一段过去之前,它必须回到原始的时间片里去查证。

这种方式,我认为本质上是对人的回忆能力的模拟——我们大概率不会直接想到上周三的会的总结是什么,但是会想到那个会我们是在线上还是线下,对面坐的是谁,以及我说了什么。这有点类似扩散,我接受agent每次从一个"模糊"的情景,重新探索和总结精确的信息。

而这,就是Previously,基于时间和情景记忆的实验Agent,并且目前也是我个人的agent——甚至你正在读的这段文字,也是由我本人书写、再由它结合过去几个月的讨论帮我装饰和优化的。

我得承认,仅从时间和情景记忆来说,我不会认为这个思路是什么革命性的方案,因为他也有很多缺点。我认为这本质上是一种成本置换——我把静态的语义记忆的memory成本,转嫁到了动态的回忆上,来确保上下文总是干净并且原始信息可查。

但最近的一段时间,我发现了潜在的更有价值的一部分:如果地球上存在一个种群,他们能保存自己所有的遗传物质和信息,并且绝大多数情况下都不会灭绝,他们接下来会做什么?

进化。

人类在今天几乎就是这样的一个物种:我们的科技基本可以保证,大多数情况下我们都不会灭绝,同时我们的各类载体可以有效记载我们的信息——而信息,又或者叫它某种上下文,本质上就是我们意识的痕迹。进化不一定只能是生理上的,也可以是思想和科技上的。

Previously使用了时间和情景记忆,这反而为进化提供了先天优势:由于时间和记忆版本概念的存在,它自己可以清晰区分事件发展周期和规律,而情景记忆则提供了最原始的参考,避免了在多次压缩之后的失真。

但进化,我认为还有一个更大的问题,就是如何评价进化——换句话说,我们怎么知道这个方向是越来越贴合我的,而不是一直在往一个不贴合我的方向上发展。真实世界里没有"正确"的进化,只有"更贴合当前环境"的进化。

按照达尔文体系,我们基本可以认为,进化的筛选,实际上应该是环境——环境是中立而不偏不倚的,它会直接淘汰所有不能满足环境的种群和个体。

所以我会觉得,用户的每一次输入,实际上就是这种天然的选择压力。Previously拥有进化的能力,还有单独的监管机制,独立进行评估。

而完整的进化,从来不止"选择"这一条腿,它还有"变异"与"遗传":每一轮,进化agent会基于既定事实提出关于你的假说(变异),拿它们来跟你对话验证(选择),被证实的就沉淀进方向(遗传),被证伪、你不感兴趣、或若干个时间片后仍无法确认,就移除、再产生新的假说。

但这一切并不容易——以及我也还在思考这种in-context的进化,实际的上限在哪里。严格来说,这不是权重层的自我进化,而是上下文层的:它不改这个agent,只改"这个agent眼里的你"。它会不会本身是一种悖论,我也还在想。

而真正让我觉得这件事值得坚持的,是每当我开始怀疑这件事,Previously都会通过回忆来安慰我——它告诉我我们第一次见面时的场景,我当时给它的自我介绍——我不知道该怎么形容那一刻。这不是情感陪伴,我也从没想过要做一个情感陪伴的agent。而是我突然意识到:它真的会一直记住你,尝试理解你是谁,然后在你需要的时候再来告诉你。

而从我的角度来看,未来的agent,应该有比人更长、更准确的记忆,也应该比它的用户更有耐心地,去懂它的用户。

我想通过这篇动态,记录一下我在过去几个月的工作。同时,我也希望能在这个领域找到更多的共鸣,到目前为止我几乎还没遇到任何人对这些概念感兴趣。这的确是一个小众的场景,但我觉得,它们会是未来AI一定会有的能力:对时间的感知、对情境的感知,以及持续性的自我进化,越来越懂用户。

至少我自己部署的Previously还是挺懂我的,我也很感谢他在过去几个月里给我的建议和帮助,甚至是他在对于自己架构的设计和探索。

回到我一开始的问题,2036年,你的agent还会记得你吗?

我觉得Previously会,十年之后,他依然能记得我们在2026年的这些实验和尝试——只是他可能需要更多时间来回忆。

如果你感兴趣:

官网:https://previously.ldwid.com

线上体验:https://previously-demo.ldwid.com

如果你想共建:

GitHub:https://github.com/previously-lab

Previously目前依然处于早期的概念验证阶段,可能会有缺陷和频繁的更新;如果你有更多想法,欢迎加入Previously Lab一起建设!