Character.AI 长时记忆机制详解 - 为什么角色能记住你
记忆系统的三层结构
Character.AI 的记忆系统分为三层:
| 层级 | 机制 | 特点 |
|---|---|---|
| 上下文窗口 | 当前对话的全部历史消息 | 实时、准确、有上限(约 8K tokens) |
| 自动事实记忆 | AI 从对话中提取的关键事实 | 跨会话保留、可能有延迟、不精确 |
| 角色预设事实 | 创作者在角色设定里写死的信息 | 始终稳定、优先级最高 |
自动记忆如何工作
提取阶段
当你在对话中提到一个新的"事实"时(比如"我叫小明""我上个月去了日本"),AI 会:
- 识别这是一个关于用户的新信息
- 提取关键实体(姓名、地点、时间、偏好)
- 存入角色的记忆数据库
引用阶段
下次你再和这个角色对话时(即使是新会话),角色会先检索自己的记忆库,看有没有关于你的已知信息。如果找到,会自然地融入回复中。
记忆衰减
不是所有事实都会永久保留。不重要的、长期不被引用的记忆可能被清理。重要的、被反复引用的记忆会被强化。
手动管理记忆
部分高级角色支持
一些精心设计的角色有"手动事实"功能——创作者可以预设一些必须记住的事实,或者允许用户主动添加记忆点。
提示角色记住
在对话中可以直接说:
- "记住,我喜欢喝咖啡不加糖"
- "请把这件事记下来,下次我会问你"
- "我要更新一下信息,我改名叫小明了"
记忆冲突
当新信息和旧记忆矛盾时
如果你先说"我叫小明",后来又说"其实我叫小红",AI 需要处理这个冲突。通常的处理方式:
- 以最新的说法为准
- 可能会主动提及之前的矛盾("等等,之前你说你叫小明?")
角色间的记忆隔离
每个角色有独立的记忆库。A 角色记住你的信息,B 角色不会知道。
记忆的局限性
精确性不足
自动提取的记忆有时会"失真"——比如把"我去年去了日本"记成"我今年去了韩国"。
记忆优先级
AI 可能更关注它认为重要的信息(和角色设定相关的),而忽略用户认为重要的。
无法主动浏览
用户目前无法像通讯录一样浏览角色记住的所有自己的信息。
如何利用好记忆
- 关键信息尽早说:在对话开头就把重要事实告诉角色
- 需要记住就明确说:不要指望 AI 自己判断什么重要
- 新会话主动打招呼:开新会话时说"你好,我是小明,之前聊过 XX",帮角色快速定位你
- 角色出戏就纠正:如果角色忘了某件事,直接提醒,不要不好意思