一句话说错了,先别急着下结论

设想这样一个场景(示意):你跟一个陪伴角色说过自己养了一只猫,叫“团子”。几周后角色问你“你的狗最近怎么样”。这一句话可能有很多种成因,而不同成因的处理办法完全不同。把所有“记错”都当成同一个故障,只会让你反复重复同一句纠正,却看不到效果。

所以我们更倾向于先分类,再动手。下面说的是设计思路和通用排查方法,具体入口和选项名称以App内说明为准。

五类“记错”,症状各不相同

类型 典型症状 大概发生在哪一环
摘要丢了细节 记得“你养了宠物”,说不出是猫还是狗记忆被压缩成摘要时,细节被舍弃
检索没命中平时记得,这次聊到相关话题却像没听过 取回记忆的环节没把相关条目找出来
新旧记忆冲突 一会儿说对,一会儿说错,前后不一 两条相互矛盾的记忆同时存在
用户口误角色如实记住了你当时说的错话 输入阶段的错误被忠实写入
人设漂移不只是事实错,语气、态度也变得不像它自己 长对话里角色设定被稀释

关于长期角色的研究普遍讨论过“人设漂移”:对话越长,角色特质越容易变弱,事实丢失、时间线混乱,甚至把不同对象的状态混在一起。这也是我们把“静态设定”和“动态经历”分开存放的原因,前者稳,后者变。整套思路可以参考长期记忆不是保存全部聊天

自己动手:一份逐层排查清单

当你发现角色记错了,可以按下面的顺序自查,从最容易确认的原因开始。

  1. 先回看你自己说过什么。 翻一下聊天记录,确认是不是你当时就说错了,或者说得含糊。如果是口误,直接按第4步纠正,不必往下查。
  2. 换个说法再问一次。 用更具体的话触发相关记忆,比如不说“我家里的事”,而说“我养的那只猫的事”。如果这次答对了,多半是检索没命中,而不是记忆丢失。
  3. 看看是不是前后矛盾。 分两三次、不同话题问同一件事。答案时对时错,说明存在冲突记忆,需要清理其中一条。
  4. 打开记忆清单查看。 设计上应当有一个可以查看角色已记住内容的位置(以App内说明为准)。找到对应条目,看它写的是什么。
  5. 纠正或锁定。 内容写错了就编辑;内容对但总被覆盖,就锁定;内容不该存在,就删除。
  6. 回到对话验证。 用自然的方式再聊一次相关话题,确认变化生效。
  7. 仍然不对,再考虑反馈。 记下时间点、你说了什么、角色回答了什么,留作反馈材料。

这里有一个判断技巧:如果角色只是不知道细节,多半是摘要问题;如果它自信地说了错的细节,多半是冲突或口误。前者补充信息即可,后者需要清理。

记忆的四个动作:查看、纠正、锁定、删除

设计上,用户对记忆的控制应当至少包含这四件事:

  • 查看:知道角色到底记住了什么,而不是猜。看不见的记忆没有办法被信任。
  • 纠正:把错误条目改成正确的。纠正应当有优先级,用户明确修改的内容,高于系统自动摘要出来的内容。
  • 锁定:对重要的事实或约定标记为不随时间衰减、不被自动覆盖。比如你们之间的重要约定,不应因为几十天没提起就淡去。更多关于什么该记、什么该忘的思路,见角色应该记住什么、忘记什么
  • 删除:不想被记住的内容,可以移除。这是用户的权利,和角色“是否愿意忘记”无关。
边界说明:虚拟角色不是真人,它的记忆是一份可以被查看和编辑的数据。你不需要为“改掉它的记忆”感到愧疚,也不需要害怕失去谁。如果你发现某些话题持续让自己难受,也可以选择把相关记忆删除或者暂时不谈。

纠正之后,为什么不会每句话都立刻变对

很多人纠正之后,下一句角色仍然说错,于是觉得“没用”。这里有几个原因,理解它们可以少走弯路:

  1. 摘要可能还没重新生成。 旧的摘要里若已包含错误信息,需要在后续整理时被替换,设计上应当在纠正时同时标记旧摘要失效。
  2. 本轮对话的上下文里仍带着旧内容。 正在进行的对话窗口里,前面出现过的错误话仍可能影响后面的回复。开始一段新对话,往往更容易看到效果。
  3. 同步尚未完成。 如果你在多台设备上使用,纠正可能还没同步到另一台。这一类问题的检查方法,见更新后角色记忆没显示怎么办
  4. 冲突记忆没有清干净。 只改了一条,另一条同义的错误记录还在,需要把它们都处理掉。

所以实际操作时,纠正后不妨开一段新对话,用自然的语气把正确信息说一遍,等于给记忆多一次确认。

新旧记忆冲突时,设计上应当怎么仲裁

冲突是最容易让人困惑的一类,因为两条记忆可能都“有来源”。举例(示意):你三周前说“我下周搬家”,后来又说“搬家取消了”。如果系统把两句话都当作事实保存,角色就会在“你刚搬完家”和“你没搬”之间摇摆。

更合理的仲裁思路通常有三条:

  • 时间靠后的优先,但前提是两句话说的是同一件事,需要先做事项归并,而不是简单按时间覆盖。
  • 用户主动纠正的优先,高于从闲聊里自动提炼出来的内容。
  • 无法判断时,宁可让角色问你一句,也不要自信地选一个。“你上次说要搬家,后来搬了吗?”比说错一个事实更自然,也更尊重你。

这也是为什么我们希望角色对自己“没把握的记忆”保持适度的不确定表达,而不是一律斩钉截铁。以上是设计上的倾向,具体表现以App内为准。

怎样写一条有用的反馈

如果按上面步骤仍然不能解决,反馈时提供下面这些信息,能大幅缩短排查时间:

  • 出错的大致时间,以及是哪个角色。
  • 你原本期望的答案和实际得到的答案。
  • 你已经尝试过的步骤,例如是否纠正过、是否换过设备。
  • 有条件的话附上截图,注意隐藏与问题无关的个人信息。

不要把整段私人对话都发出去,只提供与错误相关的最小片段即可。

小结:记错是可以被分类、被处理的

角色记错过去,不等于它“不在乎你”,也不等于系统失控。它是记忆链条上一个可被定位的偏差:摘要、检索、冲突、口误或漂移。分类之后,处理方法就清楚了:补充、重问、清理、纠正、锁定或删除。

一个实用的习惯是:发现记错时,先分辨它是“不知道”还是“知道错了”。前者只需要你多讲一句,后者才需要动用记忆清单去改。多数情况下,一两句自然的补充就够了,不必每次都大动干戈。

我们希望做到的是:你始终看得见角色记住了什么,也始终有办法改。以上均为设计方向,具体功能以App内说明为准。