角色开始忘事:上下文溢出与 context rot
「五条消息前说的事它就忘了」——这不是玄学,官方帮助中心专门为此写了长文。机制讲清楚,对策才有效。
窗口只有这么大
官方口径:JLLM 的上下文窗口在 8k 到 9k tokens 左右。窗口里同时挤着四样东西:
- 角色卡的人格与场景(永久占用);
- 你的 Persona(永久占用);
- 对话记忆(永久占用);
- 最近的聊天记录(剩余空间)。
永久占用的部分越肥,聊天记录能留下的条数越少。超出的部分不会报错,而是悄悄从模型视野里消失。
context rot:烂掉的窗口
官方把这种现象叫 context rot:信息并没有整齐地「最老的先走」,而是超出容量后整体质量下滑——张冠李戴、语气跑偏、忘了刚发生的转折。长对话、肥角色卡、长 Persona 三者叠加时最容易发生。
判断失忆属于哪种
- 忘的是很久以前的细节:正常溢出,用记忆模板把要点重新钉住,见记忆模板;
- 刚说过的事就忘:可能是角色卡或 Persona 太肥挤掉了聊天记录,检查 token 占用,见token 预算;
- 语气人设整体跑偏:典型 context rot,重掷几轮无改善就精简窗口内容或开新档用记忆接力,见消息改写。
治本的顺序
先瘦角色卡与 Persona,再调小上下文档位试 16k,最后用记忆模板管理剧情要点。订阅档的五倍上下文是物理扩容方案,见订阅对比。