记忆

一份你能打开、能改、能删的记忆

大多数角色扮演机器人在背后偷偷给你写摘要,然后慢慢走样。这一个把事实列成一张清单,你随时能打开——改掉写错的一行,删掉你从没说过的一句,或者干脆整个关掉。

Talaforge › 一份你能打开、能改、能删的记忆

一个聊天机器人看上去记得你,有两种做法。一种是很长的上下文窗口,窗口一往前滑,前面的就忘了。另一种是把事情记下来。

这一个是记下来的那种——而且不常见的地方在于,它让你读它写了什么。

角色为什么会走样

模型在两条消息之间是没有记忆的。它看起来想起来的一切,其实都是在提示词里重新发给它的。当一段对话长到装不下,就必须丢掉或者压缩一些东西,走样就从这里开始:角色先是不记得你妹妹叫什么,接着跟自己上周说的话打架,然后悄悄变成另一个人,只是还在用同样的词。

大多数产品的处理办法是在后台写摘要。这招一直管用,直到摘要写错——而一旦写错就永远错下去,因为你根本看不到它,也没法改。

到底存了些什么

一条条短事实,随着对话进行被提取出来。不是聊天记录,也不是一坨向量——是你读得懂的句子。

它们同时按三个维度分开,正是这种分法让不同的故事不会串味:

读它、改它、删它

记忆清单是聊天设置里的一个页面。打开它,你会看到那些事实,按顺序排好。哪一条写错了,就改掉。哪一条本来就不该被写下来,就删掉。要是你一条都不想要,把这段对话的记忆关掉,之后就什么都不再存。

这听起来是件小事,可它把出错的方式整个换掉了。藏起来的摘要里一条错的事实,会毒到后面每一条回复,而你只能猜角色为什么变得奇怪。清单里一条错的事实,是你五秒钟就能改好的一行字。

角色第一次记下什么的时候,我们会告诉你一次。不是每条消息都提醒——就一次,让你知道有这么个机制,以及去哪儿找它。

什么永远不会被写下来

每一条被提取出来的事实都会过一道过滤,把根本不该进记忆库的东西剥掉:邮箱地址、电话号码、卡号、身份证件号。

这是一道过滤,不是对你输入内容的承诺。它清掉的是它认得出的那些格式。对付真的卡号,最稳妥的做法仍然是别发给聊天机器人。

场景分岔时,记忆怎么办

任何一条回复你都可以分岔,两条线都留着。分岔的时候,新的那条会继承父线在那一刻拥有的记忆——所以一条分支是从同一段共同过去开始的,而不是从零开始,然后才各走各的。

分岔的意义正在于此:同一段关系的两个版本,而不是两个陌生人。

记忆能走到哪儿

如果一个角色变成了自己的 Telegram 机器人,记忆在那边的运作和主聊天里完全一样——依然按角色、按话题、按人分开。跟你机器人说话的人,会和这个角色攒出他自己的一份记忆,而那份只属于他。

我能看到 AI 记住了我什么吗?
能——记忆清单是聊天设置里的一个页面,按顺序显示存下来的事实。整套设计就是冲着这个来的:你读不到的记忆,就是你改不了的记忆。
我能删掉一条记忆吗?
能,单条删或者一次全清都行。你也可以把某段对话的记忆关掉,之后就不再写入任何东西。
AI 聊天机器人为什么会忘事?
因为模型在两条消息之间没有记忆。它看起来想起来的东西,都是在提示词里重新发过去的;一旦对话长到装不下,早先的内容就会被丢掉或压缩。写下来的事实能挺过这一关,上下文窗口不能。
一个角色的记忆会漏到另一个角色那儿吗?
不会。记忆同时按角色、按话题、按人分开。跟同一个角色的不同话题各记各的,你说过的话,跟这个角色聊天的其他人也看不到。
别人能看到我的记忆吗?
看不到。记忆是按人分的。两个人跟同一个角色说话,各自攒各自的,谁也看不见谁的。
我把场景分岔之后,记忆会怎样?
新的那条线继承父线在你分岔那一刻知道的东西,然后各走各的。两条线都留着。
电话号码和卡号会被存下来吗?
在写入之前,会有一道过滤把邮箱、电话号码、卡号和证件号从提取出的事实里剥掉。它认的是格式,不是会读心,所以真的卡号还是别发给聊天机器人。
在 Telegram 里做一个角色 →

接着读